Message ID | 20211126174331.5928-4-tomm.merciai@gmail.com |
---|---|
State | RFC |
Delegated to: | Stefano Babic |
Headers | show |
Series | imx8m: move env_get_location for imx8mn and imx8mp at board level | expand |
On Fri, 26 Nov 2021 18:43:31 +0100 Tommaso Merciai <tomm.merciai@gmail.com> wrote: > Override env_get_location function at board level, previously dropped > down from soc.c > > References: > - commit f1575f23df1ef704051f218d5bc4aeeb20c2c542 > > Signed-off-by: Tommaso Merciai <tomm.merciai@gmail.com> > --- > Changes since v1: > - Remove wrong env_get_offset function from commit > > board/freescale/imx8mp_evk/imx8mp_evk.c | 41 +++++++++++++++++++++++++ > 1 file changed, 41 insertions(+) > > diff --git a/board/freescale/imx8mp_evk/imx8mp_evk.c b/board/freescale/imx8mp_evk/imx8mp_evk.c > index 62096c24fb..6b2eeaf152 100644 > --- a/board/freescale/imx8mp_evk/imx8mp_evk.c > +++ b/board/freescale/imx8mp_evk/imx8mp_evk.c > @@ -5,6 +5,7 @@ > > #include <common.h> > #include <env.h> > +#include <env_internal.h> > #include <errno.h> > #include <init.h> > #include <miiphy.h> > @@ -17,6 +18,7 @@ > #include <asm/arch/clock.h> > #include <asm/arch/sys_proto.h> > #include <asm/mach-imx/gpio.h> > +#include <asm/mach-imx/boot_mode.h> > > DECLARE_GLOBAL_DATA_PTR; > > @@ -32,6 +34,45 @@ static iomux_v3_cfg_t const wdog_pads[] = { > MX8MP_PAD_GPIO1_IO02__WDOG1_WDOG_B | MUX_PAD_CTRL(WDOG_PAD_CTRL), > }; > > +enum env_location env_get_location(enum env_operation op, int prio) > +{ > + enum boot_device dev = get_boot_device(); > + enum env_location env_loc = ENVL_UNKNOWN; > + > + if (prio) > + return env_loc; > + > + switch (dev) { > +#ifdef CONFIG_ENV_IS_IN_SPI_FLASH > + case QSPI_BOOT: > + env_loc = ENVL_SPI_FLASH; > + break; > +#endif > +#ifdef CONFIG_ENV_IS_IN_NAND > + case NAND_BOOT: > + env_loc = ENVL_NAND; > + break; > +#endif > +#ifdef CONFIG_ENV_IS_IN_MMC > + case SD1_BOOT: > + case SD2_BOOT: > + case SD3_BOOT: > + case MMC1_BOOT: > + case MMC2_BOOT: > + case MMC3_BOOT: > + env_loc = ENVL_MMC; > + break; > +#endif > + default: > +#if defined(CONFIG_ENV_IS_NOWHERE) > + env_loc = ENVL_NOWHERE; > +#endif Using if (IS_ENABLED(CONFIG_ENV_IS_NOWHERE)) instead of #ifdefs is preferred because the compiler then warns about bugs even in the disabled codepaths (that's why checkpatch complains about #ifdefs). I know that this cannot be combined with switch() in a simple way, though. Do you need to use switch? Can't you rewrite it to use if()s and use IS_ENABLED()? Marek
On Fri, Nov 26, 2021 at 07:00:21PM +0100, Marek Behún wrote: > On Fri, 26 Nov 2021 18:43:31 +0100 > Tommaso Merciai <tomm.merciai@gmail.com> wrote: > > > Override env_get_location function at board level, previously dropped > > down from soc.c > > > > References: > > - commit f1575f23df1ef704051f218d5bc4aeeb20c2c542 > > > > Signed-off-by: Tommaso Merciai <tomm.merciai@gmail.com> > > --- > > Changes since v1: > > - Remove wrong env_get_offset function from commit > > > > board/freescale/imx8mp_evk/imx8mp_evk.c | 41 +++++++++++++++++++++++++ > > 1 file changed, 41 insertions(+) > > > > diff --git a/board/freescale/imx8mp_evk/imx8mp_evk.c b/board/freescale/imx8mp_evk/imx8mp_evk.c > > index 62096c24fb..6b2eeaf152 100644 > > --- a/board/freescale/imx8mp_evk/imx8mp_evk.c > > +++ b/board/freescale/imx8mp_evk/imx8mp_evk.c > > @@ -5,6 +5,7 @@ > > > > #include <common.h> > > #include <env.h> > > +#include <env_internal.h> > > #include <errno.h> > > #include <init.h> > > #include <miiphy.h> > > @@ -17,6 +18,7 @@ > > #include <asm/arch/clock.h> > > #include <asm/arch/sys_proto.h> > > #include <asm/mach-imx/gpio.h> > > +#include <asm/mach-imx/boot_mode.h> > > > > DECLARE_GLOBAL_DATA_PTR; > > > > @@ -32,6 +34,45 @@ static iomux_v3_cfg_t const wdog_pads[] = { > > MX8MP_PAD_GPIO1_IO02__WDOG1_WDOG_B | MUX_PAD_CTRL(WDOG_PAD_CTRL), > > }; > > > > +enum env_location env_get_location(enum env_operation op, int prio) > > +{ > > + enum boot_device dev = get_boot_device(); > > + enum env_location env_loc = ENVL_UNKNOWN; > > + > > + if (prio) > > + return env_loc; > > + > > + switch (dev) { > > +#ifdef CONFIG_ENV_IS_IN_SPI_FLASH > > + case QSPI_BOOT: > > + env_loc = ENVL_SPI_FLASH; > > + break; > > +#endif > > +#ifdef CONFIG_ENV_IS_IN_NAND > > + case NAND_BOOT: > > + env_loc = ENVL_NAND; > > + break; > > +#endif > > +#ifdef CONFIG_ENV_IS_IN_MMC > > + case SD1_BOOT: > > + case SD2_BOOT: > > + case SD3_BOOT: > > + case MMC1_BOOT: > > + case MMC2_BOOT: > > + case MMC3_BOOT: > > + env_loc = ENVL_MMC; > > + break; > > +#endif > > + default: > > +#if defined(CONFIG_ENV_IS_NOWHERE) > > + env_loc = ENVL_NOWHERE; > > +#endif > > Using > if (IS_ENABLED(CONFIG_ENV_IS_NOWHERE)) > instead of #ifdefs is preferred because the compiler then warns about > bugs even in the disabled codepaths (that's why checkpatch complains > about #ifdefs). > > I know that this cannot be combined with switch() in a simple way, > though. > > Do you need to use switch? Can't you rewrite it to use if()s and use > IS_ENABLED()? > > Marek Hi Marek, Thanks for your review. What do you think about this solution? enum env_location env_get_location(enum env_operation op, int prio) { enum boot_device dev = get_boot_device(); enum env_location env_loc = ENVL_UNKNOWN; if (prio) return env_loc; if (IS_ENABLED(CONFIG_ENV_IS_IN_SPI_FLASH) && dev == QSPI_BOOT) { env_loc = ENVL_SPI_FLASH; } else if (IS_ENABLED(CONFIG_ENV_IS_IN_NAND) && dev == NAND_BOOT) { env_loc = ENVL_NAND; } else if (IS_ENABLED(CONFIG_ENV_IS_IN_MMC)) { switch (dev) { case SD1_BOOT: case SD2_BOOT: case SD3_BOOT: case MMC1_BOOT: case MMC2_BOOT: case MMC3_BOOT: env_loc = ENVL_MMC; break; default: break; } } else if (IS_ENABLED(CONFIG_ENV_IS_NOWHERE)) { env_loc = ENVL_MMC; } return env_loc; } Let me know. Thanks, tommaso
On Sun, 28 Nov 2021 18:47:11 +0100 Tommaso Merciai <tomm.merciai@gmail.com> wrote: > On Fri, Nov 26, 2021 at 07:00:21PM +0100, Marek Behún wrote: > > On Fri, 26 Nov 2021 18:43:31 +0100 > > Tommaso Merciai <tomm.merciai@gmail.com> wrote: > > > > > Override env_get_location function at board level, previously dropped > > > down from soc.c > > > > > > References: > > > - commit f1575f23df1ef704051f218d5bc4aeeb20c2c542 > > > > > > Signed-off-by: Tommaso Merciai <tomm.merciai@gmail.com> > > > --- > > > Changes since v1: > > > - Remove wrong env_get_offset function from commit > > > > > > board/freescale/imx8mp_evk/imx8mp_evk.c | 41 +++++++++++++++++++++++++ > > > 1 file changed, 41 insertions(+) > > > > > > diff --git a/board/freescale/imx8mp_evk/imx8mp_evk.c b/board/freescale/imx8mp_evk/imx8mp_evk.c > > > index 62096c24fb..6b2eeaf152 100644 > > > --- a/board/freescale/imx8mp_evk/imx8mp_evk.c > > > +++ b/board/freescale/imx8mp_evk/imx8mp_evk.c > > > @@ -5,6 +5,7 @@ > > > > > > #include <common.h> > > > #include <env.h> > > > +#include <env_internal.h> > > > #include <errno.h> > > > #include <init.h> > > > #include <miiphy.h> > > > @@ -17,6 +18,7 @@ > > > #include <asm/arch/clock.h> > > > #include <asm/arch/sys_proto.h> > > > #include <asm/mach-imx/gpio.h> > > > +#include <asm/mach-imx/boot_mode.h> > > > > > > DECLARE_GLOBAL_DATA_PTR; > > > > > > @@ -32,6 +34,45 @@ static iomux_v3_cfg_t const wdog_pads[] = { > > > MX8MP_PAD_GPIO1_IO02__WDOG1_WDOG_B | MUX_PAD_CTRL(WDOG_PAD_CTRL), > > > }; > > > > > > +enum env_location env_get_location(enum env_operation op, int prio) > > > +{ > > > + enum boot_device dev = get_boot_device(); > > > + enum env_location env_loc = ENVL_UNKNOWN; > > > + > > > + if (prio) > > > + return env_loc; > > > + > > > + switch (dev) { > > > +#ifdef CONFIG_ENV_IS_IN_SPI_FLASH > > > + case QSPI_BOOT: > > > + env_loc = ENVL_SPI_FLASH; > > > + break; > > > +#endif > > > +#ifdef CONFIG_ENV_IS_IN_NAND > > > + case NAND_BOOT: > > > + env_loc = ENVL_NAND; > > > + break; > > > +#endif > > > +#ifdef CONFIG_ENV_IS_IN_MMC > > > + case SD1_BOOT: > > > + case SD2_BOOT: > > > + case SD3_BOOT: > > > + case MMC1_BOOT: > > > + case MMC2_BOOT: > > > + case MMC3_BOOT: > > > + env_loc = ENVL_MMC; > > > + break; > > > +#endif > > > + default: > > > +#if defined(CONFIG_ENV_IS_NOWHERE) > > > + env_loc = ENVL_NOWHERE; > > > +#endif > > > > Using > > if (IS_ENABLED(CONFIG_ENV_IS_NOWHERE)) > > instead of #ifdefs is preferred because the compiler then warns about > > bugs even in the disabled codepaths (that's why checkpatch complains > > about #ifdefs). > > > > I know that this cannot be combined with switch() in a simple way, > > though. > > > > Do you need to use switch? Can't you rewrite it to use if()s and use > > IS_ENABLED()? > > > > Marek > > Hi Marek, > Thanks for your review. What do you think about this solution? > > enum env_location env_get_location(enum env_operation op, int prio) > { > enum boot_device dev = get_boot_device(); > enum env_location env_loc = ENVL_UNKNOWN; > > if (prio) > return env_loc; > > if (IS_ENABLED(CONFIG_ENV_IS_IN_SPI_FLASH) && dev == QSPI_BOOT) { > env_loc = ENVL_SPI_FLASH; > } > else if (IS_ENABLED(CONFIG_ENV_IS_IN_NAND) && dev == NAND_BOOT) { > env_loc = ENVL_NAND; > } > else if (IS_ENABLED(CONFIG_ENV_IS_IN_MMC)) { > switch (dev) { > case SD1_BOOT: > case SD2_BOOT: > case SD3_BOOT: > case MMC1_BOOT: > case MMC2_BOOT: > case MMC3_BOOT: > env_loc = ENVL_MMC; > break; > default: > break; > } > } > else if (IS_ENABLED(CONFIG_ENV_IS_NOWHERE)) { > env_loc = ENVL_MMC; > } > > return env_loc; > } Thanks, this looks ok, just run it through checkpatch to correct the indentation of 'case' statements and put 'else if' on the same line as '}': if () { } else if () { } ... Marek
On Mon, Nov 29, 2021 at 01:17:44PM +0100, Marek Behún wrote: > On Sun, 28 Nov 2021 18:47:11 +0100 > Tommaso Merciai <tomm.merciai@gmail.com> wrote: > > > On Fri, Nov 26, 2021 at 07:00:21PM +0100, Marek Behún wrote: > > > On Fri, 26 Nov 2021 18:43:31 +0100 > > > Tommaso Merciai <tomm.merciai@gmail.com> wrote: > > > > > > > Override env_get_location function at board level, previously dropped > > > > down from soc.c > > > > > > > > References: > > > > - commit f1575f23df1ef704051f218d5bc4aeeb20c2c542 > > > > > > > > Signed-off-by: Tommaso Merciai <tomm.merciai@gmail.com> > > > > --- > > > > Changes since v1: > > > > - Remove wrong env_get_offset function from commit > > > > > > > > board/freescale/imx8mp_evk/imx8mp_evk.c | 41 +++++++++++++++++++++++++ > > > > 1 file changed, 41 insertions(+) > > > > > > > > diff --git a/board/freescale/imx8mp_evk/imx8mp_evk.c b/board/freescale/imx8mp_evk/imx8mp_evk.c > > > > index 62096c24fb..6b2eeaf152 100644 > > > > --- a/board/freescale/imx8mp_evk/imx8mp_evk.c > > > > +++ b/board/freescale/imx8mp_evk/imx8mp_evk.c > > > > @@ -5,6 +5,7 @@ > > > > > > > > #include <common.h> > > > > #include <env.h> > > > > +#include <env_internal.h> > > > > #include <errno.h> > > > > #include <init.h> > > > > #include <miiphy.h> > > > > @@ -17,6 +18,7 @@ > > > > #include <asm/arch/clock.h> > > > > #include <asm/arch/sys_proto.h> > > > > #include <asm/mach-imx/gpio.h> > > > > +#include <asm/mach-imx/boot_mode.h> > > > > > > > > DECLARE_GLOBAL_DATA_PTR; > > > > > > > > @@ -32,6 +34,45 @@ static iomux_v3_cfg_t const wdog_pads[] = { > > > > MX8MP_PAD_GPIO1_IO02__WDOG1_WDOG_B | MUX_PAD_CTRL(WDOG_PAD_CTRL), > > > > }; > > > > > > > > +enum env_location env_get_location(enum env_operation op, int prio) > > > > +{ > > > > + enum boot_device dev = get_boot_device(); > > > > + enum env_location env_loc = ENVL_UNKNOWN; > > > > + > > > > + if (prio) > > > > + return env_loc; > > > > + > > > > + switch (dev) { > > > > +#ifdef CONFIG_ENV_IS_IN_SPI_FLASH > > > > + case QSPI_BOOT: > > > > + env_loc = ENVL_SPI_FLASH; > > > > + break; > > > > +#endif > > > > +#ifdef CONFIG_ENV_IS_IN_NAND > > > > + case NAND_BOOT: > > > > + env_loc = ENVL_NAND; > > > > + break; > > > > +#endif > > > > +#ifdef CONFIG_ENV_IS_IN_MMC > > > > + case SD1_BOOT: > > > > + case SD2_BOOT: > > > > + case SD3_BOOT: > > > > + case MMC1_BOOT: > > > > + case MMC2_BOOT: > > > > + case MMC3_BOOT: > > > > + env_loc = ENVL_MMC; > > > > + break; > > > > +#endif > > > > + default: > > > > +#if defined(CONFIG_ENV_IS_NOWHERE) > > > > + env_loc = ENVL_NOWHERE; > > > > +#endif > > > > > > Using > > > if (IS_ENABLED(CONFIG_ENV_IS_NOWHERE)) > > > instead of #ifdefs is preferred because the compiler then warns about > > > bugs even in the disabled codepaths (that's why checkpatch complains > > > about #ifdefs). > > > > > > I know that this cannot be combined with switch() in a simple way, > > > though. > > > > > > Do you need to use switch? Can't you rewrite it to use if()s and use > > > IS_ENABLED()? > > > > > > Marek > > > > Hi Marek, > > Thanks for your review. What do you think about this solution? > > > > enum env_location env_get_location(enum env_operation op, int prio) > > { > > enum boot_device dev = get_boot_device(); > > enum env_location env_loc = ENVL_UNKNOWN; > > > > if (prio) > > return env_loc; > > > > if (IS_ENABLED(CONFIG_ENV_IS_IN_SPI_FLASH) && dev == QSPI_BOOT) { > > env_loc = ENVL_SPI_FLASH; > > } > > else if (IS_ENABLED(CONFIG_ENV_IS_IN_NAND) && dev == NAND_BOOT) { > > env_loc = ENVL_NAND; > > } > > else if (IS_ENABLED(CONFIG_ENV_IS_IN_MMC)) { > > switch (dev) { > > case SD1_BOOT: > > case SD2_BOOT: > > case SD3_BOOT: > > case MMC1_BOOT: > > case MMC2_BOOT: > > case MMC3_BOOT: > > env_loc = ENVL_MMC; > > break; > > default: > > break; > > } > > } > > else if (IS_ENABLED(CONFIG_ENV_IS_NOWHERE)) { > > env_loc = ENVL_MMC; > > } > > > > return env_loc; > > } > > Thanks, this looks ok, just run it through checkpatch to correct the > indentation of 'case' statements and put 'else if' on the same line as > '}': > > if () { > } else if () { > } ... > > Marek Thanks Marek for your review. Sent v2. Let me know, Tommaso
On Tue, Nov 30, 2021 at 09:23:18PM +0100, Tommaso Merciai wrote: > On Mon, Nov 29, 2021 at 01:17:44PM +0100, Marek Behún wrote: > > On Sun, 28 Nov 2021 18:47:11 +0100 > > Tommaso Merciai <tomm.merciai@gmail.com> wrote: > > > > > On Fri, Nov 26, 2021 at 07:00:21PM +0100, Marek Behún wrote: > > > > On Fri, 26 Nov 2021 18:43:31 +0100 > > > > Tommaso Merciai <tomm.merciai@gmail.com> wrote: > > > > > > > > > Override env_get_location function at board level, previously dropped > > > > > down from soc.c > > > > > > > > > > References: > > > > > - commit f1575f23df1ef704051f218d5bc4aeeb20c2c542 > > > > > > > > > > Signed-off-by: Tommaso Merciai <tomm.merciai@gmail.com> > > > > > --- > > > > > Changes since v1: > > > > > - Remove wrong env_get_offset function from commit > > > > > > > > > > board/freescale/imx8mp_evk/imx8mp_evk.c | 41 +++++++++++++++++++++++++ > > > > > 1 file changed, 41 insertions(+) > > > > > > > > > > diff --git a/board/freescale/imx8mp_evk/imx8mp_evk.c b/board/freescale/imx8mp_evk/imx8mp_evk.c > > > > > index 62096c24fb..6b2eeaf152 100644 > > > > > --- a/board/freescale/imx8mp_evk/imx8mp_evk.c > > > > > +++ b/board/freescale/imx8mp_evk/imx8mp_evk.c > > > > > @@ -5,6 +5,7 @@ > > > > > > > > > > #include <common.h> > > > > > #include <env.h> > > > > > +#include <env_internal.h> > > > > > #include <errno.h> > > > > > #include <init.h> > > > > > #include <miiphy.h> > > > > > @@ -17,6 +18,7 @@ > > > > > #include <asm/arch/clock.h> > > > > > #include <asm/arch/sys_proto.h> > > > > > #include <asm/mach-imx/gpio.h> > > > > > +#include <asm/mach-imx/boot_mode.h> > > > > > > > > > > DECLARE_GLOBAL_DATA_PTR; > > > > > > > > > > @@ -32,6 +34,45 @@ static iomux_v3_cfg_t const wdog_pads[] = { > > > > > MX8MP_PAD_GPIO1_IO02__WDOG1_WDOG_B | MUX_PAD_CTRL(WDOG_PAD_CTRL), > > > > > }; > > > > > > > > > > +enum env_location env_get_location(enum env_operation op, int prio) > > > > > +{ > > > > > + enum boot_device dev = get_boot_device(); > > > > > + enum env_location env_loc = ENVL_UNKNOWN; > > > > > + > > > > > + if (prio) > > > > > + return env_loc; > > > > > + > > > > > + switch (dev) { > > > > > +#ifdef CONFIG_ENV_IS_IN_SPI_FLASH > > > > > + case QSPI_BOOT: > > > > > + env_loc = ENVL_SPI_FLASH; > > > > > + break; > > > > > +#endif > > > > > +#ifdef CONFIG_ENV_IS_IN_NAND > > > > > + case NAND_BOOT: > > > > > + env_loc = ENVL_NAND; > > > > > + break; > > > > > +#endif > > > > > +#ifdef CONFIG_ENV_IS_IN_MMC > > > > > + case SD1_BOOT: > > > > > + case SD2_BOOT: > > > > > + case SD3_BOOT: > > > > > + case MMC1_BOOT: > > > > > + case MMC2_BOOT: > > > > > + case MMC3_BOOT: > > > > > + env_loc = ENVL_MMC; > > > > > + break; > > > > > +#endif > > > > > + default: > > > > > +#if defined(CONFIG_ENV_IS_NOWHERE) > > > > > + env_loc = ENVL_NOWHERE; > > > > > +#endif > > > > > > > > Using > > > > if (IS_ENABLED(CONFIG_ENV_IS_NOWHERE)) > > > > instead of #ifdefs is preferred because the compiler then warns about > > > > bugs even in the disabled codepaths (that's why checkpatch complains > > > > about #ifdefs). > > > > > > > > I know that this cannot be combined with switch() in a simple way, > > > > though. > > > > > > > > Do you need to use switch? Can't you rewrite it to use if()s and use > > > > IS_ENABLED()? > > > > > > > > Marek > > > > > > Hi Marek, > > > Thanks for your review. What do you think about this solution? > > > > > > enum env_location env_get_location(enum env_operation op, int prio) > > > { > > > enum boot_device dev = get_boot_device(); > > > enum env_location env_loc = ENVL_UNKNOWN; > > > > > > if (prio) > > > return env_loc; > > > > > > if (IS_ENABLED(CONFIG_ENV_IS_IN_SPI_FLASH) && dev == QSPI_BOOT) { > > > env_loc = ENVL_SPI_FLASH; > > > } > > > else if (IS_ENABLED(CONFIG_ENV_IS_IN_NAND) && dev == NAND_BOOT) { > > > env_loc = ENVL_NAND; > > > } > > > else if (IS_ENABLED(CONFIG_ENV_IS_IN_MMC)) { > > > switch (dev) { > > > case SD1_BOOT: > > > case SD2_BOOT: > > > case SD3_BOOT: > > > case MMC1_BOOT: > > > case MMC2_BOOT: > > > case MMC3_BOOT: > > > env_loc = ENVL_MMC; > > > break; > > > default: > > > break; > > > } > > > } > > > else if (IS_ENABLED(CONFIG_ENV_IS_NOWHERE)) { > > > env_loc = ENVL_MMC; > > > } > > > > > > return env_loc; > > > } > > > > Thanks, this looks ok, just run it through checkpatch to correct the > > indentation of 'case' statements and put 'else if' on the same line as > > '}': > > > > if () { > > } else if () { > > } ... > > > > Marek > > Thanks Marek for your review. Sent v2. > > Let me know, > Tommaso Hi Marek, Have you had the time to check v2 yet? Thanks, tommaso
diff --git a/board/freescale/imx8mp_evk/imx8mp_evk.c b/board/freescale/imx8mp_evk/imx8mp_evk.c index 62096c24fb..6b2eeaf152 100644 --- a/board/freescale/imx8mp_evk/imx8mp_evk.c +++ b/board/freescale/imx8mp_evk/imx8mp_evk.c @@ -5,6 +5,7 @@ #include <common.h> #include <env.h> +#include <env_internal.h> #include <errno.h> #include <init.h> #include <miiphy.h> @@ -17,6 +18,7 @@ #include <asm/arch/clock.h> #include <asm/arch/sys_proto.h> #include <asm/mach-imx/gpio.h> +#include <asm/mach-imx/boot_mode.h> DECLARE_GLOBAL_DATA_PTR; @@ -32,6 +34,45 @@ static iomux_v3_cfg_t const wdog_pads[] = { MX8MP_PAD_GPIO1_IO02__WDOG1_WDOG_B | MUX_PAD_CTRL(WDOG_PAD_CTRL), }; +enum env_location env_get_location(enum env_operation op, int prio) +{ + enum boot_device dev = get_boot_device(); + enum env_location env_loc = ENVL_UNKNOWN; + + if (prio) + return env_loc; + + switch (dev) { +#ifdef CONFIG_ENV_IS_IN_SPI_FLASH + case QSPI_BOOT: + env_loc = ENVL_SPI_FLASH; + break; +#endif +#ifdef CONFIG_ENV_IS_IN_NAND + case NAND_BOOT: + env_loc = ENVL_NAND; + break; +#endif +#ifdef CONFIG_ENV_IS_IN_MMC + case SD1_BOOT: + case SD2_BOOT: + case SD3_BOOT: + case MMC1_BOOT: + case MMC2_BOOT: + case MMC3_BOOT: + env_loc = ENVL_MMC; + break; +#endif + default: +#if defined(CONFIG_ENV_IS_NOWHERE) + env_loc = ENVL_NOWHERE; +#endif + break; + } + + return env_loc; +} + int board_early_init_f(void) { struct wdog_regs *wdog = (struct wdog_regs *)WDOG1_BASE_ADDR;
Override env_get_location function at board level, previously dropped down from soc.c References: - commit f1575f23df1ef704051f218d5bc4aeeb20c2c542 Signed-off-by: Tommaso Merciai <tomm.merciai@gmail.com> --- Changes since v1: - Remove wrong env_get_offset function from commit board/freescale/imx8mp_evk/imx8mp_evk.c | 41 +++++++++++++++++++++++++ 1 file changed, 41 insertions(+)