diff options
Diffstat (limited to 'arch/arm/mach-rpc/riscpc.c')
-rw-r--r-- | arch/arm/mach-rpc/riscpc.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/mach-rpc/riscpc.c b/arch/arm/mach-rpc/riscpc.c index 8559598ab767..3d44a59fc0df 100644 --- a/arch/arm/mach-rpc/riscpc.c +++ b/arch/arm/mach-rpc/riscpc.c | |||
@@ -24,6 +24,7 @@ | |||
24 | #include <asm/elf.h> | 24 | #include <asm/elf.h> |
25 | #include <asm/mach-types.h> | 25 | #include <asm/mach-types.h> |
26 | #include <mach/hardware.h> | 26 | #include <mach/hardware.h> |
27 | #include <asm/hardware/iomd.h> | ||
27 | #include <asm/page.h> | 28 | #include <asm/page.h> |
28 | #include <asm/domain.h> | 29 | #include <asm/domain.h> |
29 | #include <asm/setup.h> | 30 | #include <asm/setup.h> |
@@ -214,6 +215,16 @@ static int __init rpc_init(void) | |||
214 | 215 | ||
215 | arch_initcall(rpc_init); | 216 | arch_initcall(rpc_init); |
216 | 217 | ||
218 | static void rpc_restart(char mode, const char *cmd) | ||
219 | { | ||
220 | iomd_writeb(0, IOMD_ROMCR0); | ||
221 | |||
222 | /* | ||
223 | * Jump into the ROM | ||
224 | */ | ||
225 | soft_restart(0); | ||
226 | } | ||
227 | |||
217 | extern struct sys_timer ioc_timer; | 228 | extern struct sys_timer ioc_timer; |
218 | 229 | ||
219 | MACHINE_START(RISCPC, "Acorn-RiscPC") | 230 | MACHINE_START(RISCPC, "Acorn-RiscPC") |
@@ -224,4 +235,5 @@ MACHINE_START(RISCPC, "Acorn-RiscPC") | |||
224 | .map_io = rpc_map_io, | 235 | .map_io = rpc_map_io, |
225 | .init_irq = rpc_init_irq, | 236 | .init_irq = rpc_init_irq, |
226 | .timer = &ioc_timer, | 237 | .timer = &ioc_timer, |
238 | .restart = rpc_restart, | ||
227 | MACHINE_END | 239 | MACHINE_END |