Message ID | 1486047373-31676-8-git-send-email-jagan@openedev.com |
---|---|
State | Changes Requested |
Delegated to: | Stefano Babic |
Headers | show |
On 02/02/2017 15:56, Jagan Teki wrote: > From: Jagan Teki <jagan@amarulasolutions.com> > > Add runtime, modeboot env which is setting mmcboot, or > nandboot based on the bootdevice so-that conditional > macros b/w MMC and NAND for CONFIG_BOOTCOMMAND should > be avoided in config files. > > Cc: Stefano Babic <sbabic@denx.de> > Cc: Matteo Lisi <matteo.lisi@engicam.com> > Cc: Michael Trimarchi <michael@amarulasolutions.com> > Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> > --- > board/engicam/isiotmx6ul/isiotmx6ul.c | 21 ++++++++++++++++++++ > configs/imx6ul_isiot_emmc_defconfig | 1 + > configs/imx6ul_isiot_mmc_defconfig | 1 + > configs/imx6ul_isiot_nand_defconfig | 1 + > include/configs/imx6ul_isiot.h | 36 ++++++++++++++++------------------- > 5 files changed, 40 insertions(+), 20 deletions(-) > > diff --git a/board/engicam/isiotmx6ul/isiotmx6ul.c b/board/engicam/isiotmx6ul/isiotmx6ul.c > index 1b5f74e..fa91956 100644 > --- a/board/engicam/isiotmx6ul/isiotmx6ul.c > +++ b/board/engicam/isiotmx6ul/isiotmx6ul.c > @@ -103,6 +103,27 @@ static void setup_gpmi_nand(void) > } > #endif /* CONFIG_NAND_MXS */ > > +int board_late_init(void) > +{ > + switch ((imx6_src_get_boot_mode() & IMX6_BMODE_MASK) >> > + IMX6_BMODE_SHIFT) { > + case IMX6_BMODE_SD: > + case IMX6_BMODE_ESD: > + case IMX6_BMODE_MMC: > + case IMX6_BMODE_EMMC: > + setenv("modeboot", "mmcboot"); > + break; > + case IMX6_BMODE_NAND: > + setenv("modeboot", "nandboot"); > + break; > + default: > + setenv("modeboot", ""); > + break; > + } > + > + return 0; > +} > + > int board_init(void) > { > /* Address of boot parameters */ > diff --git a/configs/imx6ul_isiot_emmc_defconfig b/configs/imx6ul_isiot_emmc_defconfig > index 94fe808..4c3664f 100644 > --- a/configs/imx6ul_isiot_emmc_defconfig > +++ b/configs/imx6ul_isiot_emmc_defconfig > @@ -37,3 +37,4 @@ CONFIG_PINCTRL=y > CONFIG_PINCTRL_IMX6=y > CONFIG_MXC_UART=y > CONFIG_IMX_THERMAL=y > +CONFIG_BOARD_LATE_INIT=y > diff --git a/configs/imx6ul_isiot_mmc_defconfig b/configs/imx6ul_isiot_mmc_defconfig > index 8ecdd8e..ea2d378 100644 > --- a/configs/imx6ul_isiot_mmc_defconfig > +++ b/configs/imx6ul_isiot_mmc_defconfig > @@ -39,3 +39,4 @@ CONFIG_PINCTRL=y > CONFIG_PINCTRL_IMX6=y > CONFIG_MXC_UART=y > CONFIG_IMX_THERMAL=y > +CONFIG_BOARD_LATE_INIT=y > diff --git a/configs/imx6ul_isiot_nand_defconfig b/configs/imx6ul_isiot_nand_defconfig > index 6f1a054..f02a2ac 100644 > --- a/configs/imx6ul_isiot_nand_defconfig > +++ b/configs/imx6ul_isiot_nand_defconfig > @@ -40,3 +40,4 @@ CONFIG_PINCTRL_IMX6=y > CONFIG_SYS_I2C_MXC=y > CONFIG_MXC_UART=y > CONFIG_IMX_THERMAL=y > +CONFIG_BOARD_LATE_INIT=y > diff --git a/include/configs/imx6ul_isiot.h b/include/configs/imx6ul_isiot.h > index 1b0e436..7258fed 100644 > --- a/include/configs/imx6ul_isiot.h > +++ b/include/configs/imx6ul_isiot.h > @@ -64,8 +64,7 @@ > "fitboot=echo Booting FIT image from mmc ...; " \ > "run mmcargs; " \ > "bootm ${loadaddr}\0" \ > - "mmcboot=echo Booting from mmc ...; " \ > - "run mmcargs; " \ > + "_mmcboot=run mmcargs; " \ > "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ > "if run loadfdt; then " \ > "bootm ${loadaddr} - ${fdt_addr}; " \ > @@ -79,6 +78,20 @@ > "else " \ > "bootm; " \ > "fi\0" \ > + "mmcboot=echo Booting from mmc ...; " \ > + "if mmc rescan; then " \ > + "if run loadbootscript; then " \ > + "run bootscript; " \ > + "else " \ > + "if run loadfit; then " \ > + "run fitboot; " \ > + "else " \ > + "if run loadimage; then " \ > + "run _mmcboot; " \ > + "fi; " \ > + "fi; " \ > + "fi; " \ > + "fi\0" \ > "nandboot=echo Booting from nand ...; " \ > "if mtdparts; then " \ > "echo Starting nand boot ...; " \ > @@ -90,24 +103,7 @@ > "nand read ${fdt_addr} dtb 0x100000; " \ > "bootm ${loadaddr} - ${fdt_addr}\0" > > -#ifdef CONFIG_NAND_MXS > -# define CONFIG_BOOTCOMMAND "run nandboot" > -#else > -# define CONFIG_BOOTCOMMAND \ > - "if mmc rescan; then " \ > - "if run loadbootscript; then " \ > - "run bootscript; " \ > - "else " \ > - "if run loadfit; then " \ > - "run fitboot; " \ > - "else " \ > - "if run loadimage; then " \ > - "run mmcboot; " \ > - "fi; " \ > - "fi; " \ > - "fi; " \ > - "fi" > -#endif > +#define CONFIG_BOOTCOMMAND "run $modeboot" > > /* Miscellaneous configurable options */ > #define CONFIG_SYS_MEMTEST_START 0x80000000 > Reviewed by : Stefano Babic |sbabic@denx.de> Best regards, Stefano Babic
diff --git a/board/engicam/isiotmx6ul/isiotmx6ul.c b/board/engicam/isiotmx6ul/isiotmx6ul.c index 1b5f74e..fa91956 100644 --- a/board/engicam/isiotmx6ul/isiotmx6ul.c +++ b/board/engicam/isiotmx6ul/isiotmx6ul.c @@ -103,6 +103,27 @@ static void setup_gpmi_nand(void) } #endif /* CONFIG_NAND_MXS */ +int board_late_init(void) +{ + switch ((imx6_src_get_boot_mode() & IMX6_BMODE_MASK) >> + IMX6_BMODE_SHIFT) { + case IMX6_BMODE_SD: + case IMX6_BMODE_ESD: + case IMX6_BMODE_MMC: + case IMX6_BMODE_EMMC: + setenv("modeboot", "mmcboot"); + break; + case IMX6_BMODE_NAND: + setenv("modeboot", "nandboot"); + break; + default: + setenv("modeboot", ""); + break; + } + + return 0; +} + int board_init(void) { /* Address of boot parameters */ diff --git a/configs/imx6ul_isiot_emmc_defconfig b/configs/imx6ul_isiot_emmc_defconfig index 94fe808..4c3664f 100644 --- a/configs/imx6ul_isiot_emmc_defconfig +++ b/configs/imx6ul_isiot_emmc_defconfig @@ -37,3 +37,4 @@ CONFIG_PINCTRL=y CONFIG_PINCTRL_IMX6=y CONFIG_MXC_UART=y CONFIG_IMX_THERMAL=y +CONFIG_BOARD_LATE_INIT=y diff --git a/configs/imx6ul_isiot_mmc_defconfig b/configs/imx6ul_isiot_mmc_defconfig index 8ecdd8e..ea2d378 100644 --- a/configs/imx6ul_isiot_mmc_defconfig +++ b/configs/imx6ul_isiot_mmc_defconfig @@ -39,3 +39,4 @@ CONFIG_PINCTRL=y CONFIG_PINCTRL_IMX6=y CONFIG_MXC_UART=y CONFIG_IMX_THERMAL=y +CONFIG_BOARD_LATE_INIT=y diff --git a/configs/imx6ul_isiot_nand_defconfig b/configs/imx6ul_isiot_nand_defconfig index 6f1a054..f02a2ac 100644 --- a/configs/imx6ul_isiot_nand_defconfig +++ b/configs/imx6ul_isiot_nand_defconfig @@ -40,3 +40,4 @@ CONFIG_PINCTRL_IMX6=y CONFIG_SYS_I2C_MXC=y CONFIG_MXC_UART=y CONFIG_IMX_THERMAL=y +CONFIG_BOARD_LATE_INIT=y diff --git a/include/configs/imx6ul_isiot.h b/include/configs/imx6ul_isiot.h index 1b0e436..7258fed 100644 --- a/include/configs/imx6ul_isiot.h +++ b/include/configs/imx6ul_isiot.h @@ -64,8 +64,7 @@ "fitboot=echo Booting FIT image from mmc ...; " \ "run mmcargs; " \ "bootm ${loadaddr}\0" \ - "mmcboot=echo Booting from mmc ...; " \ - "run mmcargs; " \ + "_mmcboot=run mmcargs; " \ "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ "if run loadfdt; then " \ "bootm ${loadaddr} - ${fdt_addr}; " \ @@ -79,6 +78,20 @@ "else " \ "bootm; " \ "fi\0" \ + "mmcboot=echo Booting from mmc ...; " \ + "if mmc rescan; then " \ + "if run loadbootscript; then " \ + "run bootscript; " \ + "else " \ + "if run loadfit; then " \ + "run fitboot; " \ + "else " \ + "if run loadimage; then " \ + "run _mmcboot; " \ + "fi; " \ + "fi; " \ + "fi; " \ + "fi\0" \ "nandboot=echo Booting from nand ...; " \ "if mtdparts; then " \ "echo Starting nand boot ...; " \ @@ -90,24 +103,7 @@ "nand read ${fdt_addr} dtb 0x100000; " \ "bootm ${loadaddr} - ${fdt_addr}\0" -#ifdef CONFIG_NAND_MXS -# define CONFIG_BOOTCOMMAND "run nandboot" -#else -# define CONFIG_BOOTCOMMAND \ - "if mmc rescan; then " \ - "if run loadbootscript; then " \ - "run bootscript; " \ - "else " \ - "if run loadfit; then " \ - "run fitboot; " \ - "else " \ - "if run loadimage; then " \ - "run mmcboot; " \ - "fi; " \ - "fi; " \ - "fi; " \ - "fi" -#endif +#define CONFIG_BOOTCOMMAND "run $modeboot" /* Miscellaneous configurable options */ #define CONFIG_SYS_MEMTEST_START 0x80000000