mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 19:56:18 +00:00
[ARM] pass reboot command line to arch_reset()
OMAP wishes to pass state to the boot loader upon reboot in order to instruct it whether to wait for USB-based reflashing or not. There is already a facility to do this via the reboot() syscall, except we ignore the string passed to machine_restart(). This patch fixes things to pass this string to arch_reset(). This means that we keep the reboot mode limited to telling the kernel _how_ to perform the reboot which should be independent of what we request the boot loader to do. Acked-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
14b6848bc0
commit
be093beb60
50 changed files with 65 additions and 65 deletions
|
@ -97,8 +97,8 @@ extern void __show_regs(struct pt_regs *);
|
||||||
extern int cpu_architecture(void);
|
extern int cpu_architecture(void);
|
||||||
extern void cpu_init(void);
|
extern void cpu_init(void);
|
||||||
|
|
||||||
void arm_machine_restart(char mode);
|
void arm_machine_restart(char mode, const char *cmd);
|
||||||
extern void (*arm_pm_restart)(char str);
|
extern void (*arm_pm_restart)(char str, const char *cmd);
|
||||||
|
|
||||||
#define UDBG_UNDEFINED (1 << 0)
|
#define UDBG_UNDEFINED (1 << 0)
|
||||||
#define UDBG_SYSCALL (1 << 1)
|
#define UDBG_SYSCALL (1 << 1)
|
||||||
|
|
|
@ -83,7 +83,7 @@ static int __init hlt_setup(char *__unused)
|
||||||
__setup("nohlt", nohlt_setup);
|
__setup("nohlt", nohlt_setup);
|
||||||
__setup("hlt", hlt_setup);
|
__setup("hlt", hlt_setup);
|
||||||
|
|
||||||
void arm_machine_restart(char mode)
|
void arm_machine_restart(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Clean and disable cache, and turn off interrupts
|
* Clean and disable cache, and turn off interrupts
|
||||||
|
@ -100,7 +100,7 @@ void arm_machine_restart(char mode)
|
||||||
/*
|
/*
|
||||||
* Now call the architecture specific reboot code.
|
* Now call the architecture specific reboot code.
|
||||||
*/
|
*/
|
||||||
arch_reset(mode);
|
arch_reset(mode, cmd);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Whoops - the architecture was unable to reboot.
|
* Whoops - the architecture was unable to reboot.
|
||||||
|
@ -120,7 +120,7 @@ EXPORT_SYMBOL(pm_idle);
|
||||||
void (*pm_power_off)(void);
|
void (*pm_power_off)(void);
|
||||||
EXPORT_SYMBOL(pm_power_off);
|
EXPORT_SYMBOL(pm_power_off);
|
||||||
|
|
||||||
void (*arm_pm_restart)(char str) = arm_machine_restart;
|
void (*arm_pm_restart)(char str, const char *cmd) = arm_machine_restart;
|
||||||
EXPORT_SYMBOL_GPL(arm_pm_restart);
|
EXPORT_SYMBOL_GPL(arm_pm_restart);
|
||||||
|
|
||||||
|
|
||||||
|
@ -195,9 +195,9 @@ void machine_power_off(void)
|
||||||
pm_power_off();
|
pm_power_off();
|
||||||
}
|
}
|
||||||
|
|
||||||
void machine_restart(char * __unused)
|
void machine_restart(char *cmd)
|
||||||
{
|
{
|
||||||
arm_pm_restart(reboot_mode);
|
arm_pm_restart(reboot_mode, cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __show_regs(struct pt_regs *regs)
|
void __show_regs(struct pt_regs *regs)
|
||||||
|
|
|
@ -16,7 +16,7 @@ static inline void arch_idle(void)
|
||||||
cpu_do_idle();
|
cpu_do_idle();
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void arch_reset(char mode)
|
static inline void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
cpu_reset(0);
|
cpu_reset(0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@ static inline void arch_idle(void)
|
||||||
|
|
||||||
void (*at91_arch_reset)(void);
|
void (*at91_arch_reset)(void);
|
||||||
|
|
||||||
static inline void arch_reset(char mode)
|
static inline void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
/* call the CPU-specific reset function */
|
/* call the CPU-specific reset function */
|
||||||
if (at91_arch_reset)
|
if (at91_arch_reset)
|
||||||
|
|
|
@ -32,7 +32,7 @@ static inline void arch_idle(void)
|
||||||
mov r0, r0");
|
mov r0, r0");
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void arch_reset(char mode)
|
static inline void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
cpu_reset(0);
|
cpu_reset(0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@ static void arch_idle(void)
|
||||||
cpu_do_idle();
|
cpu_do_idle();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void arch_reset(char mode)
|
static void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
davinci_watchdog_reset();
|
davinci_watchdog_reset();
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,6 +34,6 @@ static inline void arch_idle(void)
|
||||||
asm volatile ("mcr p15, 0, ip, c15, c1, 2" : : : "cc");
|
asm volatile ("mcr p15, 0, ip, c15, c1, 2" : : : "cc");
|
||||||
}
|
}
|
||||||
|
|
||||||
#define arch_reset(mode) cpu_reset(0x80000000)
|
#define arch_reset(mode, cmd) cpu_reset(0x80000000)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -9,7 +9,7 @@ static inline void arch_idle(void)
|
||||||
cpu_do_idle();
|
cpu_do_idle();
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void arch_reset(char mode)
|
static inline void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
u32 devicecfg;
|
u32 devicecfg;
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ static inline void arch_idle(void)
|
||||||
cpu_do_idle();
|
cpu_do_idle();
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void arch_reset(char mode)
|
static inline void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
if (mode == 's') {
|
if (mode == 's') {
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -25,7 +25,7 @@ static void arch_idle(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static __inline__ void arch_reset(char mode)
|
static __inline__ void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
CPU_REG (PMU_BASE, PMU_STAT) |= PMU_WARMRESET;
|
CPU_REG (PMU_BASE, PMU_STAT) |= PMU_WARMRESET;
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,7 @@ arch_idle(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
arch_reset(char mode)
|
arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
cpu_reset(0);
|
cpu_reset(0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,7 @@ static inline void arch_idle(void)
|
||||||
cpu_do_idle();
|
cpu_do_idle();
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void arch_reset(char mode)
|
static inline void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* To reset, we hit the on-board reset register
|
* To reset, we hit the on-board reset register
|
||||||
|
|
|
@ -13,7 +13,7 @@ static inline void arch_idle(void)
|
||||||
cpu_do_idle();
|
cpu_do_idle();
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void arch_reset(char mode)
|
static inline void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Reset the internal bus (warning both cores are reset)
|
* Reset the internal bus (warning both cores are reset)
|
||||||
|
|
|
@ -16,7 +16,7 @@ static inline void arch_idle(void)
|
||||||
cpu_do_idle();
|
cpu_do_idle();
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void arch_reset(char mode)
|
static inline void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
local_irq_disable();
|
local_irq_disable();
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ static inline void arch_idle(void)
|
||||||
cpu_do_idle();
|
cpu_do_idle();
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void arch_reset(char mode)
|
static inline void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
*IOP3XX_PCSR = 0x30;
|
*IOP3XX_PCSR = 0x30;
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ static inline void arch_idle(void)
|
||||||
cpu_do_idle();
|
cpu_do_idle();
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void arch_reset(char mode)
|
static inline void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
local_irq_disable();
|
local_irq_disable();
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ static inline void arch_idle(void)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void arch_reset(char mode)
|
static inline void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
/* First try machine specific support */
|
/* First try machine specific support */
|
||||||
if (machine_is_ixdp2351()) {
|
if (machine_is_ixdp2351()) {
|
||||||
|
|
|
@ -20,7 +20,7 @@ static inline void arch_idle(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static inline void arch_reset(char mode)
|
static inline void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
if ( 1 && mode == 's') {
|
if ( 1 && mode == 's') {
|
||||||
/* Jump into ROM at address 0 */
|
/* Jump into ROM at address 0 */
|
||||||
|
|
|
@ -17,7 +17,7 @@ static inline void arch_idle(void)
|
||||||
cpu_do_idle();
|
cpu_do_idle();
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void arch_reset(char mode)
|
static inline void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Enable soft reset to assert RSTOUTn.
|
* Enable soft reset to assert RSTOUTn.
|
||||||
|
|
|
@ -27,7 +27,7 @@ static void arch_idle(void)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void arch_reset(char mode)
|
static void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
unsigned int reg;
|
unsigned int reg;
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ static inline void arch_idle(void)
|
||||||
*(unsigned long *)(IO_BASE + 0x50004) = 1; /* idle mode */
|
*(unsigned long *)(IO_BASE + 0x50004) = 1; /* idle mode */
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void arch_reset(char mode)
|
static inline void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
if (mode == 's') {
|
if (mode == 's') {
|
||||||
cpu_reset(0);
|
cpu_reset(0);
|
||||||
|
|
|
@ -13,7 +13,7 @@ static inline void arch_idle(void)
|
||||||
cpu_do_idle ();
|
cpu_do_idle ();
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void arch_reset(char mode)
|
static inline void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
cpu_reset (0);
|
cpu_reset (0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@ static inline void arch_idle(void)
|
||||||
cpu_do_idle();
|
cpu_do_idle();
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void arch_reset(char mode)
|
static inline void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Enable soft reset to assert RSTOUTn.
|
* Enable soft reset to assert RSTOUTn.
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
void arch_idle(void);
|
void arch_idle(void);
|
||||||
|
|
||||||
static inline void arch_reset(char mode)
|
static inline void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
for (;;) ; /* depends on IPC w/ other core */
|
for (;;) ; /* depends on IPC w/ other core */
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@ static inline void arch_idle(void)
|
||||||
cpu_do_idle();
|
cpu_do_idle();
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void arch_reset(char mode)
|
static inline void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Enable soft reset to assert RSTOUTn.
|
* Enable soft reset to assert RSTOUTn.
|
||||||
|
|
|
@ -46,7 +46,7 @@ void arch_idle(void)
|
||||||
/*
|
/*
|
||||||
* Reset the system. It is called by machine_restart().
|
* Reset the system. It is called by machine_restart().
|
||||||
*/
|
*/
|
||||||
void arch_reset(char mode)
|
void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
struct clk *clk;
|
struct clk *clk;
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ static inline void arch_idle(void)
|
||||||
cpu_do_idle();
|
cpu_do_idle();
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void arch_reset(char mode)
|
static inline void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
writel(NETX_SYSTEM_RES_CR_FIRMW_RES_EN | NETX_SYSTEM_RES_CR_FIRMW_RES,
|
writel(NETX_SYSTEM_RES_CR_FIRMW_RES_EN | NETX_SYSTEM_RES_CR_FIRMW_RES,
|
||||||
NETX_SYSTEM_RES_CR);
|
NETX_SYSTEM_RES_CR);
|
||||||
|
|
|
@ -20,7 +20,7 @@ static inline void arch_idle(void)
|
||||||
cpu_do_idle();
|
cpu_do_idle();
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void arch_reset(char mode)
|
static inline void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_PROCESSOR_NS9360
|
#ifdef CONFIG_PROCESSOR_NS9360
|
||||||
if (processor_is_ns9360())
|
if (processor_is_ns9360())
|
||||||
|
|
|
@ -19,7 +19,7 @@ static inline void arch_idle(void)
|
||||||
cpu_do_idle();
|
cpu_do_idle();
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void arch_reset(char mode)
|
static inline void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Enable and issue soft reset
|
* Enable and issue soft reset
|
||||||
|
|
|
@ -186,7 +186,7 @@ static struct mv_sata_platform_data lsmini_sata_data = {
|
||||||
|
|
||||||
static void lsmini_power_off(void)
|
static void lsmini_power_off(void)
|
||||||
{
|
{
|
||||||
arch_reset(0);
|
arch_reset(0, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ static void arch_idle(void)
|
||||||
cpu_do_idle();
|
cpu_do_idle();
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void arch_reset(char mode)
|
static inline void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
cpu_reset(0);
|
cpu_reset(0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -635,16 +635,16 @@ static void corgi_poweroff(void)
|
||||||
/* Green LED off tells the bootloader to halt */
|
/* Green LED off tells the bootloader to halt */
|
||||||
gpio_set_value(CORGI_GPIO_LED_GREEN, 0);
|
gpio_set_value(CORGI_GPIO_LED_GREEN, 0);
|
||||||
|
|
||||||
arm_machine_restart('h');
|
arm_machine_restart('h', NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void corgi_restart(char mode)
|
static void corgi_restart(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
if (!machine_is_corgi())
|
if (!machine_is_corgi())
|
||||||
/* Green LED on tells the bootloader to reboot */
|
/* Green LED on tells the bootloader to reboot */
|
||||||
gpio_set_value(CORGI_GPIO_LED_GREEN, 1);
|
gpio_set_value(CORGI_GPIO_LED_GREEN, 1);
|
||||||
|
|
||||||
arm_machine_restart('h');
|
arm_machine_restart('h', cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __init corgi_init(void)
|
static void __init corgi_init(void)
|
||||||
|
|
|
@ -20,4 +20,4 @@ static inline void arch_idle(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void arch_reset(char mode);
|
void arch_reset(char mode, const char *cmd);
|
||||||
|
|
|
@ -788,13 +788,13 @@ static void mioa701_machine_exit(void);
|
||||||
static void mioa701_poweroff(void)
|
static void mioa701_poweroff(void)
|
||||||
{
|
{
|
||||||
mioa701_machine_exit();
|
mioa701_machine_exit();
|
||||||
arm_machine_restart('s');
|
arm_machine_restart('s', NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mioa701_restart(char c)
|
static void mioa701_restart(char c, const char *cmd)
|
||||||
{
|
{
|
||||||
mioa701_machine_exit();
|
mioa701_machine_exit();
|
||||||
arm_machine_restart('s');
|
arm_machine_restart('s', cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct gpio_ress global_gpios[] = {
|
struct gpio_ress global_gpios[] = {
|
||||||
|
|
|
@ -501,12 +501,12 @@ static struct platform_device *devices[] __initdata = {
|
||||||
|
|
||||||
static void poodle_poweroff(void)
|
static void poodle_poweroff(void)
|
||||||
{
|
{
|
||||||
arm_machine_restart('h');
|
arm_machine_restart('h', NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void poodle_restart(char mode)
|
static void poodle_restart(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
arm_machine_restart('h');
|
arm_machine_restart('h', cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __init poodle_init(void)
|
static void __init poodle_init(void)
|
||||||
|
|
|
@ -81,7 +81,7 @@ static void do_hw_reset(void)
|
||||||
OSMR3 = OSCR + 368640; /* ... in 100 ms */
|
OSMR3 = OSCR + 368640; /* ... in 100 ms */
|
||||||
}
|
}
|
||||||
|
|
||||||
void arch_reset(char mode)
|
void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
clear_reset_status(RESET_STATUS_ALL);
|
clear_reset_status(RESET_STATUS_ALL);
|
||||||
|
|
||||||
|
|
|
@ -701,10 +701,10 @@ static struct platform_device *devices[] __initdata = {
|
||||||
|
|
||||||
static void spitz_poweroff(void)
|
static void spitz_poweroff(void)
|
||||||
{
|
{
|
||||||
arm_machine_restart('g');
|
arm_machine_restart('g', NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void spitz_restart(char mode)
|
static void spitz_restart(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
/* Bootloader magic for a reboot */
|
/* Bootloader magic for a reboot */
|
||||||
if((MSC0 & 0xffff0000) == 0x7ff00000)
|
if((MSC0 & 0xffff0000) == 0x7ff00000)
|
||||||
|
|
|
@ -876,10 +876,10 @@ static struct platform_device *devices[] __initdata = {
|
||||||
|
|
||||||
static void tosa_poweroff(void)
|
static void tosa_poweroff(void)
|
||||||
{
|
{
|
||||||
arm_machine_restart('g');
|
arm_machine_restart('g', NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void tosa_restart(char mode)
|
static void tosa_restart(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
/* Bootloader magic for a reboot */
|
/* Bootloader magic for a reboot */
|
||||||
if((MSC0 & 0xffff0000) == 0x7ff00000)
|
if((MSC0 & 0xffff0000) == 0x7ff00000)
|
||||||
|
|
|
@ -34,7 +34,7 @@ static inline void arch_idle(void)
|
||||||
cpu_do_idle();
|
cpu_do_idle();
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void arch_reset(char mode)
|
static inline void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
void __iomem *hdr_ctrl = __io_address(REALVIEW_SYS_BASE) + REALVIEW_SYS_RESETCTL_OFFSET;
|
void __iomem *hdr_ctrl = __io_address(REALVIEW_SYS_BASE) + REALVIEW_SYS_RESETCTL_OFFSET;
|
||||||
unsigned int val;
|
unsigned int val;
|
||||||
|
|
|
@ -16,7 +16,7 @@ static inline void arch_idle(void)
|
||||||
cpu_do_idle();
|
cpu_do_idle();
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void arch_reset(char mode)
|
static inline void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
iomd_writeb(0, IOMD_ROMCR0);
|
iomd_writeb(0, IOMD_ROMCR0);
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
extern void (*s3c24xx_reset_hook)(void);
|
extern void (*s3c24xx_reset_hook)(void);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
arch_reset(char mode)
|
arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
struct clk *wdtclk;
|
struct clk *wdtclk;
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ static void arch_idle(void)
|
||||||
/* nothing here yet */
|
/* nothing here yet */
|
||||||
}
|
}
|
||||||
|
|
||||||
static void arch_reset(char mode)
|
static void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
/* nothing here yet */
|
/* nothing here yet */
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ static inline void arch_idle(void)
|
||||||
cpu_do_idle();
|
cpu_do_idle();
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void arch_reset(char mode)
|
static inline void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
if (mode == 's') {
|
if (mode == 's') {
|
||||||
/* Jump into ROM at address 0 */
|
/* Jump into ROM at address 0 */
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
#define ROMCARD_SIZE 0x08000000
|
#define ROMCARD_SIZE 0x08000000
|
||||||
#define ROMCARD_START 0x10000000
|
#define ROMCARD_START 0x10000000
|
||||||
|
|
||||||
void arch_reset(char mode)
|
void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
short temp;
|
short temp;
|
||||||
local_irq_disable();
|
local_irq_disable();
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
#define __ASM_ARCH_SYSTEM_H
|
#define __ASM_ARCH_SYSTEM_H
|
||||||
|
|
||||||
/* Found in arch/mach-shark/core.c */
|
/* Found in arch/mach-shark/core.c */
|
||||||
extern void arch_reset(char mode);
|
extern void arch_reset(char mode, const char *cmd);
|
||||||
|
|
||||||
static inline void arch_idle(void)
|
static inline void arch_idle(void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -34,7 +34,7 @@ static inline void arch_idle(void)
|
||||||
cpu_do_idle();
|
cpu_do_idle();
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void arch_reset(char mode)
|
static inline void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
u32 val;
|
u32 val;
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ static void arch_idle(void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
static void arch_reset(char mode)
|
static void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
cpu_reset(0);
|
cpu_reset(0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,7 +26,7 @@ static inline void arch_idle(void)
|
||||||
cpu_do_idle();
|
cpu_do_idle();
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void arch_reset(char mode)
|
static inline void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
cpu_reset(0);
|
cpu_reset(0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,7 @@ static inline void omap1_arch_reset(char mode)
|
||||||
omap_writew(1, ARM_RSTCT1);
|
omap_writew(1, ARM_RSTCT1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void arch_reset(char mode)
|
static inline void arch_reset(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
if (!cpu_class_is_omap2())
|
if (!cpu_class_is_omap2())
|
||||||
omap1_arch_reset(mode);
|
omap1_arch_reset(mode);
|
||||||
|
|
|
@ -182,7 +182,7 @@ static unsigned long s3c24xx_read_idcode_v4(void)
|
||||||
* with the caches enabled. It seems at least the S3C2440 has a problem
|
* with the caches enabled. It seems at least the S3C2440 has a problem
|
||||||
* resetting if there is bus activity interrupted by the reset.
|
* resetting if there is bus activity interrupted by the reset.
|
||||||
*/
|
*/
|
||||||
static void s3c24xx_pm_restart(char mode)
|
static void s3c24xx_pm_restart(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
if (mode != 's') {
|
if (mode != 's') {
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
@ -191,12 +191,12 @@ static void s3c24xx_pm_restart(char mode)
|
||||||
__cpuc_flush_kern_all();
|
__cpuc_flush_kern_all();
|
||||||
__cpuc_flush_user_all();
|
__cpuc_flush_user_all();
|
||||||
|
|
||||||
arch_reset(mode);
|
arch_reset(mode, cmd);
|
||||||
local_irq_restore(flags);
|
local_irq_restore(flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* fallback, or unhandled */
|
/* fallback, or unhandled */
|
||||||
arm_machine_restart(mode);
|
arm_machine_restart(mode, cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init s3c24xx_init_io(struct map_desc *mach_desc, int size)
|
void __init s3c24xx_init_io(struct map_desc *mach_desc, int size)
|
||||||
|
|
Loading…
Reference in a new issue