[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>
This commit is contained in:
Deepak Saxena 2006-06-20 21:30:44 +01:00 committed by Russell King
parent 098a4cb7c0
commit 4af6fee188
2 changed files with 63 additions and 65 deletions

View File

@ -93,15 +93,49 @@ choice
prompt "ARM system type" prompt "ARM system type"
default ARCH_VERSATILE 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 config ARCH_CLPS7500
bool "Cirrus-CL-PS7500FE" bool "Cirrus CL-PS7500FE"
select TIMER_ACORN select TIMER_ACORN
select ISA select ISA
help help
Support for the Cirrus Logic PS7500FE system-on-a-chip. Support for the Cirrus Logic PS7500FE system-on-a-chip.
config ARCH_CLPS711X config ARCH_CLPS711X
bool "CLPS711x/EP721x-based" bool "Cirrus Logic CLPS711x/EP721x-based"
help help
Support for Cirrus Logic 711x/721x based boards. Support for Cirrus Logic 711x/721x based boards.
@ -135,12 +169,22 @@ config ARCH_FOOTBRIDGE
Support for systems based on the DC21285 companion chip Support for systems based on the DC21285 companion chip
("FootBridge"), such as the Simtec CATS and the Rebel NetWinder. ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
config ARCH_INTEGRATOR config ARCH_NETX
bool "Integrator" bool "Hilscher NetX based"
select ARM_AMBA select ARM_VIC
select ICST525
help 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 config ARCH_IOP3XX
bool "IOP3xx-based" bool "IOP3xx-based"
@ -178,6 +222,11 @@ config ARCH_L7200
If you have any questions or comments about the Linux kernel port If you have any questions or comments about the Linux kernel port
to this board, send e-mail to <sjhill@cotw.com>. 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 config ARCH_PXA
bool "PXA2xx-based" bool "PXA2xx-based"
select ARCH_MTD_XIP select ARCH_MTD_XIP
@ -232,55 +281,6 @@ config ARCH_OMAP
help help
Support for TI's OMAP platform (OMAP1 and OMAP2). 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 endchoice
source "arch/arm/mach-clps711x/Kconfig" source "arch/arm/mach-clps711x/Kconfig"

View File

@ -36,16 +36,14 @@ static inline void arch_idle(void)
static inline void arch_reset(char mode) static inline void arch_reset(char mode)
{ {
unsigned int hdr_ctrl = (IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_RESETCTL_OFFSET); u32 val;
unsigned int val;
/* val = __raw_readl(IO_ADDRESS(VERSATILE_SYS_RESETCTL)) & ~0x7;
* To reset, we hit the on-board reset register val |= 0x105;
* in the system FPGA
*/ __raw_writel(0xa05f, IO_ADDRESS(VERSATILE_SYS_LOCK));
val = __raw_readl(hdr_ctrl); __raw_writel(val, IO_ADDRESS(VERSATILE_SYS_RESETCTL));
val |= VERSATILE_SYS_CTRL_RESET_CONFIGCLR; __raw_writel(0, IO_ADDRESS(VERSATILE_SYS_LOCK));
__raw_writel(val, hdr_ctrl);
} }
#endif #endif