linux/arch/sparc/lib
David S. Miller b2d4383480 sparc64: Make PAGE_OFFSET variable.
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>
2013-11-12 15:22:34 -08:00
..
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_from_user.S
csum_copy_to_user.S
csum_copy.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