Changeset View
Changeset View
Standalone View
Standalone View
sys/powerpc/aim/mmu_radix.c
Show First 20 Lines • Show All 901 Lines • ▼ Show 20 Lines | |||||
} | } | ||||
static pt_entry_t * | static pt_entry_t * | ||||
kvtopte(vm_offset_t va) | kvtopte(vm_offset_t va) | ||||
{ | { | ||||
pt_entry_t *l3e; | pt_entry_t *l3e; | ||||
l3e = pmap_pml3e(kernel_pmap, va); | l3e = pmap_pml3e(kernel_pmap, va); | ||||
if ((be64toh(*l3e) & RPTE_VALID) == 0) | if (l3e == NULL || (be64toh(*l3e) & RPTE_VALID) == 0) | ||||
return (NULL); | return (NULL); | ||||
return (pmap_l3e_to_pte(l3e, va)); | return (pmap_l3e_to_pte(l3e, va)); | ||||
} | } | ||||
void | void | ||||
mmu_radix_kenter(vm_offset_t va, vm_paddr_t pa) | mmu_radix_kenter(vm_offset_t va, vm_paddr_t pa) | ||||
{ | { | ||||
pt_entry_t *pte; | pt_entry_t *pte; | ||||
▲ Show 20 Lines • Show All 1,146 Lines • ▼ Show 20 Lines | mmu_radix_late_bootstrap(vm_offset_t start, vm_offset_t end) | ||||
/* | /* | ||||
* Calculate the last available physical address, and reserve the | * Calculate the last available physical address, and reserve the | ||||
* vm_page_array (upper bound). | * vm_page_array (upper bound). | ||||
*/ | */ | ||||
Maxmem = 0; | Maxmem = 0; | ||||
for (i = 0; phys_avail[i + 2] != 0; i += 2) | for (i = 0; phys_avail[i + 2] != 0; i += 2) | ||||
Maxmem = MAX(Maxmem, powerpc_btop(phys_avail[i + 1])); | Maxmem = MAX(Maxmem, powerpc_btop(phys_avail[i + 1])); | ||||
/* | |||||
* Set the start and end of kva. | |||||
*/ | |||||
virtual_avail = VM_MIN_KERNEL_ADDRESS; | |||||
virtual_end = VM_MAX_SAFE_KERNEL_ADDRESS; | |||||
/* | /* | ||||
* Remap any early IO mappings (console framebuffer, etc.) | * Remap any early IO mappings (console framebuffer, etc.) | ||||
*/ | */ | ||||
bs_remap_earlyboot(); | bs_remap_earlyboot(); | ||||
/* | /* | ||||
* Allocate a kernel stack with a guard page for thread0 and map it | * Allocate a kernel stack with a guard page for thread0 and map it | ||||
▲ Show 20 Lines • Show All 4,390 Lines • Show Last 20 Lines |