diff --git a/src/arch/arm/v5/mm.c b/src/arch/arm/v5/mm.c index be265e9..6f5d22f 100644 --- a/src/arch/arm/v5/mm.c +++ b/src/arch/arm/v5/mm.c @@ -675,8 +675,8 @@ void remap_as_pages(void *vstart, void *vend) unsigned long paddr = pstart; pgd_t pgd_i = PGD_INDEX(vstart); pmd_t pmd_i = PMD_INDEX(vstart); - pgd_table_t *pgd = (pgd_table_t *)TASK_PGD(current); - pmd_table_t *pmd = alloc_pmd(); + pgd_table_t *pgd = &init_pgd; + pmd_table_t *pmd = alloc_boot_pmd(); u32 pmd_phys = virt_to_phys(pmd); int numpages = __pfn(pend - pstart); diff --git a/src/generic/resource.c b/src/generic/resource.c index befa0e2..e27bcb9 100644 --- a/src/generic/resource.c +++ b/src/generic/resource.c @@ -169,7 +169,7 @@ int process_cap_info(struct cap_info *cap, } break; case CAP_RTYPE_PHYSMEM: - if ((ret = memcap_unmap(&kcont->virtmem_free, + if ((ret = memcap_unmap(&kcont->physmem_free, cap->start, cap->end))) { if (ret < 0) printk("FATAL: Insufficient boot memory " diff --git a/src/glue/arm/init.c b/src/glue/arm/init.c index fdbbfa1..4b493f7 100644 --- a/src/glue/arm/init.c +++ b/src/glue/arm/init.c @@ -376,7 +376,7 @@ void start_kernel(void) vectors_init(); /* Remap 1MB kernel sections as 4Kb pages. */ - // remap_as_pages((void *)page_align(_start_kernel), (void *)page_align_up(_end)); + remap_as_pages((void *)page_align(_start_kernel), (void *)page_align_up(_end_kernel)); /* Move the initial pgd into a more convenient place, mapped as pages. */ // relocate_page_tables();