All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v2 1/2] Revert "arm: mvebu: fix boot from UART when in fallback mode"
@ 2018-08-17  8:47 Chris Packham
  2018-08-17  8:47 ` [U-Boot] [PATCH v2 2/2] ARM: mach-mvebu: handle fall-back to UART boot Chris Packham
  2018-09-19 12:16 ` [U-Boot] [PATCH v2 1/2] Revert "arm: mvebu: fix boot from UART when in fallback mode" Stefan Roese
  0 siblings, 2 replies; 6+ messages in thread
From: Chris Packham @ 2018-08-17  8:47 UTC (permalink / raw)
  To: u-boot

This reverts commit e83e2b390038c9075642cb243a6292241beb8d73. This
prevents kwboot from overriding the hardware strapped boot source.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
---

Changes in v2: None

 arch/arm/mach-mvebu/include/mach/soc.h | 6 ------
 arch/arm/mach-mvebu/spl.c              | 9 ---------
 2 files changed, 15 deletions(-)

diff --git a/arch/arm/mach-mvebu/include/mach/soc.h b/arch/arm/mach-mvebu/include/mach/soc.h
index 623ab4eb8d93..660dd148abc5 100644
--- a/arch/arm/mach-mvebu/include/mach/soc.h
+++ b/arch/arm/mach-mvebu/include/mach/soc.h
@@ -110,16 +110,10 @@
 #define COMPHY_REFCLK_ALIGNMENT	(MVEBU_REGISTER(0x182f8))
 
 /* BootROM error register (also includes some status infos) */
-#if defined(CONFIG_ARMADA_38X)
-#define CONFIG_BOOTROM_ERR_REG	(MVEBU_REGISTER(0x182d0))
-#define BOOTROM_ERR_MODE_OFFS	0
-#define BOOTROM_ERR_MODE_MASK	(0xf << BOOTROM_ERR_MODE_OFFS)
-#else
 #define CONFIG_BOOTROM_ERR_REG	(MVEBU_REGISTER(0x182d0))
 #define BOOTROM_ERR_MODE_OFFS	28
 #define BOOTROM_ERR_MODE_MASK	(0xf << BOOTROM_ERR_MODE_OFFS)
 #define BOOTROM_ERR_MODE_UART	0x6
-#endif
 
 #if defined(CONFIG_ARMADA_375)
 /* SAR values for Armada 375 */
diff --git a/arch/arm/mach-mvebu/spl.c b/arch/arm/mach-mvebu/spl.c
index 50b24f5760b7..4c3933b8354d 100644
--- a/arch/arm/mach-mvebu/spl.c
+++ b/arch/arm/mach-mvebu/spl.c
@@ -25,16 +25,7 @@ static u32 get_boot_device(void)
 	val = readl(CONFIG_BOOTROM_ERR_REG);
 	boot_device = (val & BOOTROM_ERR_MODE_MASK) >> BOOTROM_ERR_MODE_OFFS;
 	debug("BOOTROM_REG=0x%08x boot_device=0x%x\n", val, boot_device);
-#if defined(CONFIG_ARMADA_38X)
-	/*
-	 * If the bootrom error register contains any else than zeros
-	 * in the first 8 bits it's an error condition. And in that case
-	 * try to boot from UART.
-	 */
-	if (boot_device)
-#else
 	if (boot_device == BOOTROM_ERR_MODE_UART)
