diff mbox series

[U-Boot,v2,1/2] arm: mvebu: fix boot from UART on ClearFog Base

Message ID edb66fa1efa42e5c5f0db6cdfa3a3cef98061838.1506257418.git.baruch@tkos.co.il
State Accepted
Commit f3a88e2ca17ac1ff54f5eff67c96cdaa5c542f6a
Headers show
Series [U-Boot,v2,1/2] arm: mvebu: fix boot from UART on ClearFog Base | expand

Commit Message

Baruch Siach Sept. 24, 2017, 12:50 p.m. UTC
The ClearFog Base boot from UART when setting the DIP switches to 01001.
Unfortunately, the SPL code sometimes fails to detect the UART boot
method at run-time. Add an alternative SAR UART boot value to fix this.

Note that this alternative value is not documented (Armada 38x Hardware
Specifications, Table 48). But experimentations showed it on the
ClearFog Base.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
v2: put BOOT_FROM_UART_ALT under #ifdef to avoid build break for other
    mvebu variants
---
 arch/arm/mach-mvebu/include/mach/soc.h | 1 +
 arch/arm/mach-mvebu/spl.c              | 3 +++
 2 files changed, 4 insertions(+)

Comments

Stefan Roese Sept. 26, 2017, 8:46 a.m. UTC | #1
On 24.09.2017 14:50, Baruch Siach wrote:
> The ClearFog Base boot from UART when setting the DIP switches to 01001.
> Unfortunately, the SPL code sometimes fails to detect the UART boot
> method at run-time. Add an alternative SAR UART boot value to fix this.
> 
> Note that this alternative value is not documented (Armada 38x Hardware
> Specifications, Table 48). But experimentations showed it on the
> ClearFog Base.
> 
> Signed-off-by: Baruch Siach <baruch@tkos.co.il>
> ---
> v2: put BOOT_FROM_UART_ALT under #ifdef to avoid build break for other
>      mvebu variants

Applied to u-boot-marvell/master.

Thanks,
Stefan
diff mbox series

Patch

diff --git a/arch/arm/mach-mvebu/include/mach/soc.h b/arch/arm/mach-mvebu/include/mach/soc.h
index 0900e4008c12..44bac63b4447 100644
--- a/arch/arm/mach-mvebu/include/mach/soc.h
+++ b/arch/arm/mach-mvebu/include/mach/soc.h
@@ -139,6 +139,7 @@ 
 #define BOOT_DEV_SEL_MASK	(0x3f << BOOT_DEV_SEL_OFFS)
 
 #define BOOT_FROM_UART		0x28
+#define BOOT_FROM_UART_ALT	0x3f
 #define BOOT_FROM_SPI		0x32
 #define BOOT_FROM_MMC		0x30
 #define BOOT_FROM_MMC_ALT	0x31
diff --git a/arch/arm/mach-mvebu/spl.c b/arch/arm/mach-mvebu/spl.c
index 3cf02a54cea2..a72a769f7c74 100644
--- a/arch/arm/mach-mvebu/spl.c
+++ b/arch/arm/mach-mvebu/spl.c
@@ -42,6 +42,9 @@  static u32 get_boot_device(void)
 		return BOOT_DEVICE_MMC1;
 #endif
 	case BOOT_FROM_UART:
+#ifdef BOOT_FROM_UART_ALT
+	case BOOT_FROM_UART_ALT:
+#endif
 		return BOOT_DEVICE_UART;
 	case BOOT_FROM_SPI:
 	default: