Loading arch/powerpc/Kconfig +7 −5 Original line number Diff line number Diff line Loading @@ -278,7 +278,6 @@ config PPC_PSERIES select PPC_I8259 select PPC_RTAS select RTAS_ERROR_LOGGING select RTAS_FW default y config PPC_CHRP Loading Loading @@ -324,7 +323,6 @@ config PPC_CELL bool " Cell Broadband Processor Architecture" depends on PPC_MULTIPLATFORM && PPC64 select PPC_RTAS select RTAS_FW select MMIO_NVRAM config PPC_OF Loading Loading @@ -356,10 +354,14 @@ config RTAS_ERROR_LOGGING depends on PPC_RTAS default n config RTAS_FW bool config RTAS_PROC bool "Proc interface to RTAS" depends on PPC_RTAS default n default y config RTAS_FLASH tristate "Firmware flash interface" depends on PPC64 && RTAS_PROC config MMIO_NVRAM bool Loading arch/powerpc/kernel/Makefile +3 −2 Original line number Diff line number Diff line Loading @@ -13,12 +13,13 @@ endif obj-y := semaphore.o cputable.o ptrace.o syscalls.o \ signal_32.o pmc.o obj-$(CONFIG_PPC64) += setup_64.o binfmt_elf32.o sys_ppc32.o \ ptrace32.o systbl.o signal_64.o ptrace32.o systbl.o obj-$(CONFIG_ALTIVEC) += vecemu.o vector.o obj-$(CONFIG_POWER4) += idle_power4.o obj-$(CONFIG_PPC_OF) += of_device.o obj-$(CONFIG_PPC_RTAS) += rtas.o obj-$(CONFIG_RTAS_FW) += rtas_fw.o obj-$(CONFIG_RTAS_FLASH) += rtas_flash.o obj-$(CONFIG_RTAS_PROC) += rtas-proc.o obj-$(CONFIG_IBMVIO) += vio.o ifeq ($(CONFIG_PPC_MERGE),y) Loading include/asm-ppc64/ppc32.h→arch/powerpc/kernel/ppc32.h +16 −0 Original line number Diff line number Diff line Loading @@ -91,6 +91,22 @@ typedef struct sigaltstack_32 { compat_size_t ss_size; } stack_32_t; struct pt_regs32 { unsigned int gpr[32]; unsigned int nip; unsigned int msr; unsigned int orig_gpr3; /* Used for restarting system calls */ unsigned int ctr; unsigned int link; unsigned int xer; unsigned int ccr; unsigned int mq; /* 601 only (not used at present) */ unsigned int trap; /* Reason for being here */ unsigned int dar; /* Fault registers */ unsigned int dsisr; unsigned int result; /* Result of a system call */ }; struct sigcontext32 { unsigned int _unused[4]; int signal; Loading arch/ppc64/kernel/rtas-proc.c→arch/powerpc/kernel/rtas-proc.c +0 −0 File moved. View file arch/powerpc/kernel/rtas.c +18 −1 Original line number Diff line number Diff line Loading @@ -42,6 +42,13 @@ DEFINE_SPINLOCK(rtas_data_buf_lock); char rtas_data_buf[RTAS_DATA_BUF_SIZE] __cacheline_aligned; unsigned long rtas_rmo_buf; /* * If non-NULL, this gets called when the kernel terminates. * This is done like this so rtas_flash can be a module. */ void (*rtas_flash_term_hook)(int); EXPORT_SYMBOL(rtas_flash_term_hook); /* * call_rtas_display_status and call_rtas_display_status_delay * are designed only for very early low-level debugging, which Loading Loading @@ -206,6 +213,7 @@ void rtas_progress(char *s, unsigned short hex) spin_unlock(&progress_lock); } EXPORT_SYMBOL(rtas_progress); /* needed by rtas_flash module */ int rtas_token(const char *service) { Loading Loading @@ -492,6 +500,8 @@ int rtas_set_indicator(int indicator, int index, int new_value) void rtas_restart(char *cmd) { if (rtas_flash_term_hook) rtas_flash_term_hook(SYS_RESTART); printk("RTAS system-reboot returned %d\n", rtas_call(rtas_token("system-reboot"), 0, 1, NULL)); for (;;); Loading @@ -499,6 +509,8 @@ void rtas_restart(char *cmd) void rtas_power_off(void) { if (rtas_flash_term_hook) rtas_flash_term_hook(SYS_POWER_OFF); /* allow power on only with power button press */ printk("RTAS power-off returned %d\n", rtas_call(rtas_token("power-off"), 2, 1, NULL, -1, -1)); Loading @@ -507,7 +519,12 @@ void rtas_power_off(void) void rtas_halt(void) { rtas_power_off(); if (rtas_flash_term_hook) rtas_flash_term_hook(SYS_HALT); /* allow power on only with power button press */ printk("RTAS power-off returned %d\n", rtas_call(rtas_token("power-off"), 2, 1, NULL, -1, -1)); for (;;); } /* Must be in the RMO region, so we place it here */ Loading Loading
arch/powerpc/Kconfig +7 −5 Original line number Diff line number Diff line Loading @@ -278,7 +278,6 @@ config PPC_PSERIES select PPC_I8259 select PPC_RTAS select RTAS_ERROR_LOGGING select RTAS_FW default y config PPC_CHRP Loading Loading @@ -324,7 +323,6 @@ config PPC_CELL bool " Cell Broadband Processor Architecture" depends on PPC_MULTIPLATFORM && PPC64 select PPC_RTAS select RTAS_FW select MMIO_NVRAM config PPC_OF Loading Loading @@ -356,10 +354,14 @@ config RTAS_ERROR_LOGGING depends on PPC_RTAS default n config RTAS_FW bool config RTAS_PROC bool "Proc interface to RTAS" depends on PPC_RTAS default n default y config RTAS_FLASH tristate "Firmware flash interface" depends on PPC64 && RTAS_PROC config MMIO_NVRAM bool Loading
arch/powerpc/kernel/Makefile +3 −2 Original line number Diff line number Diff line Loading @@ -13,12 +13,13 @@ endif obj-y := semaphore.o cputable.o ptrace.o syscalls.o \ signal_32.o pmc.o obj-$(CONFIG_PPC64) += setup_64.o binfmt_elf32.o sys_ppc32.o \ ptrace32.o systbl.o signal_64.o ptrace32.o systbl.o obj-$(CONFIG_ALTIVEC) += vecemu.o vector.o obj-$(CONFIG_POWER4) += idle_power4.o obj-$(CONFIG_PPC_OF) += of_device.o obj-$(CONFIG_PPC_RTAS) += rtas.o obj-$(CONFIG_RTAS_FW) += rtas_fw.o obj-$(CONFIG_RTAS_FLASH) += rtas_flash.o obj-$(CONFIG_RTAS_PROC) += rtas-proc.o obj-$(CONFIG_IBMVIO) += vio.o ifeq ($(CONFIG_PPC_MERGE),y) Loading
include/asm-ppc64/ppc32.h→arch/powerpc/kernel/ppc32.h +16 −0 Original line number Diff line number Diff line Loading @@ -91,6 +91,22 @@ typedef struct sigaltstack_32 { compat_size_t ss_size; } stack_32_t; struct pt_regs32 { unsigned int gpr[32]; unsigned int nip; unsigned int msr; unsigned int orig_gpr3; /* Used for restarting system calls */ unsigned int ctr; unsigned int link; unsigned int xer; unsigned int ccr; unsigned int mq; /* 601 only (not used at present) */ unsigned int trap; /* Reason for being here */ unsigned int dar; /* Fault registers */ unsigned int dsisr; unsigned int result; /* Result of a system call */ }; struct sigcontext32 { unsigned int _unused[4]; int signal; Loading
arch/powerpc/kernel/rtas.c +18 −1 Original line number Diff line number Diff line Loading @@ -42,6 +42,13 @@ DEFINE_SPINLOCK(rtas_data_buf_lock); char rtas_data_buf[RTAS_DATA_BUF_SIZE] __cacheline_aligned; unsigned long rtas_rmo_buf; /* * If non-NULL, this gets called when the kernel terminates. * This is done like this so rtas_flash can be a module. */ void (*rtas_flash_term_hook)(int); EXPORT_SYMBOL(rtas_flash_term_hook); /* * call_rtas_display_status and call_rtas_display_status_delay * are designed only for very early low-level debugging, which Loading Loading @@ -206,6 +213,7 @@ void rtas_progress(char *s, unsigned short hex) spin_unlock(&progress_lock); } EXPORT_SYMBOL(rtas_progress); /* needed by rtas_flash module */ int rtas_token(const char *service) { Loading Loading @@ -492,6 +500,8 @@ int rtas_set_indicator(int indicator, int index, int new_value) void rtas_restart(char *cmd) { if (rtas_flash_term_hook) rtas_flash_term_hook(SYS_RESTART); printk("RTAS system-reboot returned %d\n", rtas_call(rtas_token("system-reboot"), 0, 1, NULL)); for (;;); Loading @@ -499,6 +509,8 @@ void rtas_restart(char *cmd) void rtas_power_off(void) { if (rtas_flash_term_hook) rtas_flash_term_hook(SYS_POWER_OFF); /* allow power on only with power button press */ printk("RTAS power-off returned %d\n", rtas_call(rtas_token("power-off"), 2, 1, NULL, -1, -1)); Loading @@ -507,7 +519,12 @@ void rtas_power_off(void) void rtas_halt(void) { rtas_power_off(); if (rtas_flash_term_hook) rtas_flash_term_hook(SYS_HALT); /* allow power on only with power button press */ printk("RTAS power-off returned %d\n", rtas_call(rtas_token("power-off"), 2, 1, NULL, -1, -1)); for (;;); } /* Must be in the RMO region, so we place it here */ Loading