Commit 620fd27cfa4bbcbfc13ab88bd49055d5eb2ce82c
Committed by
Albert ARIBAUD
1 parent
32b1127397
Exists in
master
and in
55 other branches
arm, davinci: Add SPL support for DA850 SoCs
This code adds an SPL for booting from SPI flash on DA850 SoCs. Signed-off-by: Christian Riesch <christian.riesch@omicron.at> Cc: Heiko Schocher <hs@denx.de> Cc: Sandeep Paulraj <s-paulraj@ti.com> Cc: Tom Rini <trini@ti.com> Acked-by: Tom Rini <trini@ti.com>
Showing 2 changed files with 35 additions and 2 deletions Side-by-side Diff
arch/arm/cpu/arm926ejs/davinci/Makefile
arch/arm/cpu/arm926ejs/davinci/spl.c
... | ... | @@ -26,7 +26,17 @@ |
26 | 26 | #include <nand.h> |
27 | 27 | #include <asm/arch/dm365_lowlevel.h> |
28 | 28 | #include <ns16550.h> |
29 | +#include <malloc.h> | |
30 | +#include <spi_flash.h> | |
29 | 31 | |
32 | +DECLARE_GLOBAL_DATA_PTR; | |
33 | + | |
34 | +/* Define global data structure pointer to it*/ | |
35 | +static gd_t gdata __attribute__ ((section(".data"))); | |
36 | +static bd_t bdata __attribute__ ((section(".data"))); | |
37 | + | |
38 | +#ifndef CONFIG_SPL_LIBCOMMON_SUPPORT | |
39 | + | |
30 | 40 | void puts(const char *str) |
31 | 41 | { |
32 | 42 | while (*str) |
... | ... | @@ -41,6 +51,8 @@ |
41 | 51 | NS16550_putc((NS16550_t)(CONFIG_SYS_NS16550_COM1), c); |
42 | 52 | } |
43 | 53 | |
54 | +#endif /* CONFIG_SPL_LIBCOMMON_SUPPORT */ | |
55 | + | |
44 | 56 | inline void hang(void) |
45 | 57 | { |
46 | 58 | puts("### ERROR ### Please RESET the board ###\n"); |
47 | 59 | |
48 | 60 | |
49 | 61 | |
... | ... | @@ -50,15 +62,35 @@ |
50 | 62 | |
51 | 63 | void board_init_f(ulong dummy) |
52 | 64 | { |
65 | +#ifdef CONFIG_SOC_DM365 | |
53 | 66 | dm36x_lowlevel_init(0); |
67 | +#endif | |
68 | +#ifdef CONFIG_SOC_DA8XX | |
69 | + arch_cpu_init(); | |
70 | +#endif | |
54 | 71 | relocate_code(CONFIG_SPL_STACK, NULL, CONFIG_SPL_TEXT_BASE); |
55 | 72 | } |
56 | 73 | |
57 | 74 | void board_init_r(gd_t *id, ulong dummy) |
58 | 75 | { |
59 | - | |
76 | +#ifdef CONFIG_SOC_DM365 | |
60 | 77 | nand_init(); |
61 | 78 | puts("Nand boot...\n"); |
62 | 79 | nand_boot(); |
80 | +#endif | |
81 | +#ifdef CONFIG_SOC_DA8XX | |
82 | + mem_malloc_init(CONFIG_SYS_TEXT_BASE - CONFIG_SYS_MALLOC_LEN, | |
83 | + CONFIG_SYS_MALLOC_LEN); | |
84 | + | |
85 | + gd = &gdata; | |
86 | + gd->bd = &bdata; | |
87 | + gd->flags |= GD_FLG_RELOC; | |
88 | + gd->baudrate = CONFIG_BAUDRATE; | |
89 | + serial_init(); /* serial communications setup */ | |
90 | + gd->have_console = 1; | |
91 | + | |
92 | + puts("SPI boot...\n"); | |
93 | + spi_boot(); | |
94 | +#endif | |
63 | 95 | } |