b2d4383480
Choose PAGE_OFFSET dynamically based upon cpu type. Original UltraSPARC-I (spitfire) chips only supported a 44-bit virtual address space. Newer chips (T4 and later) support 52-bit virtual addresses and up to 47-bits of physical memory space. Therefore we have to adjust PAGE_SIZE dynamically based upon the capabilities of the chip. Note that this change alone does not allow us to support > 43-bit physical memory, to do that we need to re-arrange our page table support. The current encodings of the pmd_t and pgd_t pointers restricts us to "32 + 11" == 43 bits. This change can waste quite a bit of memory for the various tables. In particular, a future change should work to size and allocate kern_linear_bitmap[] and sparc64_valid_addr_bitmap[] dynamically. This isn't easy as we really cannot take a TLB miss when accessing kern_linear_bitmap[]. We'd have to lock it into the TLB or similar. Signed-off-by: David S. Miller <davem@davemloft.net> Acked-by: Bob Picco <bob.picco@oracle.com> |
||
---|---|---|
.. | ||
ashldi3.S | ||
ashrdi3.S | ||
atomic32.c | ||
atomic_64.S | ||
bitext.c | ||
bitops.S | ||
blockops.S | ||
bzero.S | ||
checksum_32.S | ||
checksum_64.S | ||
clear_page.S | ||
cmpdi2.c | ||
copy_in_user.S | ||
copy_page.S | ||
copy_user.S | ||
COPYING.LIB | ||
csum_copy.S | ||
csum_copy_from_user.S | ||
csum_copy_to_user.S | ||
divdi3.S | ||
ffs.S | ||
GENbzero.S | ||
GENcopy_from_user.S | ||
GENcopy_to_user.S | ||
GENmemcpy.S | ||
GENpage.S | ||
GENpatch.S | ||
hweight.S | ||
iomap.c | ||
ipcsum.S | ||
ksyms.c | ||
libgcc.h | ||
locks.S | ||
lshrdi3.S | ||
Makefile | ||
mcount.S | ||
memcmp.S | ||
memcpy.S | ||
memmove.S | ||
memscan_32.S | ||
memscan_64.S | ||
memset.S | ||
muldi3.S | ||
NG2copy_from_user.S | ||
NG2copy_to_user.S | ||
NG2memcpy.S | ||
NG2patch.S | ||
NG4clear_page.S | ||
NG4copy_from_user.S | ||
NG4copy_page.S | ||
NG4copy_to_user.S | ||
NG4memcpy.S | ||
NG4memset.S | ||
NG4patch.S | ||
NGbzero.S | ||
NGcopy_from_user.S | ||
NGcopy_to_user.S | ||
NGmemcpy.S | ||
NGpage.S | ||
NGpatch.S | ||
PeeCeeI.c | ||
strlen.S | ||
strncmp_32.S | ||
strncmp_64.S | ||
U1copy_from_user.S | ||
U1copy_to_user.S | ||
U1memcpy.S | ||
U3copy_from_user.S | ||
U3copy_to_user.S | ||
U3memcpy.S | ||
U3patch.S | ||
ucmpdi2.c | ||
udivdi3.S | ||
user_fixup.c | ||
VISsave.S | ||
xor.S |