diff options
| author | Deepak Saxena <dsaxena@plexity.net> | 2006-06-20 16:30:44 -0400 | 
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-06-20 16:30:44 -0400 | 
| commit | 4af6fee18822d012a15b4c9b8992e1f2793dfe0b (patch) | |
| tree | 99223edd72ba52b0bc1ba87717e525b07d79d24b | |
| parent | 098a4cb7c0c9bdd86e9d99f607e9f31206a914eb (diff) | |
[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/Kconfig | 112 | ||||
| -rw-r--r-- | include/asm-arm/arch-versatile/system.h | 16 | 
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 | |||
| 93 | prompt "ARM system type" | 93 | prompt "ARM system type" | 
| 94 | default ARCH_VERSATILE | 94 | default ARCH_VERSATILE | 
| 95 | 95 | ||
| 96 | config ARCH_AAEC2000 | ||
| 97 | bool "Agilent AAEC-2000 based" | ||
| 98 | select ARM_AMBA | ||
| 99 | help | ||
| 100 | This enables support for systems based on the Agilent AAEC-2000 | ||
| 101 | |||
| 102 | config ARCH_INTEGRATOR | ||
| 103 | bool "ARM Ltd. Integrator family" | ||
| 104 | select ARM_AMBA | ||
| 105 | select ICST525 | ||
| 106 | help | ||
| 107 | Support for ARM's Integrator platform. | ||
| 108 | |||
| 109 | config ARCH_REALVIEW | ||
| 110 | bool "ARM Ltd. RealView family" | ||
| 111 | select ARM_AMBA | ||
| 112 | select ICST307 | ||
| 113 | help | ||
| 114 | This enables support for ARM Ltd RealView boards. | ||
| 115 | |||
| 116 | config ARCH_VERSATILE | ||
| 117 | bool "ARM Ltd. Versatile family" | ||
| 118 | select ARM_AMBA | ||
| 119 | select ARM_VIC | ||
| 120 | select ICST307 | ||
| 121 | help | ||
| 122 | This enables support for ARM Ltd Versatile board. | ||
| 123 | |||
| 124 | config ARCH_AT91RM9200 | ||
| 125 | bool "Atmel AT91RM9200" | ||
| 126 | help | ||
| 127 | Say Y here if you intend to run this kernel on an Atmel | ||
| 128 | AT91RM9200-based board. | ||
| 129 | |||
| 96 | config ARCH_CLPS7500 | 130 | config ARCH_CLPS7500 | 
| 97 | bool "Cirrus-CL-PS7500FE" | 131 | bool "Cirrus CL-PS7500FE" | 
| 98 | select TIMER_ACORN | 132 | select TIMER_ACORN | 
| 99 | select ISA | 133 | select ISA | 
| 100 | help | 134 | help | 
| 101 | Support for the Cirrus Logic PS7500FE system-on-a-chip. | 135 | Support for the Cirrus Logic PS7500FE system-on-a-chip. | 
| 102 | 136 | ||
| 103 | config ARCH_CLPS711X | 137 | config ARCH_CLPS711X | 
| 104 | bool "CLPS711x/EP721x-based" | 138 | bool "Cirrus Logic CLPS711x/EP721x-based" | 
| 105 | help | 139 | help | 
| 106 | Support for Cirrus Logic 711x/721x based boards. | 140 | Support for Cirrus Logic 711x/721x based boards. | 
| 107 | 141 | ||
| @@ -135,12 +169,22 @@ config ARCH_FOOTBRIDGE | |||
| 135 | Support for systems based on the DC21285 companion chip | 169 | Support for systems based on the DC21285 companion chip | 
| 136 | ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder. | 170 | ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder. | 
| 137 | 171 | ||
| 138 | config ARCH_INTEGRATOR | 172 | config ARCH_NETX | 
| 139 | bool "Integrator" | 173 | bool "Hilscher NetX based" | 
| 140 | select ARM_AMBA | 174 | select ARM_VIC | 
| 141 | select ICST525 | ||
| 142 | help | 175 | help | 
| 143 | Support for ARM's Integrator platform. | 176 | This enables support for systems based on the Hilscher NetX Soc | 
| 177 | |||
| 178 | config ARCH_H720X | ||
| 179 | bool "Hynix HMS720x-based" | ||
| 180 | select ISA_DMA_API | ||
| 181 | help | ||
| 182 | This enables support for systems based on the Hynix HMS720x | ||
| 183 | |||
| 184 | config ARCH_IMX | ||
| 185 | bool "IMX" | ||
| 186 | help | ||
| 187 | Support for Motorola's i.MX family of processors (MX1, MXL). | ||
| 144 | 188 | ||
| 145 | config ARCH_IOP3XX | 189 | config ARCH_IOP3XX | 
| 146 | bool "IOP3xx-based" | 190 | bool "IOP3xx-based" | 
| @@ -178,6 +222,11 @@ config ARCH_L7200 | |||
| 178 | If you have any questions or comments about the Linux kernel port | 222 | If you have any questions or comments about the Linux kernel port | 
| 179 | to this board, send e-mail to <sjhill@cotw.com>. | 223 | to this board, send e-mail to <sjhill@cotw.com>. | 
| 180 | 224 | ||
| 225 | config ARCH_PNX4008 | ||
| 226 | bool "Philips Nexperia PNX4008 Mobile" | ||
| 227 | help | ||
| 228 | This enables support for Philips PNX4008 mobile platform. | ||
| 229 | |||
| 181 | config ARCH_PXA | 230 | config ARCH_PXA | 
| 182 | bool "PXA2xx-based" | 231 | bool "PXA2xx-based" | 
| 183 | select ARCH_MTD_XIP | 232 | select ARCH_MTD_XIP | 
| @@ -232,55 +281,6 @@ config ARCH_OMAP | |||
| 232 | help | 281 | help | 
| 233 | Support for TI's OMAP platform (OMAP1 and OMAP2). | 282 | Support for TI's OMAP platform (OMAP1 and OMAP2). | 
| 234 | 283 | ||
| 235 | config ARCH_VERSATILE | ||
| 236 | bool "Versatile" | ||
| 237 | select ARM_AMBA | ||
| 238 | select ARM_VIC | ||
| 239 | select ICST307 | ||
| 240 | help | ||
| 241 | This enables support for ARM Ltd Versatile board. | ||
| 242 | |||
| 243 | config ARCH_REALVIEW | ||
| 244 | bool "RealView" | ||
| 245 | select ARM_AMBA | ||
| 246 | select ICST307 | ||
| 247 | help | ||
| 248 | This enables support for ARM Ltd RealView boards. | ||
| 249 | |||
| 250 | config ARCH_IMX | ||
| 251 | bool "IMX" | ||
| 252 | help | ||
| 253 | Support for Motorola's i.MX family of processors (MX1, MXL). | ||
| 254 | |||
| 255 | config ARCH_H720X | ||
| 256 | bool "Hynix-HMS720x-based" | ||
| 257 | select ISA_DMA_API | ||
| 258 | help | ||
| 259 | This enables support for systems based on the Hynix HMS720x | ||
| 260 | |||
| 261 | config ARCH_AAEC2000 | ||
| 262 | bool "Agilent AAEC-2000 based" | ||
| 263 | select ARM_AMBA | ||
| 264 | help | ||
| 265 | This enables support for systems based on the Agilent AAEC-2000 | ||
| 266 | |||
| 267 | config ARCH_AT91RM9200 | ||
| 268 | bool "AT91RM9200" | ||
| 269 | help | ||
| 270 | Say Y here if you intend to run this kernel on an Atmel | ||
| 271 | AT91RM9200-based board. | ||
| 272 | |||
| 273 | config ARCH_PNX4008 | ||
| 274 | bool "Philips Nexperia PNX4008 Mobile" | ||
| 275 | help | ||
| 276 | This enables support for Philips PNX4008 mobile platform. | ||
| 277 | |||
| 278 | config ARCH_NETX | ||
| 279 | bool "Hilscher NetX based" | ||
| 280 | select ARM_VIC | ||
| 281 | help | ||
| 282 | This enables support for systems based on the Hilscher NetX Soc | ||
| 283 | |||
| 284 | endchoice | 284 | endchoice | 
| 285 | 285 | ||
| 286 | source "arch/arm/mach-clps711x/Kconfig" | 286 | 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) | |||
| 36 | 36 | ||
| 37 | static inline void arch_reset(char mode) | 37 | static inline void arch_reset(char mode) | 
| 38 | { | 38 | { | 
| 39 | unsigned int hdr_ctrl = (IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_RESETCTL_OFFSET); | 39 | u32 val; | 
| 40 | unsigned int val; | ||
| 41 | 40 | ||
| 42 | /* | 41 | val = __raw_readl(IO_ADDRESS(VERSATILE_SYS_RESETCTL)) & ~0x7; | 
| 43 | * To reset, we hit the on-board reset register | 42 | val |= 0x105; | 
| 44 | * in the system FPGA | 43 | |
| 45 | */ | 44 | __raw_writel(0xa05f, IO_ADDRESS(VERSATILE_SYS_LOCK)); | 
| 46 | val = __raw_readl(hdr_ctrl); | 45 | __raw_writel(val, IO_ADDRESS(VERSATILE_SYS_RESETCTL)); | 
| 47 | val |= VERSATILE_SYS_CTRL_RESET_CONFIGCLR; | 46 | __raw_writel(0, IO_ADDRESS(VERSATILE_SYS_LOCK)); | 
| 48 | __raw_writel(val, hdr_ctrl); | ||
| 49 | } | 47 | } | 
| 50 | 48 | ||
| 51 | #endif | 49 | #endif | 
