[linux] arm/aspeed: Reset AHB on boot

Joel Stanley joel at jms.id.au
Mon Aug 8 15:29:10 AEST 2016


The Aspeed u-boot port from the Aspeed SDK performed I2C initialisation.
Part of this appears to require a AHB reset in order to successfully
access the I2C registers.

So we can boot the stable kernels on systems with new u-boot we add this
to the stable kernel tree.

Signed-off-by: Joel Stanley <joel at jms.id.au>
---
 arch/arm/mach-aspeed/aspeed.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mach-aspeed/aspeed.c b/arch/arm/mach-aspeed/aspeed.c
index fadbbb666e1d..1102b896cab0 100755
--- a/arch/arm/mach-aspeed/aspeed.c
+++ b/arch/arm/mach-aspeed/aspeed.c
@@ -200,9 +200,14 @@ static void __init aspeed_init_early(void)
 {
 	u32 reg;
 
+	/* Unlock SCU */
+	writel(SCU_PASSWORD, AST_IO(AST_BASE_SCU));
+
+	/* Reset AHB bridges */
+	writel(0x02, AST_IO(AST_BASE_SCU | 0x04));
+
 	// XXX UART stuff to fix to pinmux & co
 	writel(0x02010023, AST_IO(AST_BASE_LPC | 0x9c));
-	writel(SCU_PASSWORD, AST_IO(AST_BASE_SCU)); // UNLOCK SCU
 	writel(0xcb000000, AST_IO(AST_BASE_SCU | 0x80));
 	writel(0x00fff0c0, AST_IO(AST_BASE_SCU | 0x84));
 	writel(0x10CC5E80, AST_IO(AST_BASE_SCU | 0x0c));
-- 
2.8.1



More information about the openbmc mailing list