This change adds new function: - set_dfu_boot_alt(bootmode) - where bootmode is the value of Exynos ompin[5:1] with proper bitmask using BOOT_MODE(x) macro.
This change is useful for devices with more than one boot device, e.g. with a separated SD and eMMC slots. Different dfu entities are required for SD and eMMC cards. The board config should define: - CONFIG_MISC_COMMON - CONFIG_SET_DFU_BOOT_ALT and at least one of below alt setting: - CONFIG_DFU_BOOT_ALT_SD, e.g: "u-boot raw 1 2048" - CONFIG_DFU_BOOT_ALT_eMMC, e.g: "u-boot raw 0 2048 mmcpart 1" Signed-off-by: Przemyslaw Marczak <p.marc...@samsung.com> Cc: Piotr Wilczek <p.wilc...@samsung.com> Cc: Minkyu Kang <mk7.k...@samsung.com> --- Changes v2: - change config names: CONFIG_SET_DFU_BOOT_ALT to CONFIG_DFU_ALT_BOOTLOADER and CONFIG_DFU_BOOT_ALT_* to CONFIG_DFU_ALT_BOOT_* - change function name: set_dfu_boot_alt() to set_dfu_alt_boot() - remove superfluous ifdefs --- board/samsung/common/board.c | 3 +++ board/samsung/common/misc.c | 19 +++++++++++++++++++ include/samsung/misc.h | 4 ++++ 3 files changed, 26 insertions(+) diff --git a/board/samsung/common/board.c b/board/samsung/common/board.c index 2970340..87d42e5 100644 --- a/board/samsung/common/board.c +++ b/board/samsung/common/board.c @@ -323,6 +323,9 @@ int arch_early_init_r(void) #ifdef CONFIG_MISC_INIT_R int misc_init_r(void) { +#ifdef CONFIG_DFU_ALT_BOOTLOADER + set_dfu_alt_boot(bootmode); +#endif #ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG set_board_info(); #endif diff --git a/board/samsung/common/misc.c b/board/samsung/common/misc.c index a453a82..9a5d2ac 100644 --- a/board/samsung/common/misc.c +++ b/board/samsung/common/misc.c @@ -21,6 +21,25 @@ DECLARE_GLOBAL_DATA_PTR; +#ifdef CONFIG_DFU_ALT_BOOTLOADER +void set_dfu_alt_boot(int bootmode) +{ + char *alt_bootloader = NULL; + + switch (bootmode) { + case BOOT_SDMMC: + alt_bootloader = CONFIG_DFU_ALT_BOOT_SD; + break; + default: + alt_bootloader = CONFIG_DFU_ALT_BOOT_EMMC; + break; + } + + if (alt_bootloader) + setenv("dfu_alt_bootloader", alt_bootloader); +} +#endif + #ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG void set_board_info(void) { diff --git a/include/samsung/misc.h b/include/samsung/misc.h index 87b53ec..3d1d076 100644 --- a/include/samsung/misc.h +++ b/include/samsung/misc.h @@ -33,4 +33,8 @@ void draw_logo(void); #define BOOT_MODE_SHIFT (0x1) #define BOOT_MODE(x) ((x >> BOOT_MODE_SHIFT) & BOOT_MODE_MASK) +#ifdef CONFIG_DFU_ALT_BOOTLOADER +void set_dfu_alt_boot(int bootmode); +#endif + #endif /* __SAMSUNG_MISC_COMMON_H__ */ -- 1.9.1 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot