2ad5649662
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>
32 lines
894 B
C
32 lines
894 B
C
/*
|
|
* 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),
|
|
},
|
|
},
|
|
};
|