diff mbox series

[U-Boot] mx6: Fix SPL boot device detection

Message ID 20171129181302.9465-1-jiri@luznicky.cz
State Changes Requested
Delegated to: Stefano Babic
Headers show
Series [U-Boot] mx6: Fix SPL boot device detection | expand

Commit Message

Jiri Luznicky Nov. 29, 2017, 6:13 p.m. UTC
The boot device is selected according to BOOT_CFG1[7:4] fuse.
Any value equal or higher then 0x8 is used for nand.

Currently, only values up to 0x8 are handled by the switch.
Add rest of the values up to 0xf to cover all nand cases.

Signed-off-by: Jiri Luznicky <jiri@luznicky.cz>
Cc: Stefano Babic <sbabic@denx.de>
---
 arch/arm/include/asm/mach-imx/sys_proto.h | 9 ++++++++-
 arch/arm/mach-imx/spl.c                   | 9 ++++++++-
 board/engicam/common/board.c              | 9 ++++++++-
 3 files changed, 24 insertions(+), 3 deletions(-)

Comments

Stefano Babic Dec. 17, 2017, 10:01 a.m. UTC | #1
Hi Jiri,when

On 29/11/2017 19:13, Jiri Luznicky wrote:
> The boot device is selected according to BOOT_CFG1[7:4] fuse.
> Any value equal or higher then 0x8 is used for nand.
> 
> Currently, only values up to 0x8 are handled by the switch.
> Add rest of the values up to 0xf to cover all nand cases.
> 
> Signed-off-by: Jiri Luznicky <jiri@luznicky.cz>
> Cc: Stefano Babic <sbabic@denx.de>
> ---
>  arch/arm/include/asm/mach-imx/sys_proto.h | 9 ++++++++-
>  arch/arm/mach-imx/spl.c                   | 9 ++++++++-
>  board/engicam/common/board.c              | 9 ++++++++-
>  3 files changed, 24 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arm/include/asm/mach-imx/sys_proto.h b/arch/arm/include/asm/mach-imx/sys_proto.h
> index a80a392a73..455d5e291d 100644
> --- a/arch/arm/include/asm/mach-imx/sys_proto.h
> +++ b/arch/arm/include/asm/mach-imx/sys_proto.h
> @@ -81,7 +81,14 @@ enum imx6_bmode {
>  	IMX6_BMODE_ESD,
>  	IMX6_BMODE_MMC,
>  	IMX6_BMODE_EMMC,
> -	IMX6_BMODE_NAND,
> +	IMX6_BMODE_NAND1,
> +	IMX6_BMODE_NAND2,
> +	IMX6_BMODE_NAND3,
> +	IMX6_BMODE_NAND4,
> +	IMX6_BMODE_NAND5,
> +	IMX6_BMODE_NAND6,
> +	IMX6_BMODE_NAND7,
> +	IMX6_BMODE_NAND8,

It makes no sense to add a full list if we need to check for a range.

>  };
>  
>  static inline u8 imx6_is_bmode_from_gpr9(void)
> diff --git a/arch/arm/mach-imx/spl.c b/arch/arm/mach-imx/spl.c
> index d0d1b73aa6..a91fffad93 100644
> --- a/arch/arm/mach-imx/spl.c
> +++ b/arch/arm/mach-imx/spl.c
> @@ -91,7 +91,14 @@ u32 spl_boot_device(void)
>  	case IMX6_BMODE_EMMC:
>  		return BOOT_DEVICE_MMC1;
>  	/* NAND Flash: 8.5.2, Table 8-10 */
> -	case IMX6_BMODE_NAND:
> +	case IMX6_BMODE_NAND1:
> +	case IMX6_BMODE_NAND2:
> +	case IMX6_BMODE_NAND3:
> +	case IMX6_BMODE_NAND4:
> +	case IMX6_BMODE_NAND5:
> +	case IMX6_BMODE_NAND6:
> +	case IMX6_BMODE_NAND7:
> +	case IMX6_BMODE_NAND8:

Instead of this, it should be simply checked the value, for example in a
default case.

