summaryrefslogtreecommitdiffstats
path: root/arch/ppc64/kernel/lparmap.c
diff options
context:
space:
mode:
authorStephen Rothwell2005-08-17 05:01:50 +0200
committerLinus Torvalds2005-08-17 06:06:25 +0200
commit2ad56496627630ebc99f06af5f81ca23e17e014e (patch)
treed5a7aecdd1d6d16f488a2b029ff55e5a132c8f1a /arch/ppc64/kernel/lparmap.c
parent[PATCH] USB: usbmon: Copyrights and a typo (diff)
downloadkernel-qcow2-linux-2ad56496627630ebc99f06af5f81ca23e17e014e.tar.gz
kernel-qcow2-linux-2ad56496627630ebc99f06af5f81ca23e17e014e.tar.xz
kernel-qcow2-linux-2ad56496627630ebc99f06af5f81ca23e17e014e.zip
[PATCH] iSeries build with newer assemblers and compilers
Paulus suggested that we put xLparMap in its own .c file so that we can generate a .s file to be included into head.S. This doesn't get around the problem of having it at a fixed address, but it makes it more palatable. It would be good if this could be included in 2.6.13 as it solves our build problems with various versions of binutils and gcc. In particular, it allows us to build an iSeries kernel on Debian unstable using their biarch compiler. This has been built and booted on iSeries and built for pSeries and g5. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/ppc64/kernel/lparmap.c')
-rw-r--r--arch/ppc64/kernel/lparmap.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/arch/ppc64/kernel/lparmap.c b/arch/ppc64/kernel/lparmap.c
new file mode 100644
index 000000000000..b81de286df5e
--- /dev/null
+++ b/arch/ppc64/kernel/lparmap.c
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2005 Stephen Rothwell IBM Corp.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version
+ * 2 of the License, or (at your option) any later version.
+ */
+#include <asm/mmu.h>
+#include <asm/page.h>
+#include <asm/iSeries/LparMap.h>
+
+const struct LparMap __attribute__((__section__(".text"))) xLparMap = {
+ .xNumberEsids = HvEsidsToMap,
+ .xNumberRanges = HvRangesToMap,
+ .xSegmentTableOffs = STAB0_PAGE,
+
+ .xEsids = {
+ { .xKernelEsid = GET_ESID(KERNELBASE),
+ .xKernelVsid = KERNEL_VSID(KERNELBASE), },
+ { .xKernelEsid = GET_ESID(VMALLOCBASE),
+ .xKernelVsid = KERNEL_VSID(VMALLOCBASE), },
+ },
+
+ .xRanges = {
+ { .xPages = HvPagesToMap,
+ .xOffset = 0,
+ .xVPN = KERNEL_VSID(KERNELBASE) << (SID_SHIFT - PAGE_SHIFT),
+ },
+ },
+};