* [RFC PATCH 0/3] imx8m: move env_get_location for imx8mn and imx8mp at board level
@ 2021-11-26 17:43 Tommaso Merciai
2021-11-26 17:43 ` [RFC PATCH 1/3] imx8m: drop env_get_location for imx8mn and imx8mp Tommaso Merciai
` (3 more replies)
0 siblings, 4 replies; 13+ messages in thread
From: Tommaso Merciai @ 2021-11-26 17:43 UTC (permalink / raw)
Cc: michael, andrey.zhizhikin, Tommaso Merciai, Stefano Babic,
Fabio Estevam, NXP i.MX U-Boot Team, Peng Fan, Ye Li,
Marek Vasut, Simon Glass, Frieder Schrempf, Marek Behún,
Ying-Chun Liu (PaulLiu),
u-boot
This series move env_get_location from soc to board level. As suggested
by Michael <michael@amarulasolutions.com> make no sense to define an
unique way for multiple board. One board can boot from emmc and having
env on spi flash etc.. Anyways, this function is kept in both imx8mn
and imx8mp evk boards instead of being completely dropped.
(as suggested by Andrey <andrey.zhizhikin@leica-geosystems.com>)
Tommaso Merciai (3):
imx8m: drop env_get_location for imx8mn and imx8mp
imx: imx8mn_evk: override env_get_location
imx: imx8mp_evk: override env_get_location
arch/arm/mach-imx/imx8m/soc.c | 39 -----------------------
board/freescale/imx8mn_evk/imx8mn_evk.c | 42 +++++++++++++++++++++++++
board/freescale/imx8mp_evk/imx8mp_evk.c | 41 ++++++++++++++++++++++++
3 files changed, 83 insertions(+), 39 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 13+ messages in thread
* [RFC PATCH 1/3] imx8m: drop env_get_location for imx8mn and imx8mp
2021-11-26 17:43 [RFC PATCH 0/3] imx8m: move env_get_location for imx8mn and imx8mp at board level Tommaso Merciai
@ 2021-11-26 17:43 ` Tommaso Merciai
2021-11-26 17:43 ` [RFC PATCH 2/3] imx: imx8mn_evk: override env_get_location Tommaso Merciai
` (2 subsequent siblings)
3 siblings, 0 replies; 13+ messages in thread
From: Tommaso Merciai @ 2021-11-26 17:43 UTC (permalink / raw)
Cc: michael, andrey.zhizhikin, Tommaso Merciai, Stefano Babic,
Fabio Estevam, NXP i.MX U-Boot Team, Peng Fan, Ye Li,
Simon Glass, Marek Vasut, Frieder Schrempf, Harald Seiler,
Tim Harvey, Ying-Chun Liu (PaulLiu),
u-boot
This function defined for two architecture is not really generic
and can generate problem when people add a new board.
Signed-off-by: Tommaso Merciai <tomm.merciai@gmail.com>
---
Changes since v1:
- Fix commit: drop down only env_get_location
arch/arm/mach-imx/imx8m/soc.c | 39 -----------------------------------
1 file changed, 39 deletions(-)
diff --git a/arch/arm/mach-imx/imx8m/soc.c b/arch/arm/mach-imx/imx8m/soc.c
index 863508776d..f0030a557a 100644
--- a/arch/arm/mach-imx/imx8m/soc.c
+++ b/arch/arm/mach-imx/imx8m/soc.c
@@ -1313,45 +1313,6 @@ void do_error(struct pt_regs *pt_regs, unsigned int esr)
#endif
#if defined(CONFIG_IMX8MN) || defined(CONFIG_IMX8MP)
-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;
-}
-
#ifndef ENV_IS_EMBEDDED
long long env_get_offset(long long defautl_offset)
{
--
2.25.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [RFC PATCH 2/3] imx: imx8mn_evk: override env_get_location
2021-11-26 17:43 [RFC PATCH 0/3] imx8m: move env_get_location for imx8mn and imx8mp at board level Tommaso Merciai
2021-11-26 17:43 ` [RFC PATCH 1/3] imx8m: drop env_get_location for imx8mn and imx8mp Tommaso Merciai
@ 2021-11-26 17:43 ` Tommaso Merciai
2021-11-26 17:43 ` [RFC PATCH 3/3] imx: imx8mp_evk: " Tommaso Merciai
2021-11-29 8:38 ` [RFC PATCH 0/3] imx8m: move env_get_location for imx8mn and imx8mp at board level ZHIZHIKIN Andrey
3 siblings, 0 replies; 13+ messages in thread
From: Tommaso Merciai @ 2021-11-26 17:43 UTC (permalink / raw)
Cc: michael, andrey.zhizhikin, Tommaso Merciai, Stefano Babic,
Fabio Estevam, NXP i.MX U-Boot Team, Peng Fan, Ye Li,
Marek Vasut, Simon Glass, Frieder Schrempf, Harald Seiler,
Ying-Chun Liu (PaulLiu),
u-boot
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/imx8mn_evk/imx8mn_evk.c | 42 +++++++++++++++++++++++++
1 file changed, 42 insertions(+)
diff --git a/board/freescale/imx8mn_evk/imx8mn_evk.c b/board/freescale/imx8mn_evk/imx8mn_evk.c
index 9a0a0488bf..ef89a91ea2 100644
--- a/board/freescale/imx8mn_evk/imx8mn_evk.c
+++ b/board/freescale/imx8mn_evk/imx8mn_evk.c
@@ -5,11 +5,53 @@
#include <common.h>
#include <env.h>
+#include <env_internal.h>
#include <init.h>
+#include <asm/arch/sys_proto.h>
+#include <asm/mach-imx/boot_mode.h>
#include <asm/global_data.h>
DECLARE_GLOBAL_DATA_PTR;
+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_init(void)
{
return 0;
--
2.25.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [RFC PATCH 3/3] imx: imx8mp_evk: override env_get_location
2021-11-26 17:43 [RFC PATCH 0/3] imx8m: move env_get_location for imx8mn and imx8mp at board level Tommaso Merciai
2021-11-26 17:43 ` [RFC PATCH 1/3] imx8m: drop env_get_location for imx8mn and imx8mp Tommaso Merciai
2021-11-26 17:43 ` [RFC PATCH 2/3] imx: imx8mn_evk: override env_get_location Tommaso Merciai
@ 2021-11-26 17:43 ` Tommaso Merciai
2021-11-26 18:00 ` Marek Behún
2021-11-29 8:38 ` [RFC PATCH 0/3] imx8m: move env_get_location for imx8mn and imx8mp at board level ZHIZHIKIN Andrey
3 siblings, 1 reply; 13+ messages in thread
From: Tommaso Merciai @ 2021-11-26 17:43 UTC (permalink / raw)
Cc: michael, andrey.zhizhikin, Tommaso Merciai, Stefano Babic,
Fabio Estevam, NXP i.MX U-Boot Team, Peng Fan, Ye Li,
Marek Vasut, Simon Glass, Frieder Schrempf, Marek Behún,
Harald Seiler, Ying-Chun Liu (PaulLiu),
u-boot
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
+ break;
+ }
+
+ return env_loc;
+}
+
int board_early_init_f(void)
{
struct wdog_regs *wdog = (struct wdog_regs *)WDOG1_BASE_ADDR;
--
2.25.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [RFC PATCH 3/3] imx: imx8mp_evk: override env_get_location
2021-11-26 17:43 ` [RFC PATCH 3/3] imx: imx8mp_evk: " Tommaso Merciai
@ 2021-11-26 18:00 ` Marek Behún
2021-11-28 17:47 ` Tommaso Merciai
0 siblings, 1 reply; 13+ messages in thread
From: Marek Behún @ 2021-11-26 18:00 UTC (permalink / raw)
To: Tommaso Merciai
Cc: michael, andrey.zhizhikin, Stefano Babic, Fabio Estevam,
NXP i.MX U-Boot Team, Peng Fan, Ye Li, Marek Vasut, Simon Glass,
Frieder Schrempf, Harald Seiler, Ying-Chun Liu (PaulLiu),
u-boot
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
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC PATCH 3/3] imx: imx8mp_evk: override env_get_location
2021-11-26 18:00 ` Marek Behún
@ 2021-11-28 17:47 ` Tommaso Merciai
2021-11-29 12:17 ` Marek Behún
0 siblings, 1 reply; 13+ messages in thread
From: Tommaso Merciai @ 2021-11-28 17:47 UTC (permalink / raw)
To: Marek Behún
Cc: michael, andrey.zhizhikin, Stefano Babic, Fabio Estevam,
NXP i.MX U-Boot Team, Peng Fan, Ye Li, Marek Vasut, Simon Glass,
Frieder Schrempf, Harald Seiler, Ying-Chun Liu (PaulLiu),
u-boot
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
^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: [RFC PATCH 0/3] imx8m: move env_get_location for imx8mn and imx8mp at board level
2021-11-26 17:43 [RFC PATCH 0/3] imx8m: move env_get_location for imx8mn and imx8mp at board level Tommaso Merciai
` (2 preceding siblings ...)
2021-11-26 17:43 ` [RFC PATCH 3/3] imx: imx8mp_evk: " Tommaso Merciai
@ 2021-11-29 8:38 ` ZHIZHIKIN Andrey
2021-11-29 8:40 ` Michael Nazzareno Trimarchi
3 siblings, 1 reply; 13+ messages in thread
From: ZHIZHIKIN Andrey @ 2021-11-29 8:38 UTC (permalink / raw)
To: Tommaso Merciai
Cc: michael, Stefano Babic, Fabio Estevam, NXP i.MX U-Boot Team,
Peng Fan, Ye Li, Marek Vasut, Simon Glass, Frieder Schrempf,
Marek Behún, Ying-Chun Liu (PaulLiu),
u-boot
Hello Tommaso,
> -----Original Message-----
> From: Tommaso Merciai <tomm.merciai@gmail.com>
> Sent: Friday, November 26, 2021 6:43 PM
> Cc: michael@amarulasolutions.com; ZHIZHIKIN Andrey <andrey.zhizhikin@leica-
> geosystems.com>; Tommaso Merciai <tomm.merciai@gmail.com>; Stefano Babic
> <sbabic@denx.de>; Fabio Estevam <festevam@gmail.com>; NXP i.MX U-Boot Team
> <uboot-imx@nxp.com>; Peng Fan <peng.fan@nxp.com>; Ye Li <ye.li@nxp.com>; Marek
> Vasut <marex@denx.de>; Simon Glass <sjg@chromium.org>; Frieder Schrempf
> <frieder.schrempf@kontron.de>; Marek Behún <marek.behun@nic.cz>; Ying-Chun Liu
> (PaulLiu) <paulliu@debian.org>; u-boot@lists.denx.de
> Subject: [RFC PATCH 0/3] imx8m: move env_get_location for imx8mn and imx8mp at
> board level
>
>
> This series move env_get_location from soc to board level. As suggested
> by Michael <michael@amarulasolutions.com> make no sense to define an
> unique way for multiple board. One board can boot from emmc and having
> env on spi flash etc.. Anyways, this function is kept in both imx8mn
> and imx8mp evk boards instead of being completely dropped.
> (as suggested by Andrey <andrey.zhizhikin@leica-geosystems.com>)
I believe there has been another suggestion from my side regarding this patch:
Since it look like that Michael Trimarchi submitted another part to drop
env_get_offset() in [1], combined with the first patch in this series - it is
a complete revert of 2707faf01f ("imx8mn/imx8mp: override env_get_offset and
env_get_location").
I suggest you to submit a revert instead of your first patch and deprecate the
patch from Michael, instead of having 2 separate patches for this.
>
> Tommaso Merciai (3):
> imx8m: drop env_get_location for imx8mn and imx8mp
> imx: imx8mn_evk: override env_get_location
> imx: imx8mp_evk: override env_get_location
>
> arch/arm/mach-imx/imx8m/soc.c | 39 -----------------------
> board/freescale/imx8mn_evk/imx8mn_evk.c | 42 +++++++++++++++++++++++++
> board/freescale/imx8mp_evk/imx8mp_evk.c | 41 ++++++++++++++++++++++++
> 3 files changed, 83 insertions(+), 39 deletions(-)
>
> --
> 2.25.1
Link: [1]: http://patchwork.ozlabs.org/project/uboot/patch/20211117143456.34441-1-michael@amarulasolutions.com/
-- andrey
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC PATCH 0/3] imx8m: move env_get_location for imx8mn and imx8mp at board level
2021-11-29 8:38 ` [RFC PATCH 0/3] imx8m: move env_get_location for imx8mn and imx8mp at board level ZHIZHIKIN Andrey
@ 2021-11-29 8:40 ` Michael Nazzareno Trimarchi
2021-11-29 8:46 ` ZHIZHIKIN Andrey
0 siblings, 1 reply; 13+ messages in thread
From: Michael Nazzareno Trimarchi @ 2021-11-29 8:40 UTC (permalink / raw)
To: ZHIZHIKIN Andrey
Cc: Tommaso Merciai, Stefano Babic, Fabio Estevam,
NXP i.MX U-Boot Team, Peng Fan, Ye Li, Marek Vasut, Simon Glass,
Frieder Schrempf, Marek Behún, Ying-Chun Liu (PaulLiu),
u-boot
HI
On Mon, Nov 29, 2021 at 9:38 AM ZHIZHIKIN Andrey
<andrey.zhizhikin@leica-geosystems.com> wrote:
>
> Hello Tommaso,
>
> > -----Original Message-----
> > From: Tommaso Merciai <tomm.merciai@gmail.com>
> > Sent: Friday, November 26, 2021 6:43 PM
> > Cc: michael@amarulasolutions.com; ZHIZHIKIN Andrey <andrey.zhizhikin@leica-
> > geosystems.com>; Tommaso Merciai <tomm.merciai@gmail.com>; Stefano Babic
> > <sbabic@denx.de>; Fabio Estevam <festevam@gmail.com>; NXP i.MX U-Boot Team
> > <uboot-imx@nxp.com>; Peng Fan <peng.fan@nxp.com>; Ye Li <ye.li@nxp.com>; Marek
> > Vasut <marex@denx.de>; Simon Glass <sjg@chromium.org>; Frieder Schrempf
> > <frieder.schrempf@kontron.de>; Marek Behún <marek.behun@nic.cz>; Ying-Chun Liu
> > (PaulLiu) <paulliu@debian.org>; u-boot@lists.denx.de
> > Subject: [RFC PATCH 0/3] imx8m: move env_get_location for imx8mn and imx8mp at
> > board level
> >
> >
> > This series move env_get_location from soc to board level. As suggested
> > by Michael <michael@amarulasolutions.com> make no sense to define an
> > unique way for multiple board. One board can boot from emmc and having
> > env on spi flash etc.. Anyways, this function is kept in both imx8mn
> > and imx8mp evk boards instead of being completely dropped.
> > (as suggested by Andrey <andrey.zhizhikin@leica-geosystems.com>)
>
> I believe there has been another suggestion from my side regarding this patch:
> Since it look like that Michael Trimarchi submitted another part to drop
> env_get_offset() in [1], combined with the first patch in this series - it is
> a complete revert of 2707faf01f ("imx8mn/imx8mp: override env_get_offset and
> env_get_location").
>
> I suggest you to submit a revert instead of your first patch and deprecate the
> patch from Michael, instead of having 2 separate patches for this.
>
I think they are totally different problems. One is code not used and
the other moves that implementation
in specific parts.
Michael
> >
> > Tommaso Merciai (3):
> > imx8m: drop env_get_location for imx8mn and imx8mp
> > imx: imx8mn_evk: override env_get_location
> > imx: imx8mp_evk: override env_get_location
> >
> > arch/arm/mach-imx/imx8m/soc.c | 39 -----------------------
> > board/freescale/imx8mn_evk/imx8mn_evk.c | 42 +++++++++++++++++++++++++
> > board/freescale/imx8mp_evk/imx8mp_evk.c | 41 ++++++++++++++++++++++++
> > 3 files changed, 83 insertions(+), 39 deletions(-)
> >
> > --
> > 2.25.1
>
> Link: [1]: http://patchwork.ozlabs.org/project/uboot/patch/20211117143456.34441-1-michael@amarulasolutions.com/
>
> -- andrey
--
Michael Nazzareno Trimarchi
Co-Founder & Chief Executive Officer
M. +39 347 913 2170
michael@amarulasolutions.com
__________________________________
Amarula Solutions BV
Joop Geesinkweg 125, 1114 AB, Amsterdam, NL
T. +31 (0)85 111 9172
info@amarulasolutions.com
www.amarulasolutions.com
^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: [RFC PATCH 0/3] imx8m: move env_get_location for imx8mn and imx8mp at board level
2021-11-29 8:40 ` Michael Nazzareno Trimarchi
@ 2021-11-29 8:46 ` ZHIZHIKIN Andrey
2021-11-29 8:48 ` Michael Nazzareno Trimarchi
0 siblings, 1 reply; 13+ messages in thread
From: ZHIZHIKIN Andrey @ 2021-11-29 8:46 UTC (permalink / raw)
To: Michael Nazzareno Trimarchi
Cc: Tommaso Merciai, Stefano Babic, Fabio Estevam,
NXP i.MX U-Boot Team, Peng Fan, Ye Li, Marek Vasut, Simon Glass,
Frieder Schrempf, Marek Behún, Ying-Chun Liu (PaulLiu),
u-boot
Hello Michael,
> -----Original Message-----
> From: Michael Nazzareno Trimarchi <michael@amarulasolutions.com>
> Sent: Monday, November 29, 2021 9:40 AM
> To: ZHIZHIKIN Andrey <andrey.zhizhikin@leica-geosystems.com>
> Cc: Tommaso Merciai <tomm.merciai@gmail.com>; Stefano Babic <sbabic@denx.de>;
> Fabio Estevam <festevam@gmail.com>; NXP i.MX U-Boot Team <uboot-imx@nxp.com>;
> Peng Fan <peng.fan@nxp.com>; Ye Li <ye.li@nxp.com>; Marek Vasut <marex@denx.de>;
> Simon Glass <sjg@chromium.org>; Frieder Schrempf <frieder.schrempf@kontron.de>;
> Marek Behún <marek.behun@nic.cz>; Ying-Chun Liu (PaulLiu) <paulliu@debian.org>;
> u-boot@lists.denx.de
> Subject: Re: [RFC PATCH 0/3] imx8m: move env_get_location for imx8mn and imx8mp
> at board level
>
>
> HI
>
> On Mon, Nov 29, 2021 at 9:38 AM ZHIZHIKIN Andrey
> <andrey.zhizhikin@leica-geosystems.com> wrote:
> >
> > Hello Tommaso,
> >
> > > -----Original Message-----
> > > From: Tommaso Merciai <tomm.merciai@gmail.com>
> > > Sent: Friday, November 26, 2021 6:43 PM
> > > Cc: michael@amarulasolutions.com; ZHIZHIKIN Andrey <andrey.zhizhikin@leica-
> > > geosystems.com>; Tommaso Merciai <tomm.merciai@gmail.com>; Stefano Babic
> > > <sbabic@denx.de>; Fabio Estevam <festevam@gmail.com>; NXP i.MX U-Boot Team
> > > <uboot-imx@nxp.com>; Peng Fan <peng.fan@nxp.com>; Ye Li <ye.li@nxp.com>;
> Marek
> > > Vasut <marex@denx.de>; Simon Glass <sjg@chromium.org>; Frieder Schrempf
> > > <frieder.schrempf@kontron.de>; Marek Behún <marek.behun@nic.cz>; Ying-Chun
> Liu
> > > (PaulLiu) <paulliu@debian.org>; u-boot@lists.denx.de
> > > Subject: [RFC PATCH 0/3] imx8m: move env_get_location for imx8mn and imx8mp
> at
> > > board level
> > >
> > >
> > > This series move env_get_location from soc to board level. As suggested
> > > by Michael <michael@amarulasolutions.com> make no sense to define an
> > > unique way for multiple board. One board can boot from emmc and having
> > > env on spi flash etc.. Anyways, this function is kept in both imx8mn
> > > and imx8mp evk boards instead of being completely dropped.
> > > (as suggested by Andrey <andrey.zhizhikin@leica-geosystems.com>)
> >
> > I believe there has been another suggestion from my side regarding this patch:
> > Since it look like that Michael Trimarchi submitted another part to drop
> > env_get_offset() in [1], combined with the first patch in this series - it is
> > a complete revert of 2707faf01f ("imx8mn/imx8mp: override env_get_offset and
> > env_get_location").
> >
> > I suggest you to submit a revert instead of your first patch and deprecate the
> > patch from Michael, instead of having 2 separate patches for this.
> >
>
> I think they are totally different problems. One is code not used and
> the other moves that implementation
> in specific parts.
They might be logically different, but 2 commits combined together - is a full
revert to me.
I'd leave this up to maintainer to decide, but for me it would be logical to see
a revert instead of 2 separate commits - this makes tracking more transparent.
>
> Michael
>
> > >
> > > Tommaso Merciai (3):
> > > imx8m: drop env_get_location for imx8mn and imx8mp
> > > imx: imx8mn_evk: override env_get_location
> > > imx: imx8mp_evk: override env_get_location
> > >
> > > arch/arm/mach-imx/imx8m/soc.c | 39 -----------------------
> > > board/freescale/imx8mn_evk/imx8mn_evk.c | 42 +++++++++++++++++++++++++
> > > board/freescale/imx8mp_evk/imx8mp_evk.c | 41 ++++++++++++++++++++++++
> > > 3 files changed, 83 insertions(+), 39 deletions(-)
> > >
> > > --
> > > 2.25.1
> >
> > Link: [1]: http://patchwork.ozlabs.org/project/uboot/patch/20211117143456.34441-1-michael@amarulasolutions.com/
> >
> > -- andrey
>
>
>
> --
> Michael Nazzareno Trimarchi
> Co-Founder & Chief Executive Officer
> M. +39 347 913 2170
> michael@amarulasolutions.com
> __________________________________
>
> Amarula Solutions BV
> Joop Geesinkweg 125, 1114 AB, Amsterdam, NL
> T. +31 (0)85 111 9172
> info@amarulasolutions.com
> https://eur02.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.amarulasolut
> ions.com%2F&data=04%7C01%7C%7C666e97d4bb5f425c9a0408d9b313dd84%7C1b16ab3eb8f6
> 4fe39f3e2db7fe549f6a%7C0%7C0%7C637737720180120994%7CUnknown%7CTWFpbGZsb3d8eyJWIjo
> iMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=NJQ7
> qjpMWu%2BhGoIcqwmD%2BLc4Ekq1oHjqPSCqkiCr4DA%3D&reserved=0
-- andrey
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC PATCH 0/3] imx8m: move env_get_location for imx8mn and imx8mp at board level
2021-11-29 8:46 ` ZHIZHIKIN Andrey
@ 2021-11-29 8:48 ` Michael Nazzareno Trimarchi
0 siblings, 0 replies; 13+ messages in thread
From: Michael Nazzareno Trimarchi @ 2021-11-29 8:48 UTC (permalink / raw)
To: ZHIZHIKIN Andrey
Cc: Tommaso Merciai, Stefano Babic, Fabio Estevam,
NXP i.MX U-Boot Team, Peng Fan, Ye Li, Marek Vasut, Simon Glass,
Frieder Schrempf, Marek Behún, Ying-Chun Liu (PaulLiu),
u-boot
Hi
On Mon, Nov 29, 2021 at 9:46 AM ZHIZHIKIN Andrey
<andrey.zhizhikin@leica-geosystems.com> wrote:
>
> Hello Michael,
>
> > -----Original Message-----
> > From: Michael Nazzareno Trimarchi <michael@amarulasolutions.com>
> > Sent: Monday, November 29, 2021 9:40 AM
> > To: ZHIZHIKIN Andrey <andrey.zhizhikin@leica-geosystems.com>
> > Cc: Tommaso Merciai <tomm.merciai@gmail.com>; Stefano Babic <sbabic@denx.de>;
> > Fabio Estevam <festevam@gmail.com>; NXP i.MX U-Boot Team <uboot-imx@nxp.com>;
> > Peng Fan <peng.fan@nxp.com>; Ye Li <ye.li@nxp.com>; Marek Vasut <marex@denx.de>;
> > Simon Glass <sjg@chromium.org>; Frieder Schrempf <frieder.schrempf@kontron.de>;
> > Marek Behún <marek.behun@nic.cz>; Ying-Chun Liu (PaulLiu) <paulliu@debian.org>;
> > u-boot@lists.denx.de
> > Subject: Re: [RFC PATCH 0/3] imx8m: move env_get_location for imx8mn and imx8mp
> > at board level
> >
> >
> > HI
> >
> > On Mon, Nov 29, 2021 at 9:38 AM ZHIZHIKIN Andrey
> > <andrey.zhizhikin@leica-geosystems.com> wrote:
> > >
> > > Hello Tommaso,
> > >
> > > > -----Original Message-----
> > > > From: Tommaso Merciai <tomm.merciai@gmail.com>
> > > > Sent: Friday, November 26, 2021 6:43 PM
> > > > Cc: michael@amarulasolutions.com; ZHIZHIKIN Andrey <andrey.zhizhikin@leica-
> > > > geosystems.com>; Tommaso Merciai <tomm.merciai@gmail.com>; Stefano Babic
> > > > <sbabic@denx.de>; Fabio Estevam <festevam@gmail.com>; NXP i.MX U-Boot Team
> > > > <uboot-imx@nxp.com>; Peng Fan <peng.fan@nxp.com>; Ye Li <ye.li@nxp.com>;
> > Marek
> > > > Vasut <marex@denx.de>; Simon Glass <sjg@chromium.org>; Frieder Schrempf
> > > > <frieder.schrempf@kontron.de>; Marek Behún <marek.behun@nic.cz>; Ying-Chun
> > Liu
> > > > (PaulLiu) <paulliu@debian.org>; u-boot@lists.denx.de
> > > > Subject: [RFC PATCH 0/3] imx8m: move env_get_location for imx8mn and imx8mp
> > at
> > > > board level
> > > >
> > > >
> > > > This series move env_get_location from soc to board level. As suggested
> > > > by Michael <michael@amarulasolutions.com> make no sense to define an
> > > > unique way for multiple board. One board can boot from emmc and having
> > > > env on spi flash etc.. Anyways, this function is kept in both imx8mn
> > > > and imx8mp evk boards instead of being completely dropped.
> > > > (as suggested by Andrey <andrey.zhizhikin@leica-geosystems.com>)
> > >
> > > I believe there has been another suggestion from my side regarding this patch:
> > > Since it look like that Michael Trimarchi submitted another part to drop
> > > env_get_offset() in [1], combined with the first patch in this series - it is
> > > a complete revert of 2707faf01f ("imx8mn/imx8mp: override env_get_offset and
> > > env_get_location").
> > >
> > > I suggest you to submit a revert instead of your first patch and deprecate the
> > > patch from Michael, instead of having 2 separate patches for this.
> > >
> >
> > I think they are totally different problems. One is code not used and
> > the other moves that implementation
> > in specific parts.
>
> They might be logically different, but 2 commits combined together - is a full
> revert to me.
>
> I'd leave this up to maintainer to decide, but for me it would be logical to see
> a revert instead of 2 separate commits - this makes tracking more transparent.
>
The first one (mine) is not a logical change. It means that nothing
get wrong. The other
is anywway some change so if you needs to revert then you can pick
specific part.
Michael
> >
> > Michael
> >
> > > >
> > > > Tommaso Merciai (3):
> > > > imx8m: drop env_get_location for imx8mn and imx8mp
> > > > imx: imx8mn_evk: override env_get_location
> > > > imx: imx8mp_evk: override env_get_location
> > > >
> > > > arch/arm/mach-imx/imx8m/soc.c | 39 -----------------------
> > > > board/freescale/imx8mn_evk/imx8mn_evk.c | 42 +++++++++++++++++++++++++
> > > > board/freescale/imx8mp_evk/imx8mp_evk.c | 41 ++++++++++++++++++++++++
> > > > 3 files changed, 83 insertions(+), 39 deletions(-)
> > > >
> > > > --
> > > > 2.25.1
> > >
> > > Link: [1]: http://patchwork.ozlabs.org/project/uboot/patch/20211117143456.34441-1-michael@amarulasolutions.com/
> > >
> > > -- andrey
> >
> >
> >
> > --
> > Michael Nazzareno Trimarchi
> > Co-Founder & Chief Executive Officer
> > M. +39 347 913 2170
> > michael@amarulasolutions.com
> > __________________________________
> >
> > Amarula Solutions BV
> > Joop Geesinkweg 125, 1114 AB, Amsterdam, NL
> > T. +31 (0)85 111 9172
> > info@amarulasolutions.com
> > https://eur02.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.amarulasolut
> > ions.com%2F&data=04%7C01%7C%7C666e97d4bb5f425c9a0408d9b313dd84%7C1b16ab3eb8f6
> > 4fe39f3e2db7fe549f6a%7C0%7C0%7C637737720180120994%7CUnknown%7CTWFpbGZsb3d8eyJWIjo
> > iMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=NJQ7
> > qjpMWu%2BhGoIcqwmD%2BLc4Ekq1oHjqPSCqkiCr4DA%3D&reserved=0
>
> -- andrey
--
Michael Nazzareno Trimarchi
Co-Founder & Chief Executive Officer
M. +39 347 913 2170
michael@amarulasolutions.com
__________________________________
Amarula Solutions BV
Joop Geesinkweg 125, 1114 AB, Amsterdam, NL
T. +31 (0)85 111 9172
info@amarulasolutions.com
www.amarulasolutions.com
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC PATCH 3/3] imx: imx8mp_evk: override env_get_location
2021-11-28 17:47 ` Tommaso Merciai
@ 2021-11-29 12:17 ` Marek Behún
2021-11-30 20:23 ` Tommaso Merciai
0 siblings, 1 reply; 13+ messages in thread
From: Marek Behún @ 2021-11-29 12:17 UTC (permalink / raw)
To: Tommaso Merciai
Cc: michael, andrey.zhizhikin, Stefano Babic, Fabio Estevam,
NXP i.MX U-Boot Team, Peng Fan, Ye Li, Marek Vasut, Simon Glass,
Frieder Schrempf, Harald Seiler, Ying-Chun Liu (PaulLiu),
u-boot
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
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC PATCH 3/3] imx: imx8mp_evk: override env_get_location
2021-11-29 12:17 ` Marek Behún
@ 2021-11-30 20:23 ` Tommaso Merciai
2021-12-07 18:13 ` Tommaso Merciai
0 siblings, 1 reply; 13+ messages in thread
From: Tommaso Merciai @ 2021-11-30 20:23 UTC (permalink / raw)
To: Marek Behún
Cc: michael, andrey.zhizhikin, Stefano Babic, Fabio Estevam,
NXP i.MX U-Boot Team, Peng Fan, Ye Li, Marek Vasut, Simon Glass,
Frieder Schrempf, Harald Seiler, Ying-Chun Liu (PaulLiu),
u-boot
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
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC PATCH 3/3] imx: imx8mp_evk: override env_get_location
2021-11-30 20:23 ` Tommaso Merciai
@ 2021-12-07 18:13 ` Tommaso Merciai
0 siblings, 0 replies; 13+ messages in thread
From: Tommaso Merciai @ 2021-12-07 18:13 UTC (permalink / raw)
To: Marek Behún
Cc: michael, andrey.zhizhikin, Stefano Babic, Fabio Estevam,
NXP i.MX U-Boot Team, Peng Fan, Ye Li, Marek Vasut, Simon Glass,
Frieder Schrempf, Harald Seiler, Ying-Chun Liu (PaulLiu),
u-boot
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
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2021-12-07 18:13 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-26 17:43 [RFC PATCH 0/3] imx8m: move env_get_location for imx8mn and imx8mp at board level Tommaso Merciai
2021-11-26 17:43 ` [RFC PATCH 1/3] imx8m: drop env_get_location for imx8mn and imx8mp Tommaso Merciai
2021-11-26 17:43 ` [RFC PATCH 2/3] imx: imx8mn_evk: override env_get_location Tommaso Merciai
2021-11-26 17:43 ` [RFC PATCH 3/3] imx: imx8mp_evk: " Tommaso Merciai
2021-11-26 18:00 ` Marek Behún
2021-11-28 17:47 ` Tommaso Merciai
2021-11-29 12:17 ` Marek Behún
2021-11-30 20:23 ` Tommaso Merciai
2021-12-07 18:13 ` Tommaso Merciai
2021-11-29 8:38 ` [RFC PATCH 0/3] imx8m: move env_get_location for imx8mn and imx8mp at board level ZHIZHIKIN Andrey
2021-11-29 8:40 ` Michael Nazzareno Trimarchi
2021-11-29 8:46 ` ZHIZHIKIN Andrey
2021-11-29 8:48 ` Michael Nazzareno Trimarchi
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.