>  		return BOOT_DEVICE_NAND;
>  	}
>  	return BOOT_DEVICE_NONE;
> diff --git a/board/engicam/common/board.c b/board/engicam/common/board.c
> index f633c71916..b70ce0b8ad 100644
> --- a/board/engicam/common/board.c
> +++ b/board/engicam/common/board.c
> @@ -69,7 +69,14 @@ int board_late_init(void)
>  #endif
>  		env_set("modeboot", "mmcboot");
>  		break;
> -	case IMX6_BMODE_NAND:
> +	case IMX6_BMODE_NAND1:
> +	case IMX6_BMODE_NAND2:
> +	case IMX6_BMODE_NAND3:
> +	case IMX6_BMODE_NAND4:
> +	case IMX6_BMODE_NAND5: value 
> +	case IMX6_BMODE_NAND6:
> +	case IMX6_BMODE_NAND7:
> +	case IMX6_BMODE_NAND8:>  		env_set("modeboot", "nandboot");
>  		break;
>  	default:
> 

Best regards,
Stefano Babic
Stefano Babic Dec. 17, 2017, 6:40 p.m. UTC | #2
Hi Jiri,

On 17/12/2017 19:04, Jiří Lužnický wrote:
> Hi,
> I agree. I somehow misunderstood the reason of introduced IMX6_BMODE_ .
> There is already better patch in this list from about two days ago.
> 

Yes, I've reviewed it, I will merge that.

Regards,
Stefano Babic

> J.
> 
> 
> 
> On Sun, Dec 17, 2017 at 11:01 AM, Stefano Babic <sbabic@denx.de
> <mailto:sbabic@denx.de>> wrote:
> 
>     Hi Jiri,when
> 
>     On 29/11/2017 19:13, Jiri Luznicky wrote:
>     > The boot device is selected according to BOOT_CFG1[7:4] fuse.
>     > Any value equal or higher then 0x8 is used for nand.
>     >
>     > Currently, only values up to 0x8 are handled by the switch.
>     > Add rest of the values up to 0xf to cover all nand cases.
>     >
>     > Signed-off-by: Jiri Luznicky <jiri@luznicky.cz
>     <mailto:jiri@luznicky.cz>>
>     > Cc: Stefano Babic <sbabic@denx.de <mailto:sbabic@denx.de>>
>     > ---
>     >  arch/arm/include/asm/mach-imx/sys_proto.h | 9 ++++++++-
>     >  arch/arm/mach-imx/spl.c                   | 9 ++++++++-
>     >  board/engicam/common/board.c              | 9 ++++++++-
>     >  3 files changed, 24 insertions(+), 3 deletions(-)
>     >
>     > diff --git a/arch/arm/include/asm/mach-imx/sys_proto.h
>     b/arch/arm/include/asm/mach-imx/sys_proto.h
>     > index a80a392a73..455d5e291d 100644
>     > --- a/arch/arm/include/asm/mach-imx/sys_proto.h
>     > +++ b/arch/arm/include/asm/mach-imx/sys_proto.h
>     > @@ -81,7 +81,14 @@ enum imx6_bmode {
>     >       IMX6_BMODE_ESD,
>     >       IMX6_BMODE_MMC,
>     >       IMX6_BMODE_EMMC,
>     > -     IMX6_BMODE_NAND,
>     > +     IMX6_BMODE_NAND1,
>     > +     IMX6_BMODE_NAND2,
>     > +     IMX6_BMODE_NAND3,
>     > +     IMX6_BMODE_NAND4,
>     > +     IMX6_BMODE_NAND5,
>     > +     IMX6_BMODE_NAND6,
>     > +     IMX6_BMODE_NAND7,
>     > +     IMX6_BMODE_NAND8,
> 
>     It makes no sense to add a full list if we need to check for a range.
> 
>     >  };
>     >
>     >  static inline u8 imx6_is_bmode_from_gpr9(void)
>     > diff --git a/arch/arm/mach-imx/spl.c b/arch/arm/mach-imx/spl.c
>     > index d0d1b73aa6..a91fffad93 100644
>     > --- a/arch/arm/mach-imx/spl.c
>     > +++ b/arch/arm/mach-imx/spl.c
>     > @@ -91,7 +91,14 @@ u32 spl_boot_device(void)
>     >       case IMX6_BMODE_EMMC:
>     >               return BOOT_DEVICE_MMC1;
>     >       /* NAND Flash: 8.5.2, Table 8-10 */
>     > -     case IMX6_BMODE_NAND:
>     > +     case IMX6_BMODE_NAND1:
>     > +     case IMX6_BMODE_NAND2:
>     > +     case IMX6_BMODE_NAND3:
>     > +     case IMX6_BMODE_NAND4:
>     > +     case IMX6_BMODE_NAND5:
>     > +     case IMX6_BMODE_NAND6:
>     > +     case IMX6_BMODE_NAND7:
>     > +     case IMX6_BMODE_NAND8:
> 
>     Instead of this, it should be simply checked the value, for example in a
>     default case.
> 
>     >               return BOOT_DEVICE_NAND;
>     >       }
>     >       return BOOT_DEVICE_NONE;
>     > diff --git a/board/engicam/common/board.c b/board/engicam/common/board.c
>     > index f633c71916..b70ce0b8ad 100644
>     > --- a/board/engicam/common/board.c
>     > +++ b/board/engicam/common/board.c
>     > @@ -69,7 +69,14 @@ int board_late_init(void)
>     >  #endif
>     >               env_set("modeboot", "mmcboot");
>     >               break;
>     > -     case IMX6_BMODE_NAND:
>     > +     case IMX6_BMODE_NAND1:
>     > +     case IMX6_BMODE_NAND2:
>     > +     case IMX6_BMODE_NAND3:
>     > +     case IMX6_BMODE_NAND4:
>     > +     case IMX6_BMODE_NAND5: value
>     > +     case IMX6_BMODE_NAND6:
>     > +     case IMX6_BMODE_NAND7:
>     > +     case IMX6_BMODE_NAND8:>                 env_set("modeboot", "nandboot");
>     >               break;
>     >       default:
>     >
> 
>     Best regards,
>     Stefano Babic
> 
>     --
>     =====================================================================
>     DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
>     HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
>     Phone: +49-8142-66989-53 <tel:%2B49-8142-66989-53> Fax:
>     +49-8142-66989-80 <tel:%2B49-8142-66989-80> Email: sbabic@denx.de
>     <mailto:sbabic@denx.de>
>     =====================================================================
> 
>
diff mbox series

