This patch makes the Boot Parameter Structure of AM43XX available to U-Boot. The feature is already available for OMAP3 and OMAP4, but not AM43XX. It also adds the value of the boot device to the U-Boot environment.
Signed-off-by: Edgar Holleis <edgar.holl...@zuehlke.com> --- arch/arm/cpu/armv7/am33xx/board.c | 11 +++++++++++ arch/arm/cpu/armv7/omap-common/boot-common.c | 10 +++++++--- board/ti/am43xx/board.c | 5 +++++ 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/arch/arm/cpu/armv7/am33xx/board.c b/arch/arm/cpu/armv7/am33xx/board.c index 67bef23..7149990 100644 --- a/arch/arm/cpu/armv7/am33xx/board.c +++ b/arch/arm/cpu/armv7/am33xx/board.c @@ -203,6 +203,17 @@ int arch_misc_init(void) return 0; } +#ifdef CONFIG_ARCH_CPU_INIT +/* + * SOC specific cpu init + */ +int arch_cpu_init(void) +{ + save_omap_boot_params(); + return 0; +} +#endif /* CONFIG_ARCH_CPU_INIT */ + #ifndef CONFIG_SKIP_LOWLEVEL_INIT /* * In the case of non-SPL based booting we'll want to call these diff --git a/arch/arm/cpu/armv7/omap-common/boot-common.c b/arch/arm/cpu/armv7/omap-common/boot-common.c index bbc6bed..d1053eb 100644 --- a/arch/arm/cpu/armv7/omap-common/boot-common.c +++ b/arch/arm/cpu/armv7/omap-common/boot-common.c @@ -64,9 +64,13 @@ void save_omap_boot_params(void) #endif { dev_desc = *((u32 *)(rom_params + DEV_DESC_PTR_OFFSET)); - dev_data = *((u32 *)(dev_desc + DEV_DATA_PTR_OFFSET)); - gd->arch.omap_boot_params.omap_bootmode = - *((u32 *)(dev_data + BOOT_MODE_OFFSET)); + if (dev_desc != 0) { + dev_data = *((u32 *)(dev_desc + DEV_DATA_PTR_OFFSET)); + gd->arch.omap_boot_params.omap_bootmode = + *((u32 *)(dev_data + BOOT_MODE_OFFSET)); + } else { + gd->arch.omap_boot_params.omap_bootmode = MMCSD_MODE_UNDEFINED; + } } } diff --git a/board/ti/am43xx/board.c b/board/ti/am43xx/board.c index d7b9e5a..ecd6c56 100644 --- a/board/ti/am43xx/board.c +++ b/board/ti/am43xx/board.c @@ -670,6 +670,11 @@ int board_late_init(void) safe_string[sizeof(header.version)] = 0; setenv("board_rev", safe_string); #endif + + char tmpstr[5]; + sprintf(tmpstr, "0x%02x", gd->arch.omap_boot_params.omap_bootdevice); + setenv("omap_bootdevice", tmpstr); + return 0; } #endif -- 1.9.1 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot