On arm, like sparc64, the end of the kernel map varies from one type of
machine to another. Therefore, VM_MAX_KERNEL_ADDRESS can't be a constant. Instead, #define it to be a variable, vm_max_kernel_address, just like we do on sparc64. Reviewed by: kib Tested by: ian
This commit is contained in:
parent
7e46ff5f4c
commit
fc23011bc3
@ -1178,7 +1178,6 @@ initarm(struct arm_boot_params *abp)
|
||||
struct pv_addr kernel_l1pt;
|
||||
struct pv_addr dpcpu;
|
||||
vm_offset_t dtbp, freemempos, l2_start, lastaddr;
|
||||
vm_offset_t pmap_bootstrap_lastaddr;
|
||||
uint32_t memsize, l2size;
|
||||
char *env;
|
||||
void *kmdp;
|
||||
@ -1288,7 +1287,7 @@ initarm(struct arm_boot_params *abp)
|
||||
availmem_regions_sz = curr;
|
||||
|
||||
/* Platform-specific initialisation */
|
||||
pmap_bootstrap_lastaddr = initarm_lastaddr();
|
||||
vm_max_kernel_address = initarm_lastaddr();
|
||||
|
||||
pcpu0_init();
|
||||
|
||||
@ -1477,7 +1476,7 @@ initarm(struct arm_boot_params *abp)
|
||||
arm_intrnames_init();
|
||||
arm_vector_init(ARM_VECTORS_HIGH, ARM_VEC_ALL);
|
||||
arm_dump_avail_init(memsize, sizeof(dump_avail) / sizeof(dump_avail[0]));
|
||||
pmap_bootstrap(freemempos, pmap_bootstrap_lastaddr, &kernel_l1pt);
|
||||
pmap_bootstrap(freemempos, vm_max_kernel_address, &kernel_l1pt);
|
||||
msgbufp = (void *)msgbufpv.pv_va;
|
||||
msgbufinit(msgbufp, msgbufsize);
|
||||
mutex_init();
|
||||
|
@ -231,6 +231,8 @@ vm_paddr_t kernel_l1pa;
|
||||
|
||||
vm_offset_t kernel_vm_end = 0;
|
||||
|
||||
vm_offset_t vm_max_kernel_address;
|
||||
|
||||
struct pmap kernel_pmap_store;
|
||||
|
||||
static pt_entry_t *csrc_pte, *cdst_pte;
|
||||
|
@ -220,6 +220,8 @@ vm_paddr_t kernel_l1pa;
|
||||
|
||||
vm_offset_t kernel_vm_end = 0;
|
||||
|
||||
vm_offset_t vm_max_kernel_address;
|
||||
|
||||
struct pmap kernel_pmap_store;
|
||||
|
||||
static pt_entry_t *csrc_pte, *cdst_pte;
|
||||
|
@ -133,7 +133,7 @@
|
||||
#define VM_MIN_KERNEL_ADDRESS KERNBASE
|
||||
#endif
|
||||
|
||||
#define VM_MAX_KERNEL_ADDRESS 0xffffffff
|
||||
#define VM_MAX_KERNEL_ADDRESS (vm_max_kernel_address)
|
||||
|
||||
/*
|
||||
* Virtual size (bytes) for various kernel submaps.
|
||||
@ -166,6 +166,8 @@
|
||||
#define UMA_MD_SMALL_ALLOC
|
||||
#endif /* ARM_USE_SMALL_ALLOC */
|
||||
|
||||
extern vm_offset_t vm_max_kernel_address;
|
||||
|
||||
#define ZERO_REGION_SIZE (64 * 1024) /* 64KB */
|
||||
|
||||
#endif /* _MACHINE_VMPARAM_H_ */
|
||||
|
@ -98,7 +98,7 @@ SYSCTL_ULONG(_vm, OID_AUTO, min_kernel_address, CTLFLAG_RD,
|
||||
NULL, VM_MIN_KERNEL_ADDRESS, "Min kernel address");
|
||||
|
||||
SYSCTL_ULONG(_vm, OID_AUTO, max_kernel_address, CTLFLAG_RD,
|
||||
#ifdef __sparc64__
|
||||
#if defined(__arm__) || defined(__sparc64__)
|
||||
&vm_max_kernel_address, 0,
|
||||
#else
|
||||
NULL, VM_MAX_KERNEL_ADDRESS,
|
||||
|
Loading…
Reference in New Issue
Block a user