-#endif
 		return BOOT_DEVICE_UART;
 
 	/*
-- 
2.18.0

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH v2 2/2] ARM: mach-mvebu: handle fall-back to UART boot
  2018-08-17  8:47 [U-Boot] [PATCH v2 1/2] Revert "arm: mvebu: fix boot from UART when in fallback mode" Chris Packham
@ 2018-08-17  8:47 ` Chris Packham
  2018-08-17  9:42   ` Sean Nyekjær
  2018-09-19 12:16   ` Stefan Roese
  2018-09-19 12:16 ` [U-Boot] [PATCH v2 1/2] Revert "arm: mvebu: fix boot from UART when in fallback mode" Stefan Roese
  1 sibling, 2 replies; 6+ messages in thread
From: Chris Packham @ 2018-08-17  8:47 UTC (permalink / raw)
  To: u-boot

The bootROM in the Armada-38x (and similar) SoC has two modes for UART
boot. The first is when the normal boot media is blank (or otherwise
missing the kwb header). The second is when the boot sequence has been
interrupted with the magic byte sequence on the UART lines.

In the first mode the bootROM routine and error code register will
indicate that there was an error booting from the configured media in
bits 7:0. In the second mode there is no error to indicate but the boot
source is provided via bits 31:28.

Handle both situations so that kwboot can be used for both boot
strapping a blank board and for intercepting a regular boot sequence.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
---
I think this probably applies to more than just the A38X but I've been
conservative in restricting this for now. If other Marvell SoCs are
found to have the same behaviour we can extend this to cover them.

Changes in v2:
- new

 arch/arm/mach-mvebu/include/mach/soc.h |  2 ++
 arch/arm/mach-mvebu/spl.c              | 10 ++++++++++
 2 files changed, 12 insertions(+)

diff --git a/arch/arm/mach-mvebu/include/mach/soc.h b/arch/arm/mach-mvebu/include/mach/soc.h
index 660dd148abc5..6e2e14efe0b7 100644
--- a/arch/arm/mach-mvebu/include/mach/soc.h
+++ b/arch/arm/mach-mvebu/include/mach/soc.h
@@ -114,6 +114,8 @@
 #define BOOTROM_ERR_MODE_OFFS	28
 #define BOOTROM_ERR_MODE_MASK	(0xf << BOOTROM_ERR_MODE_OFFS)
 #define BOOTROM_ERR_MODE_UART	0x6
+#define BOOTROM_ERR_CODE_OFFS	0
+#define BOOTROM_ERR_CODE_MASK	(0xf << BOOTROM_ERR_CODE_OFFS)
 
 #if defined(CONFIG_ARMADA_375)
 /* SAR values for Armada 375 */
diff --git a/arch/arm/mach-mvebu/spl.c b/arch/arm/mach-mvebu/spl.c
index 4c3933b8354d..9dd7c84b6874 100644
--- a/arch/arm/mach-mvebu/spl.c
+++ b/arch/arm/mach-mvebu/spl.c
@@ -28,6 +28,16 @@ static u32 get_boot_device(void)
 	if (boot_device == BOOTROM_ERR_MODE_UART)
 		return BOOT_DEVICE_UART;
 
+#ifdef CONFIG_ARMADA_38X
+	/*
+	 * If the bootrom error code contains any other than zeros it's an
+	 * error condition and the bootROM has fallen back to UART boot
+	 */
+	boot_device = (val & BOOTROM_ERR_CODE_MASK) >> BOOTROM_ERR_CODE_OFFS;
+	if (boot_device)
+		return BOOT_DEVICE_UART;
+#endif
+
 	/*
 	 * Now check the SAR register for the strapped boot-device
 	 */
-- 
2.18.0

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH v2 2/2] ARM: mach-mvebu: handle fall-back to UART boot
  2018-08-17  8:47 ` [U-Boot] [PATCH v2 2/2] ARM: mach-mvebu: handle fall-back to UART boot Chris Packham
@ 2018-08-17  9:42   ` Sean Nyekjær
  2018-08-27  7:41     ` Sean Nyekjær
  2018-09-19 12:16   ` Stefan Roese
  1 sibling, 1 reply; 6+ messages in thread
From: Sean Nyekjær @ 2018-08-17  9:42 UTC (permalink / raw)
  To: u-boot