Patch

diff --git a/arch/arm/include/asm/mach-imx/sys_proto.h b/arch/arm/include/asm/mach-imx/sys_proto.h
index a80a392a73..455d5e291d 100644
--- a/arch/arm/include/asm/mach-imx/sys_proto.h
+++ b/arch/arm/include/asm/mach-imx/sys_proto.h
@@ -81,7 +81,14 @@  enum imx6_bmode {
 	IMX6_BMODE_ESD,
 	IMX6_BMODE_MMC,
 	IMX6_BMODE_EMMC,
-	IMX6_BMODE_NAND,
+	IMX6_BMODE_NAND1,
+	IMX6_BMODE_NAND2,
+	IMX6_BMODE_NAND3,
+	IMX6_BMODE_NAND4,
+	IMX6_BMODE_NAND5,
+	IMX6_BMODE_NAND6,
+	IMX6_BMODE_NAND7,
+	IMX6_BMODE_NAND8,
 };
 
 static inline u8 imx6_is_bmode_from_gpr9(void)
diff --git a/arch/arm/mach-imx/spl.c b/arch/arm/mach-imx/spl.c
index d0d1b73aa6..a91fffad93 100644
--- a/arch/arm/mach-imx/spl.c
+++ b/arch/arm/mach-imx/spl.c
@@ -91,7 +91,14 @@  u32 spl_boot_device(void)
 	case IMX6_BMODE_EMMC:
 		return BOOT_DEVICE_MMC1;
 	/* NAND Flash: 8.5.2, Table 8-10 */
-	case IMX6_BMODE_NAND:
+	case IMX6_BMODE_NAND1:
+	case IMX6_BMODE_NAND2:
+	case IMX6_BMODE_NAND3:
+	case IMX6_BMODE_NAND4:
+	case IMX6_BMODE_NAND5:
+	case IMX6_BMODE_NAND6:
+	case IMX6_BMODE_NAND7:
+	case IMX6_BMODE_NAND8:
 		return BOOT_DEVICE_NAND;
 	}
 	return BOOT_DEVICE_NONE;
diff --git a/board/engicam/common/board.c b/board/engicam/common/board.c
index f633c71916..b70ce0b8ad 100644
--- a/board/engicam/common/board.c
+++ b/board/engicam/common/board.c
@@ -69,7 +69,14 @@  int board_late_init(void)
 #endif
 		env_set("modeboot", "mmcboot");
 		break;
-	case IMX6_BMODE_NAND:
+	case IMX6_BMODE_NAND1:
+	case IMX6_BMODE_NAND2:
+	case IMX6_BMODE_NAND3:
+	case IMX6_BMODE_NAND4:
+	case IMX6_BMODE_NAND5:
+	case IMX6_BMODE_NAND6:
+	case IMX6_BMODE_NAND7:
+	case IMX6_BMODE_NAND8:
 		env_set("modeboot", "nandboot");
 		break;
 	default: