aspeed: firestone: Set SIO to bypass UART in hostboot
Subsystems (3)
PATCH 1/1 aspeed: firestone: Set SIO to bypass UART in hostboot
OpenBMC fails to boot host on Firestone.
The cause is that Firestone's hostboot hangs after disables SUART/VUART.
The workaround is to make hostboot run into default SUART init without disabling VUART, by setting 0x170 SIO register to 0.
With this workaround, Firestone boots OK.
--- arch/arm/mach-aspeed/aspeed.c | 4 ++++ 1 file changed, 4 insertions(+)
arch/arm/mach-aspeed/aspeed.c +4 -0
@@ -104,6 +104,10 @@ static void __init do_firestone_setup(void)/* Override serial destination to use the dedicated serial port */ writel (0x00004000 ,AST_IO (AST_BASE_LPC |0x174 )); + +/* Workaround to make hostboot run into default SUART init */ +/* Otherwise it fails to boot */ +writel (0x00000000 ,AST_IO (AST_BASE_LPC |0x170 )); }static void __init do_garrison_setup (void )
Signature · 1 line
1.9.1
Andrew Jeffery
AppliedQuoted 10 lines · Lei YU
OpenBMC fails to boot host on Firestone.
The cause is that Firestone's hostboot hangs after disables SUART/VUART.
The workaround is to make hostboot run into default SUART init without disabling VUART, by setting0x170SIO register to 0.
With this workaround, Firestone boots OK.Signed-off-by Lei YU <[email protected]>
Applied to dev-4.10.
We really should start to think again about how best to do this from userspace.
Andrew
Quoted 19 lines
---
arch/arm/mach-aspeed/aspeed.c | 4 ++++1 file changed, 4 insertions(+)arch/arm/mach-aspeed/aspeed.c +0
-0@@ -104,6 +104,10 @@ static void __init do_firestone_setup(void)
/* Override serial destination to use the dedicated serial port */writel(0x00004000, AST_IO(AST_BASE_LPC | 0x174));arch/arm/mach-aspeed/aspeed.c +4
-0+ +/* Workaround to make hostboot run into default SUART init */ +/* Otherwise it fails to boot */ +writel (0x00000000 ,AST_IO (AST_BASE_LPC |0x170 ));}
static void__initdo_garrison_setup(void)