On 17/08/2018 10.47, Chris Packham wrote:
> The bootROM in the Armada-38x (and similar) SoC has two modes for UART
> boot. The first is when the normal boot media is blank (or otherwise
> missing the kwb header). The second is when the boot sequence has been
> interrupted with the magic byte sequence on the UART lines.
> 
> In the first mode the bootROM routine and error code register will
> indicate that there was an error booting from the configured media in
> bits 7:0. In the second mode there is no error to indicate but the boot
> source is provided via bits 31:28.
> 
> Handle both situations so that kwboot can be used for both boot
> strapping a blank board and for intercepting a regular boot sequence.
> 
> Signed-off-by: Chris Packham <judge.packham@gmail.com>
Signed-off-by: Sean Nyekjaer <sean.nyekjaer@prevas.dk>
> ---
> I think this probably applies to more than just the A38X but I've been
> conservative in restricting this for now. If other Marvell SoCs are
> found to have the same behaviour we can extend this to cover them.
> 
> Changes in v2:
> - new
> 
>   arch/arm/mach-mvebu/include/mach/soc.h |  2 ++
>   arch/arm/mach-mvebu/spl.c              | 10 ++++++++++
>   2 files changed, 12 insertions(+)
> 
> diff --git a/arch/arm/mach-mvebu/include/mach/soc.h b/arch/arm/mach-mvebu/include/mach/soc.h
> index 660dd148abc5..6e2e14efe0b7 100644
> --- a/arch/arm/mach-mvebu/include/mach/soc.h
> +++ b/arch/arm/mach-mvebu/include/mach/soc.h
> @@ -114,6 +114,8 @@
>   #define BOOTROM_ERR_MODE_OFFS	28
>   #define BOOTROM_ERR_MODE_MASK	(0xf << BOOTROM_ERR_MODE_OFFS)
>   #define BOOTROM_ERR_MODE_UART	0x6
> +#define BOOTROM_ERR_CODE_OFFS	0
> +#define BOOTROM_ERR_CODE_MASK	(0xf << BOOTROM_ERR_CODE_OFFS)
>   
>   #if defined(CONFIG_ARMADA_375)
>   /* SAR values for Armada 375 */
> diff --git a/arch/arm/mach-mvebu/spl.c b/arch/arm/mach-mvebu/spl.c
> index 4c3933b8354d..9dd7c84b6874 100644
> --- a/arch/arm/mach-mvebu/spl.c
> +++ b/arch/arm/mach-mvebu/spl.c
> @@ -28,6 +28,16 @@ static u32 get_boot_device(void)
>   	if (boot_device == BOOTROM_ERR_MODE_UART)
>   		return BOOT_DEVICE_UART;
>   
> +#ifdef CONFIG_ARMADA_38X
> +	/*
> +	 * If the bootrom error code contains any other than zeros it's an
> +	 * error condition and the bootROM has fallen back to UART boot
> +	 */
> +	boot_device = (val & BOOTROM_ERR_CODE_MASK) >> BOOTROM_ERR_CODE_OFFS;
> +	if (boot_device)
> +		return BOOT_DEVICE_UART;
> +#endif
> +
>   	/*
>   	 * Now check the SAR register for the strapped boot-device
>   	 */
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH v2 2/2] ARM: mach-mvebu: handle fall-back to UART boot
  2018-08-17  9:42   ` Sean Nyekjær
@ 2018-08-27  7:41     ` Sean Nyekjær
  0 siblings, 0 replies; 6+ messages in thread
From: Sean Nyekjær @ 2018-08-27  7:41 UTC (permalink / raw)
  To: u-boot

CC'ing someone with some hardware to test :-)

On 17/08/2018 11.42, Sean Nyekjær wrote:
> 
> 
> On 17/08/2018 10.47, Chris Packham wrote:
>> The bootROM in the Armada-38x (and similar) SoC has two modes for UART
>> boot. The first is when the normal boot media is blank (or otherwise
>> missing the kwb header). The second is when the boot sequence has been
>> interrupted with the magic byte sequence on the UART lines.
>>
>> In the first mode the bootROM routine and error code register will
>> indicate that there was an error booting from the configured media in
>> bits 7:0. In the second mode there is no error to indicate but the boot
>> source is provided via bits 31:28.
>>
>> Handle both situations so that kwboot can be used for both boot
>> strapping a blank board and for intercepting a regular boot sequence.
>>
>> Signed-off-by: Chris Packham <judge.packham@gmail.com>
> Signed-off-by: Sean Nyekjaer <sean.nyekjaer@prevas.dk>
>> ---
>> I think this probably applies to more than just the A38X but I've been
>> conservative in restricting this for now. If other Marvell SoCs are
>> found to have the same behaviour we can extend this to cover them.
>>
>> Changes in v2:
>> - new
>>
>>   arch/arm/mach-mvebu/include/mach/soc.h |  2 ++
>>   arch/arm/mach-mvebu/spl.c              | 10 ++++++++++
>>   2 files changed, 12 insertions(+)
>>
>> diff --git a/arch/arm/mach-mvebu/include/mach/soc.h 
>> b/arch/arm/mach-mvebu/include/mach/soc.h
>> index 660dd148abc5..6e2e14efe0b7 100644
>> --- a/arch/arm/mach-mvebu/include/mach/soc.h
>> +++ b/arch/arm/mach-mvebu/include/mach/soc.h
>> @@ -114,6 +114,8 @@
>>   #define BOOTROM_ERR_MODE_OFFS    28
>>   #define BOOTROM_ERR_MODE_MASK    (0xf << BOOTROM_ERR_MODE_OFFS)
>>   #define BOOTROM_ERR_MODE_UART    0x6
>> +#define BOOTROM_ERR_CODE_OFFS    0
>> +#define BOOTROM_ERR_CODE_MASK    (0xf << BOOTROM_ERR_CODE_OFFS)
>>   #if defined(CONFIG_ARMADA_375)
>>   /* SAR values for Armada 375 */
>> diff --git a/arch/arm/mach-mvebu/spl.c b/arch/arm/mach-mvebu/spl.c
>> index 4c3933b8354d..9dd7c84b6874 100644
>> --- a/arch/arm/mach-mvebu/spl.c
>> +++ b/arch/arm/mach-mvebu/spl.c
>> @@ -28,6 +28,16 @@ static u32 get_boot_device(void)
>>       if (boot_device == BOOTROM_ERR_MODE_UART)
>>           return BOOT_DEVICE_UART;
>> +#ifdef CONFIG_ARMADA_38X
>> +    /*
>> +     * If the bootrom error code contains any other than zeros it's an
>> +     * error condition and the bootROM has fallen back to UART boot
>> +     */
>> +    boot_device = (val & BOOTROM_ERR_CODE_MASK) >> 
>> BOOTROM_ERR_CODE_OFFS;
>> +    if (boot_device)
>> +        return BOOT_DEVICE_UART;
>> +#endif
>> +
>>       /*
>>        * Now check the SAR register for the strapped boot-device
>>        */
>>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH v2 1/2] Revert "arm: mvebu: fix boot from UART when in fallback mode"
  2018-08-17  8:47 [U-Boot] [PATCH v2 1/2] Revert "arm: mvebu: fix boot from UART when in fallback mode" Chris Packham
  2018-08-17  8:47 ` [U-Boot] [PATCH v2 2/2] ARM: mach-mvebu: handle fall-back to UART boot Chris Packham
@ 2018-09-19 12:16 ` Stefan Roese
  1 sibling, 0 replies; 6+ messages in thread
