diff options
author | Jake Burkholder <jake@FreeBSD.org> | 2002-08-10 22:14:16 +0000 |
---|---|---|
committer | Jake Burkholder <jake@FreeBSD.org> | 2002-08-10 22:14:16 +0000 |
commit | 5aebb4029139c2675b97d1373ef2a379405d7c7c (patch) | |
tree | 7349581d304c20934c8c25ed2dcc7c74735a7e7e /sys/sparc64/include | |
parent | d64915d6e373efc67190d1220865e76c5eaf046f (diff) |
Auto size available kernel virtual address space based on phsyical memory
size. This avoids blowing out kva in kmeminit() on large memory machines
(4 gigs or more).
Reviewed by: tmm
Notes
Notes:
svn path=/head/; revision=101653
Diffstat (limited to 'sys/sparc64/include')
-rw-r--r-- | sys/sparc64/include/tsb.h | 9 | ||||
-rw-r--r-- | sys/sparc64/include/vmparam.h | 25 |
2 files changed, 10 insertions, 24 deletions
diff --git a/sys/sparc64/include/tsb.h b/sys/sparc64/include/tsb.h index a12b6349554f..20db029aff9d 100644 --- a/sys/sparc64/include/tsb.h +++ b/sys/sparc64/include/tsb.h @@ -43,12 +43,9 @@ (TSB_BSHIFT - TSB_BUCKET_SHIFT - TTE_SHIFT) #define TSB_BUCKET_MASK ((1 << TSB_BUCKET_ADDRESS_BITS) - 1) -#define TSB_KERNEL_SIZE \ - ((KVA_PAGES * PAGE_SIZE_4M) / sizeof(struct tte)) -#define TSB_KERNEL_MASK (TSB_KERNEL_SIZE - 1) -#define TSB_KERNEL_VA_MASK (TSB_KERNEL_MASK << TTE_SHIFT) - extern struct tte *tsb_kernel; +extern vm_size_t tsb_kernel_mask; +extern vm_size_t tsb_kernel_size; extern vm_offset_t tsb_kernel_phys; static __inline struct tte * @@ -66,7 +63,7 @@ tsb_vtobucket(pmap_t pm, vm_offset_t va) static __inline struct tte * tsb_kvpntotte(vm_offset_t vpn) { - return (&tsb_kernel[vpn & TSB_KERNEL_MASK]); + return (&tsb_kernel[vpn & tsb_kernel_mask]); } static __inline struct tte * diff --git a/sys/sparc64/include/vmparam.h b/sys/sparc64/include/vmparam.h index ec080e6c9afa..7b916bc952fa 100644 --- a/sys/sparc64/include/vmparam.h +++ b/sys/sparc64/include/vmparam.h @@ -88,9 +88,9 @@ * that if this moves above the va hole, we will have to deal with sign * extension of virtual addresses. */ -#define VM_MAXUSER_ADDRESS ((vm_offset_t)0x7fe00000000) +#define VM_MAXUSER_ADDRESS (0x7fe00000000UL) -#define VM_MIN_ADDRESS ((vm_offset_t)0) +#define VM_MIN_ADDRESS (0UL) #define VM_MAX_ADDRESS (VM_MAXUSER_ADDRESS) /* @@ -116,19 +116,6 @@ #endif /* - * Number of 4 meg pages to use for the kernel tsb. - */ -#ifndef KVA_PAGES -#define KVA_PAGES (1) -#endif - -/* - * Range of kernel virtual addresses. max = min + range. - */ -#define KVA_RANGE \ - ((KVA_PAGES * PAGE_SIZE_4M) << (PAGE_SHIFT - TTE_SHIFT)) - -/* * Lowest kernel virtual address, where the kernel is loaded. This is also * arbitrary. We pick a resonably low address, which allows all of kernel * text, data and bss to be below the 4 gigabyte mark, yet still high enough @@ -136,12 +123,12 @@ * same as for x86 with default KVA_PAGES... */ #define VM_MIN_KERNEL_ADDRESS (0xc0000000) -#define VM_MAX_KERNEL_ADDRESS (VM_MIN_KERNEL_ADDRESS + KVA_RANGE - PAGE_SIZE) -#define KERNBASE (VM_MIN_KERNEL_ADDRESS) - #define VM_MIN_PROM_ADDRESS (0xf0000000) #define VM_MAX_PROM_ADDRESS (0xffffe000) +#define KERNBASE (VM_MIN_KERNEL_ADDRESS) +#define VM_MAX_KERNEL_ADDRESS (vm_max_kernel_address) + /* * Initial pagein size of beginning of executable file. */ @@ -149,4 +136,6 @@ #define VM_INITIAL_PAGEIN 16 #endif +extern vm_offset_t vm_max_kernel_address; + #endif /* !_MACHINE_VMPARAM_H_ */ |