[linux-yocto] [PATCH 44/78] arm/mach-axxia: filled in stub axxia_restart function

Paul Butler butler.paul at gmail.com
Tue Nov 19 20:23:20 PST 2013


From: David Mercado <david.mercado at windriver.com>

Added reboot capability.

Signed-off-by: David Mercado <david.mercado at windriver.com>
---
 arch/arm/mach-axxia/axxia.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-axxia/axxia.c b/arch/arm/mach-axxia/axxia.c
index cd9d08c..2eef32a 100644
--- a/arch/arm/mach-axxia/axxia.c
+++ b/arch/arm/mach-axxia/axxia.c
@@ -32,6 +32,7 @@
 #include <linux/platform_device.h>
 #include <linux/io.h>
 #include <linux/init.h>
+#include <linux/delay.h>
 #include <linux/smsc911x.h>
 #include <linux/spi/spi.h>
 #include <linux/clkdev.h>
@@ -247,7 +248,14 @@ void __init axxia_dt_init(void)
 
 static void axxia_restart(char str, const char *cmd)
 {
-	/* TBD */
+	void __iomem *base;
+
+	base = ioremap(0x2010000000, 0x40000);
+
+	writel(0x000000ab, base + 0x31000); /* Access Key */
+	writel(0x00000040, base + 0x31004); /* Intrnl Boot, 0xffff0000 Target */
+	writel(0x80000000, base + 0x3180c); /* Set ResetReadDone */
+	writel(0x00080802, base + 0x31008); /* Chip Reset */
 }
 
 DT_MACHINE_START(AXXIA_DT, "LSI Axxia")
@@ -260,6 +268,6 @@ DT_MACHINE_START(AXXIA_DT, "LSI Axxia")
 	.handle_irq	= axxia_gic_handle_irq,
 	.restart	= axxia_restart,
 #if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE)
- 	.dma_zone_size	= (4ULL * SZ_1G),
+	.dma_zone_size	= (4ULL * SZ_1G),
 #endif
 MACHINE_END
-- 
1.8.4.3



More information about the linux-yocto mailing list