lkml.org 
[lkml]   [2005]   [Mar]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH] PPC64 Make RTAS code usable on non-pSeries machines
This patch is from Arnd Bergmann <arndb@de.ibm.com>.

RTAS is not actually pSeries specific, but some PPC64 code that relies
on RTAS is currently protected by CONFIG_PPC_PSERIES.
This introduces a generic configuration option PPC_RTAS that can be used
by other subarchitectures as well. The existing option with the same
name is renamed to the more specific RTAS_PROC.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>

diff -urN linux-2.5/arch/ppc64/Kconfig test/arch/ppc64/Kconfig
--- linux-2.5/arch/ppc64/Kconfig 2005-03-14 08:25:07.000000000 +1100
+++ test/arch/ppc64/Kconfig 2005-03-14 19:31:22.000000000 +1100
@@ -255,16 +255,21 @@


config PPC_RTAS
- bool "Proc interface to RTAS"
+ bool
depends on PPC_PSERIES
+ default y
+
+config RTAS_PROC
+ bool "Proc interface to RTAS"
+ depends on PPC_RTAS

config RTAS_FLASH
tristate "Firmware flash interface"
- depends on PPC_RTAS
+ depends on RTAS_PROC

config SCANLOG
tristate "Scanlog dump interface"
- depends on PPC_RTAS
+ depends on RTAS_PROC && PPC_PSERIES

config LPARCFG
tristate "LPAR Configuration Data"
diff -urN linux-2.5/arch/ppc64/kernel/Makefile test/arch/ppc64/kernel/Makefile
--- linux-2.5/arch/ppc64/kernel/Makefile 2005-03-07 08:21:53.000000000 +1100
+++ test/arch/ppc64/kernel/Makefile 2005-03-14 19:31:22.000000000 +1100
@@ -39,7 +39,7 @@
obj-$(CONFIG_RTAS_FLASH) += rtas_flash.o
obj-$(CONFIG_SMP) += smp.o
obj-$(CONFIG_MODULES) += module.o ppc_ksyms.o
-obj-$(CONFIG_PPC_RTAS) += rtas-proc.o
+obj-$(CONFIG_RTAS_PROC) += rtas-proc.o
obj-$(CONFIG_SCANLOG) += scanlog.o
obj-$(CONFIG_VIOPATH) += viopath.o
obj-$(CONFIG_LPARCFG) += lparcfg.o
diff -urN linux-2.5/arch/ppc64/kernel/entry.S test/arch/ppc64/kernel/entry.S
--- linux-2.5/arch/ppc64/kernel/entry.S 2005-02-07 07:55:28.000000000 +1100
+++ test/arch/ppc64/kernel/entry.S 2005-03-14 19:31:22.000000000 +1100
@@ -616,7 +616,7 @@
bl .unrecoverable_exception
b unrecov_restore

-#ifdef CONFIG_PPC_PSERIES
+#ifdef CONFIG_PPC_RTAS
/*
* On CHRP, the Run-Time Abstraction Services (RTAS) have to be
* called with the MMU off.
@@ -753,7 +753,7 @@
mtlr r0
blr /* return to caller */

-#endif /* CONFIG_PPC_PSERIES */
+#endif /* CONFIG_PPC_RTAS */

#ifdef CONFIG_PPC_MULTIPLATFORM

diff -urN linux-2.5/arch/ppc64/kernel/misc.S test/arch/ppc64/kernel/misc.S
--- linux-2.5/arch/ppc64/kernel/misc.S 2005-03-14 08:25:07.000000000 +1100
+++ test/arch/ppc64/kernel/misc.S 2005-03-14 19:31:22.000000000 +1100
@@ -680,7 +680,7 @@
ld r30,-16(r1)
blr

-#ifndef CONFIG_PPC_PSERIES /* hack hack hack */
+#ifdef CONFIG_PPC_RTAS /* hack hack hack */
#define ppc_rtas sys_ni_syscall
#endif

diff -urN linux-2.5/arch/ppc64/kernel/prom.c test/arch/ppc64/kernel/prom.c
--- linux-2.5/arch/ppc64/kernel/prom.c 2005-03-10 09:14:12.000000000 +1100
+++ test/arch/ppc64/kernel/prom.c 2005-03-14 19:31:22.000000000 +1100
@@ -894,7 +894,7 @@
if (get_flat_dt_prop(node, "linux,iommu-force-on", NULL) != NULL)
iommu_force_on = 1;

-#ifdef CONFIG_PPC_PSERIES
+#ifdef CONFIG_PPC_RTAS
/* To help early debugging via the front panel, we retreive a minimal
* set of RTAS infos now if available
*/
@@ -910,7 +910,7 @@
rtas.size = *prop;
}
}
-#endif /* CONFIG_PPC_PSERIES */
+#endif /* CONFIG_PPC_RTAS */

/* break now */
return 1;
diff -urN linux-2.5/arch/ppc64/kernel/rtc.c test/arch/ppc64/kernel/rtc.c
--- linux-2.5/arch/ppc64/kernel/rtc.c 2004-11-17 09:38:21.000000000 +1100
+++ test/arch/ppc64/kernel/rtc.c 2005-03-14 19:31:22.000000000 +1100
@@ -337,7 +337,7 @@
}
#endif

-#ifdef CONFIG_PPC_PSERIES
+#ifdef CONFIG_PPC_RTAS
#define MAX_RTC_WAIT 5000 /* 5 sec */
#define RTAS_CLOCK_BUSY (-2)
void pSeries_get_boot_time(struct rtc_time *rtc_tm)
diff -urN linux-2.5/arch/ppc64/kernel/setup.c test/arch/ppc64/kernel/setup.c
--- linux-2.5/arch/ppc64/kernel/setup.c 2005-03-07 08:21:53.000000000 +1100
+++ test/arch/ppc64/kernel/setup.c 2005-03-14 19:31:22.000000000 +1100
@@ -605,12 +605,12 @@
*/
initialize_cache_info();

-#ifdef CONFIG_PPC_PSERIES
+#ifdef CONFIG_PPC_RTAS
/*
* Initialize RTAS if available
*/
rtas_initialize();
-#endif /* CONFIG_PPC_PSERIES */
+#endif /* CONFIG_PPC_RTAS */

/*
* Check if we have an initrd provided via the device-tree
diff -urN linux-2.5/arch/ppc64/oprofile/op_model_power4.c test/arch/ppc64/oprofile/op_model_power4.c
--- linux-2.5/arch/ppc64/oprofile/op_model_power4.c 2005-03-07 08:21:53.000000000 +1100
+++ test/arch/ppc64/oprofile/op_model_power4.c 2005-03-14 19:31:22.000000000 +1100
@@ -224,7 +224,7 @@
if (mmcra & MMCRA_SIPR)
return pc;

-#ifdef CONFIG_PPC_PSERIES
+#ifdef CONFIG_PPC_RTAS
/* Were we in RTAS? */
if (pc >= rtas.base && pc < (rtas.base + rtas.size))
/* function descriptor madness */
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-03-22 14:11    [W:0.029 / U:0.748 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site