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

Commit 033ef338 authored by Paul Mackerras's avatar Paul Mackerras
Browse files

powerpc: Merge rtas.c into arch/powerpc/kernel



This splits arch/ppc64/kernel/rtas.c into arch/powerpc/kernel/rtas.c,
which contains generic RTAS functions useful on any CHRP platform,
and arch/powerpc/platforms/pseries/rtas-fw.[ch], which contain
some pSeries-specific firmware flashing bits.  The parts of rtas.c
that are to do with pSeries-specific error logging are protected
by a new CONFIG_RTAS_ERROR_LOGGING symbol.  The inclusion of rtas.o
is controlled by the CONFIG_PPC_RTAS symbol, and the relevant
platforms select that.

Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent f9bd170a
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -276,6 +276,8 @@ config PPC_PSERIES
	depends on PPC_MULTIPLATFORM && PPC64
	bool "  IBM pSeries & new (POWER5-based) iSeries"
	select PPC_I8259
	select PPC_RTAS
	select RTAS_ERROR_LOGGING
	default y

config PPC_CHRP
@@ -283,6 +285,7 @@ config PPC_CHRP
	depends on PPC_MULTIPLATFORM && PPC32
	select PPC_I8259
	select PPC_INDIRECT_PCI
	select PPC_RTAS
	default y

config PPC_PMAC
@@ -317,6 +320,7 @@ config PPC_MAPLE
config PPC_BPA
	bool "  Broadband Processor Architecture"
	depends on PPC_MULTIPLATFORM && PPC64
	select PPC_RTAS

config PPC_OF
	bool
@@ -338,6 +342,15 @@ config MPIC
	bool
	default y

config PPC_RTAS
	bool
	default n

config RTAS_ERROR_LOGGING
	bool
	depends on PPC_RTAS
	default n

config MPIC_BROKEN_U3
	bool
	depends on PPC_MAPLE
+1 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ obj-$(CONFIG_PPC64) += binfmt_elf32.o sys_ppc32.o ptrace32.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_IBMVIO)		+= vio.o

ifeq ($(CONFIG_PPC_MERGE),y)
+3 −3
Original line number Diff line number Diff line
@@ -36,11 +36,11 @@
#include <asm/processor.h>
#include <asm/cputable.h>
#include <asm/thread_info.h>
#include <asm/rtas.h>
#ifdef CONFIG_PPC64
#include <asm/paca.h>
#include <asm/lppaca.h>
#include <asm/iSeries/HvLpEvent.h>
#include <asm/rtas.h>
#include <asm/cache.h>
#include <asm/systemcfg.h>
#include <asm/compat.h>
@@ -97,7 +97,7 @@ int main(void)
	DEFINE(TI_TASK, offsetof(struct thread_info, task));
	DEFINE(TI_EXECDOMAIN, offsetof(struct thread_info, exec_domain));
	DEFINE(TI_CPU, offsetof(struct thread_info, cpu));
#endif /* CONFIG_PPC64 */
#endif /* CONFIG_PPC32 */

#ifdef CONFIG_PPC64
	DEFINE(DCACHEL1LINESIZE, offsetof(struct ppc64_caches, dline_size));
@@ -142,11 +142,11 @@ int main(void)
	DEFINE(LPPACASRR1, offsetof(struct lppaca, saved_srr1));
	DEFINE(LPPACAANYINT, offsetof(struct lppaca, int_dword.any_int));
	DEFINE(LPPACADECRINT, offsetof(struct lppaca, int_dword.fields.decr_int));
#endif /* CONFIG_PPC64 */

	/* RTAS */
	DEFINE(RTASBASE, offsetof(struct rtas_t, base));
	DEFINE(RTASENTRY, offsetof(struct rtas_t, entry));
#endif /* CONFIG_PPC64 */

	/* Interrupt register frame */
	DEFINE(STACK_FRAME_OVERHEAD, STACK_FRAME_OVERHEAD);
+5 −7
Original line number Diff line number Diff line
@@ -954,7 +954,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_601)
 * here so it's easy to add arch-specific sections later.
 * -- Cort
 */
#ifdef CONFIG_PPC_OF
#ifdef CONFIG_PPC_RTAS
/*
 * On CHRP, the Run-Time Abstraction Services (RTAS) have to be
 * called with the MMU off.
@@ -963,14 +963,13 @@ _GLOBAL(enter_rtas)
	stwu	r1,-INT_FRAME_SIZE(r1)
	mflr	r0
	stw	r0,INT_FRAME_SIZE+4(r1)
	lis	r4,rtas_data@ha
	lwz	r4,rtas_data@l(r4)
	LOADADDR(r4, rtas)
	lis	r6,1f@ha	/* physical return address for rtas */
	addi	r6,r6,1f@l
	tophys(r6,r6)
	tophys(r7,r1)
	lis	r8,rtas_entry@ha
	lwz	r8,rtas_entry@l(r8)
	lwz	r8,RTASENTRY(r4)
	lwz	r4,RTASBASE(r4)
	mfmsr	r9
	stw	r9,8(r1)
	LOAD_MSR_KERNEL(r0,MSR_KERNEL)
@@ -978,7 +977,6 @@ _GLOBAL(enter_rtas)
	MTMSRD(r0)		/* don't get trashed */
	li	r9,MSR_KERNEL & ~(MSR_IR|MSR_DR)
	mtlr	r6
	CLR_TOP32(r7)
	mtspr	SPRN_SPRG2,r7
	mtspr	SPRN_SRR0,r8
	mtspr	SPRN_SRR1,r9
@@ -999,4 +997,4 @@ machine_check_in_rtas:
	twi	31,0,0
	/* XXX load up BATs and panic */

#endif /* CONFIG_PPC_OF */
#endif /* CONFIG_PPC_RTAS */
+0 −3
Original line number Diff line number Diff line
@@ -110,9 +110,6 @@ struct device_node *of_chosen;
struct device_node *dflt_interrupt_controller;
int num_interrupt_controllers;

u32 rtas_data;
u32 rtas_entry;

/*
 * Wrapper for allocating memory for various data that needs to be
 * attached to device nodes as they are processed at boot or when
Loading