From: Stefan Roese @ 2018-09-19 12:16 UTC (permalink / raw)
  To: u-boot

On 17.08.2018 10:47, Chris Packham wrote:
> This reverts commit e83e2b390038c9075642cb243a6292241beb8d73. This
> prevents kwboot from overriding the hardware strapped boot source.
> 
> Signed-off-by: Chris Packham <judge.packham@gmail.com>
> ---
> 
> Changes in v2: None
> 
>   arch/arm/mach-mvebu/include/mach/soc.h | 6 ------
>   arch/arm/mach-mvebu/spl.c              | 9 ---------
>   2 files changed, 15 deletions(-)
> 
> diff --git a/arch/arm/mach-mvebu/include/mach/soc.h b/arch/arm/mach-mvebu/include/mach/soc.h
> index 623ab4eb8d93..660dd148abc5 100644
> --- a/arch/arm/mach-mvebu/include/mach/soc.h
> +++ b/arch/arm/mach-mvebu/include/mach/soc.h
> @@ -110,16 +110,10 @@
>   #define COMPHY_REFCLK_ALIGNMENT	(MVEBU_REGISTER(0x182f8))
>   
>   /* BootROM error register (also includes some status infos) */
> -#if defined(CONFIG_ARMADA_38X)
> -#define CONFIG_BOOTROM_ERR_REG	(MVEBU_REGISTER(0x182d0))
> -#define BOOTROM_ERR_MODE_OFFS	0
> -#define BOOTROM_ERR_MODE_MASK	(0xf << BOOTROM_ERR_MODE_OFFS)
> -#else
>   #define CONFIG_BOOTROM_ERR_REG	(MVEBU_REGISTER(0x182d0))
>   #define BOOTROM_ERR_MODE_OFFS	28
>   #define BOOTROM_ERR_MODE_MASK	(0xf << BOOTROM_ERR_MODE_OFFS)
>   #define BOOTROM_ERR_MODE_UART	0x6
> -#endif
>   
>   #if defined(CONFIG_ARMADA_375)
>   /* SAR values for Armada 375 */
> diff --git a/arch/arm/mach-mvebu/spl.c b/arch/arm/mach-mvebu/spl.c
> index 50b24f5760b7..4c3933b8354d 100644
> --- a/arch/arm/mach-mvebu/spl.c
> +++ b/arch/arm/mach-mvebu/spl.c
> @@ -25,16 +25,7 @@ static u32 get_boot_device(void)
>   	val = readl(CONFIG_BOOTROM_ERR_REG);
>   	boot_device = (val & BOOTROM_ERR_MODE_MASK) >> BOOTROM_ERR_MODE_OFFS;
>   	debug("BOOTROM_REG=0x%08x boot_device=0x%x\n", val, boot_device);
> -#if defined(CONFIG_ARMADA_38X)
> -	/*
> -	 * If the bootrom error register contains any else than zeros
> -	 * in the first 8 bits it's an error condition. And in that case
> -	 * try to boot from UART.
> -	 */
> -	if (boot_device)
> -#else
>   	if (boot_device == BOOTROM_ERR_MODE_UART)
> -#endif
>   		return BOOT_DEVICE_UART;
>   
>   	/*
> 

Applied to u-boot-marvell/master

Thanks,
Stefan

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH v2 2/2] ARM: mach-mvebu: handle fall-back to UART boot
  2018-08-17  8:47 ` [U-Boot] [PATCH v2 2/2] ARM: mach-mvebu: handle fall-back to UART boot Chris Packham
  2018-08-17  9:42   ` Sean Nyekjær
@ 2018-09-19 12:16   ` Stefan Roese
  1 sibling, 0 replies; 6+ messages in thread
From: Stefan Roese @ 2018-09-19 12:16 UTC (permalink / raw)
  To: u-boot

On 17.08.2018 10:47, Chris Packham wrote:
> The bootROM in the Armada-38x (and similar) SoC has two modes for UART
> boot. The first is when the normal boot media is blank (or otherwise
> missing the kwb header). The second is when the boot sequence has been
> interrupted with the magic byte sequence on the UART lines.
> 
> In the first mode the bootROM routine and error code register will
> indicate that there was an error booting from the configured media in
> bits 7:0. In the second mode there is no error to indicate but the boot
> source is provided via bits 31:28.
> 
> Handle both situations so that kwboot can be used for both boot
> strapping a blank board and for intercepting a regular boot sequence.
> 
> Signed-off-by: Chris Packham <judge.packham@gmail.com>
> ---
> I think this probably applies to more than just the A38X but I've been
> conservative in restricting this for now. If other Marvell SoCs are
> found to have the same behaviour we can extend this to cover them.
> 
> Changes in v2:
> - new
> 
>   arch/arm/mach-mvebu/include/mach/soc.h |  2 ++
>   arch/arm/mach-mvebu/spl.c              | 10 ++++++++++
>   2 files changed, 12 insertions(+)
> 
> diff --git a/arch/arm/mach-mvebu/include/mach/soc.h b/arch/arm/mach-mvebu/include/mach/soc.h
> index 660dd148abc5..6e2e14efe0b7 100644
> --- a/arch/arm/mach-mvebu/include/mach/soc.h
> +++ b/arch/arm/mach-mvebu/include/mach/soc.h
> @@ -114,6 +114,8 @@
>   #define BOOTROM_ERR_MODE_OFFS	28
>   #define BOOTROM_ERR_MODE_MASK	(0xf << BOOTROM_ERR_MODE_OFFS)
>   #define BOOTROM_ERR_MODE_UART	0x6
> +#define BOOTROM_ERR_CODE_OFFS	0
> +#define BOOTROM_ERR_CODE_MASK	(0xf << BOOTROM_ERR_CODE_OFFS)
>   
>   #if defined(CONFIG_ARMADA_375)
>   /* SAR values for Armada 375 */
> diff --git a/arch/arm/mach-mvebu/spl.c b/arch/arm/mach-mvebu/spl.c
> index 4c3933b8354d..9dd7c84b6874 100644
> --- a/arch/arm/mach-mvebu/spl.c
> +++ b/arch/arm/mach-mvebu/spl.c
> @@ -28,6 +28,16 @@ static u32 get_boot_device(void)
>   	if (boot_device == BOOTROM_ERR_MODE_UART)
>   		return BOOT_DEVICE_UART;
>   
> +#ifdef CONFIG_ARMADA_38X
> +	/*
> +	 * If the bootrom error code contains any other than zeros it's an
> +	 * error condition and the bootROM has fallen back to UART boot
> +	 */
> +	boot_device = (val & BOOTROM_ERR_CODE_MASK) >> BOOTROM_ERR_CODE_OFFS;
> +	if (boot_device)
> +		return BOOT_DEVICE_UART;
> +#endif
> +
>   	/*
>   	 * Now check the SAR register for the strapped boot-device
>   	 */
> 

Applied to u-boot-marvell/master

Thanks,
Stefan

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-09-19 12:16 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-17  8:47 [U-Boot] [PATCH v2 1/2] Revert "arm: mvebu: fix boot from UART when in fallback mode" Chris Packham
2018-08-17  8:47 ` [U-Boot] [PATCH v2 2/2] ARM: mach-mvebu: handle fall-back to UART boot Chris Packham
2018-08-17  9:42   ` Sean Nyekjær
2018-08-27  7:41     ` Sean Nyekjær
2018-09-19 12:16   ` Stefan Roese
2018-09-19 12:16 ` [U-Boot] [PATCH v2 1/2] Revert "arm: mvebu: fix boot from UART when in fallback mode" Stefan Roese

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.