Commit 620fd27cfa4bbcbfc13ab88bd49055d5eb2ce82c

Authored by Christian Riesch
Committed by Albert ARIBAUD
1 parent 32b1127397
Exists in master and in 55 other branches 8qm-imx_v2020.04_5.4.70_2.3.0, emb_lf_v2022.04, emb_lf_v2023.04, imx_v2015.04_4.1.15_1.0.0_ga, pitx_8mp_lf_v2020.04, smarc-8m-android-10.0.0_2.6.0, smarc-8m-android-11.0.0_2.0.0, smarc-8mp-android-11.0.0_2.0.0, smarc-emmc-imx_v2014.04_3.10.53_1.1.0_ga, smarc-emmc-imx_v2014.04_3.14.28_1.0.0_ga, smarc-imx-l5.0.0_1.0.0-ga, smarc-imx6_v2018.03_4.14.98_2.0.0_ga, smarc-imx7_v2017.03_4.9.11_1.0.0_ga, smarc-imx7_v2018.03_4.14.98_2.0.0_ga, smarc-imx_v2014.04_3.14.28_1.0.0_ga, smarc-imx_v2015.04_4.1.15_1.0.0_ga, smarc-imx_v2017.03_4.9.11_1.0.0_ga, smarc-imx_v2017.03_4.9.88_2.0.0_ga, smarc-imx_v2017.03_o8.1.0_1.3.0_8m, smarc-imx_v2018.03_4.14.78_1.0.0_ga, smarc-m6.0.1_2.1.0-ga, smarc-n7.1.2_2.0.0-ga, smarc-rel_imx_4.1.15_2.0.0_ga, smarc_8m-imx_v2018.03_4.14.98_2.0.0_ga, smarc_8m-imx_v2019.04_4.19.35_1.1.0, smarc_8m_00d0-imx_v2018.03_4.14.98_2.0.0_ga, smarc_8mm-imx_v2018.03_4.14.98_2.0.0_ga, smarc_8mm-imx_v2019.04_4.19.35_1.1.0, smarc_8mm-imx_v2020.04_5.4.24_2.1.0, smarc_8mp_lf_v2020.04, smarc_8mq-imx_v2020.04_5.4.24_2.1.0, smarc_8mq_lf_v2020.04, ti-u-boot-2015.07, u-boot-2013.01.y, v2013.10, v2013.10-smarct33, v2013.10-smartmen, v2014.01, v2014.04, v2014.04-smarct33, v2014.04-smarct33-emmc, v2014.04-smartmen, v2014.07, v2014.07-smarct33, v2014.07-smartmen, v2015.07-smarct33, v2015.07-smarct33-emmc, v2015.07-smarct4x, v2016.05-dlt, v2016.05-smarct3x, v2016.05-smarct3x-emmc, v2016.05-smarct4x, v2017.01-smarct3x, v2017.01-smarct3x-emmc, v2017.01-smarct4x

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
... ... @@ -38,7 +38,8 @@
38 38  
39 39 ifdef CONFIG_SPL_BUILD
40 40 COBJS-y += spl.o
41   -COBJS-y += dm365_lowlevel.o
  41 +COBJS-$(CONFIG_SOC_DM365) += dm365_lowlevel.o
  42 +COBJS-$(CONFIG_SOC_DA8XX) += da850_lowlevel.o
42 43 endif
43 44  
44 45 SOBJS = reset.o
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 }