[linux,dev-4.10] aspeed: firestone: Set SIO to bypass UART in hostboot

Message ID 1507707680-19898-1-git-send-email-mine260309@gmail.com
State Accepted, archived
Headers show
Series
  • [linux,dev-4.10] aspeed: firestone: Set SIO to bypass UART in hostboot
Related show

Commit Message

Lei YU Oct. 11, 2017, 7:41 a.m.
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.

Signed-off-by: Lei YU <mine260309@gmail.com>
---
 arch/arm/mach-aspeed/aspeed.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Andrew Jeffery Oct. 13, 2017, 5:30 a.m. | #1
On Wed, 2017-10-11 at 15:41 +0800, Lei YU wrote:
> 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.

> Signed-off-by: Lei YU <mine260309@gmail.com>

Applied to dev-4.10.

We really should start to think again about how best to do this from userspace.

Andrew

> ---
>  arch/arm/mach-aspeed/aspeed.c | 4 ++++
>  1 file changed, 4 insertions(+)

> diff --git a/arch/arm/mach-aspeed/aspeed.c b/arch/arm/mach-aspeed/aspeed.c
> index a9e91d9..c84c871 100644
> --- a/arch/arm/mach-aspeed/aspeed.c
> +++ b/arch/arm/mach-aspeed/aspeed.c
> @@ -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)

Patch

diff --git a/arch/arm/mach-aspeed/aspeed.c b/arch/arm/mach-aspeed/aspeed.c
index a9e91d9..c84c871 100644
--- a/arch/arm/mach-aspeed/aspeed.c
+++ b/arch/arm/mach-aspeed/aspeed.c
@@ -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)