summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDeepak Saxena <dsaxena@plexity.net>2006-06-21 00:30:44 +0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-06-21 00:30:44 +0400
commit4af6fee18822d012a15b4c9b8992e1f2793dfe0b (patch)
tree99223edd72ba52b0bc1ba87717e525b07d79d24b
parent098a4cb7c0c9bdd86e9d99f607e9f31206a914eb (diff)
downloadlinux-4af6fee18822d012a15b4c9b8992e1f2793dfe0b.tar.xz
[ARM] 3610/1: Make reboot work on Versatile
Patch from Deepak Saxena This patch makes soft reboot work on the Versatile board. Thanks to Catalin Marinas @ ARM for pointing out the proper way to do this. Signed-off-by: Deepak Saxena <dsaxena@plexity.net> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r--arch/arm/Kconfig112
-rw-r--r--include/asm-arm/arch-versatile/system.h16
2 files changed, 63 insertions, 65 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index dfb97fe045d0..1b7e5c2e90ef 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -93,15 +93,49 @@ choice
prompt "ARM system type"
default ARCH_VERSATILE
+config ARCH_AAEC2000
+ bool "Agilent AAEC-2000 based"
+ select ARM_AMBA
+ help
+ This enables support for systems based on the Agilent AAEC-2000
+
+config ARCH_INTEGRATOR
+ bool "ARM Ltd. Integrator family"
+ select ARM_AMBA
+ select ICST525
+ help
+ Support for ARM's Integrator platform.
+
+config ARCH_REALVIEW
+ bool "ARM Ltd. RealView family"
+ select ARM_AMBA
+ select ICST307
+ help
+ This enables support for ARM Ltd RealView boards.
+
+config ARCH_VERSATILE
+ bool "ARM Ltd. Versatile family"
+ select ARM_AMBA
+ select ARM_VIC
+ select ICST307
+ help
+ This enables support for ARM Ltd Versatile board.
+
+config ARCH_AT91RM9200
+ bool "Atmel AT91RM9200"
+ help
+ Say Y here if you intend to run this kernel on an Atmel
+ AT91RM9200-based board.
+
config ARCH_CLPS7500
- bool "Cirrus-CL-PS7500FE"
+ bool "Cirrus CL-PS7500FE"
select TIMER_ACORN
select ISA
help
Support for the Cirrus Logic PS7500FE system-on-a-chip.
config ARCH_CLPS711X
- bool "CLPS711x/EP721x-based"
+ bool "Cirrus Logic CLPS711x/EP721x-based"
help
Support for Cirrus Logic 711x/721x based boards.
@@ -135,12 +169,22 @@ config ARCH_FOOTBRIDGE
Support for systems based on the DC21285 companion chip
("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
-config ARCH_INTEGRATOR
- bool "Integrator"
- select ARM_AMBA
- select ICST525
+config ARCH_NETX
+ bool "Hilscher NetX based"
+ select ARM_VIC
help
- Support for ARM's Integrator platform.
+ This enables support for systems based on the Hilscher NetX Soc
+
+config ARCH_H720X
+ bool "Hynix HMS720x-based"
+ select ISA_DMA_API
+ help
+ This enables support for systems based on the Hynix HMS720x
+
+config ARCH_IMX
+ bool "IMX"
+ help
+ Support for Motorola's i.MX family of processors (MX1, MXL).
config ARCH_IOP3XX
bool "IOP3xx-based"
@@ -178,6 +222,11 @@ config ARCH_L7200
If you have any questions or comments about the Linux kernel port
to this board, send e-mail to <sjhill@cotw.com>.
+config ARCH_PNX4008
+ bool "Philips Nexperia PNX4008 Mobile"
+ help
+ This enables support for Philips PNX4008 mobile platform.
+
config ARCH_PXA
bool "PXA2xx-based"
select ARCH_MTD_XIP
@@ -232,55 +281,6 @@ config ARCH_OMAP
help
Support for TI's OMAP platform (OMAP1 and OMAP2).
-config ARCH_VERSATILE
- bool "Versatile"
- select ARM_AMBA
- select ARM_VIC
- select ICST307
- help
- This enables support for ARM Ltd Versatile board.
-
-config ARCH_REALVIEW
- bool "RealView"
- select ARM_AMBA
- select ICST307
- help
- This enables support for ARM Ltd RealView boards.
-
-config ARCH_IMX
- bool "IMX"
- help
- Support for Motorola's i.MX family of processors (MX1, MXL).
-
-config ARCH_H720X
- bool "Hynix-HMS720x-based"
- select ISA_DMA_API
- help
- This enables support for systems based on the Hynix HMS720x
-
-config ARCH_AAEC2000
- bool "Agilent AAEC-2000 based"
- select ARM_AMBA
- help
- This enables support for systems based on the Agilent AAEC-2000
-
-config ARCH_AT91RM9200
- bool "AT91RM9200"
- help
- Say Y here if you intend to run this kernel on an Atmel
- AT91RM9200-based board.
-
-config ARCH_PNX4008
- bool "Philips Nexperia PNX4008 Mobile"
- help
- This enables support for Philips PNX4008 mobile platform.
-
-config ARCH_NETX
- bool "Hilscher NetX based"
- select ARM_VIC
- help
- This enables support for systems based on the Hilscher NetX Soc
-
endchoice
source "arch/arm/mach-clps711x/Kconfig"
diff --git a/include/asm-arm/arch-versatile/system.h b/include/asm-arm/arch-versatile/system.h
index 8889a189739f..71c6254c0d9b 100644
--- a/include/asm-arm/arch-versatile/system.h
+++ b/include/asm-arm/arch-versatile/system.h
@@ -36,16 +36,14 @@ static inline void arch_idle(void)
static inline void arch_reset(char mode)
{
- unsigned int hdr_ctrl = (IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_RESETCTL_OFFSET);
- unsigned int val;
+ u32 val;
- /*
- * To reset, we hit the on-board reset register
- * in the system FPGA
- */
- val = __raw_readl(hdr_ctrl);
- val |= VERSATILE_SYS_CTRL_RESET_CONFIGCLR;
- __raw_writel(val, hdr_ctrl);
+ val = __raw_readl(IO_ADDRESS(VERSATILE_SYS_RESETCTL)) & ~0x7;
+ val |= 0x105;
+
+ __raw_writel(0xa05f, IO_ADDRESS(VERSATILE_SYS_LOCK));
+ __raw_writel(val, IO_ADDRESS(VERSATILE_SYS_RESETCTL));
+ __raw_writel(0, IO_ADDRESS(VERSATILE_SYS_LOCK));
}
#endif