[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:
parent
098a4cb7c0
commit
4af6fee188
112
arch/arm/Kconfig
112
arch/arm/Kconfig
|
@ -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"
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue