Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dc3a9efb authored by Michael Ellerman's avatar Michael Ellerman
Browse files

Merge with Paulus

parents 30415f6a d3ab57eb
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -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
@@ -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
@@ -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
+3 −2
Original line number Diff line number Diff line
@@ -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)
+16 −0
Original line number Diff line number Diff line
@@ -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;
+18 −1
Original line number Diff line number Diff line
@@ -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
@@ -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)
{
@@ -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 (;;);
@@ -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));
@@ -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