From: Simon Gerber Date: Thu, 19 Jun 2014 00:22:15 +0000 (-0700) Subject: x86_32: compiles with PAE enabled. X-Git-Tag: release2015-05-22~25^2~26 X-Git-Url: http://git.barrelfish.org/?p=barrelfish;a=commitdiff_plain;h=97b26f29da51a8e0be5b734a1fd2f0dedaeea1a9 x86_32: compiles with PAE enabled. Signed-off-by: Simon Gerber --- diff --git a/kernel/arch/x86_32/page_mappings_arch.c b/kernel/arch/x86_32/page_mappings_arch.c index 8fe2f00..7bd4aef 100644 --- a/kernel/arch/x86_32/page_mappings_arch.c +++ b/kernel/arch/x86_32/page_mappings_arch.c @@ -469,9 +469,9 @@ void paging_dump_tables(struct dcb *dispatcher) #ifdef CONFIG_PAE // loop over pdpt entries - for (int pdir_index = 0; pdir_index < X86_64_PDPTE_SIZE; pdir_index++) { + for (int pdir_index = 0; pdir_index < X86_32_PDPTE_SIZE; pdir_index++) { // get pdir - union x86_32_pdpte_entry *pdir = (union x86_64_pdir_entry *)root_pt + pdir_index; + union x86_32_pdpte_entry *pdir = (union x86_32_pdpte_entry *)root_pt + pdir_index; if (!pdir->raw) { continue; } genpaddr_t pdir_gp = pdir->d.base_addr << BASE_PAGE_BITS; lvaddr_t pdir_lv = local_phys_to_mem(gen_phys_to_local_phys(pdir_gp)); diff --git a/kernel/arch/x86_32/startup_arch.c b/kernel/arch/x86_32/startup_arch.c index 5fe6c3a..8bc8952 100644 --- a/kernel/arch/x86_32/startup_arch.c +++ b/kernel/arch/x86_32/startup_arch.c @@ -5,6 +5,7 @@ /* * Copyright (c) 2007-2013 ETH Zurich. + * Copyright (c) 2014, HP Labs. * All rights reserved. * * This file is distributed under the terms in the attached LICENSE file. @@ -119,9 +120,9 @@ errval_t startup_map_init(lvaddr_t vbase, lpaddr_t base, size_t size, + X86_32_PDIR_BASE(vaddr) * X86_32_PTABLE_SIZE + X86_32_PTABLE_BASE(vaddr)]; - debug(SUBSYS_PAGING, "Mapping 4K page: vaddr = 0x%x, base = 0x%x, " - "PDPTE_BASE = %u, PDIR_BASE = %u, " - "PTABLE_BASE = %u -- ", vaddr, base, X86_32_PDPTE_BASE(vaddr), + debug(SUBSYS_PAGING, "Mapping 4K page: vaddr = 0x%"PRIxLVADDR + ", base = 0x%"PRIxLPADDR", PDPTE_BASE = %lu, PDIR_BASE = %lu, " + "PTABLE_BASE = %lu -- ", vaddr, base, X86_32_PDPTE_BASE(vaddr), X86_32_PDIR_BASE(vaddr), X86_32_PTABLE_BASE(vaddr)); #else union x86_32_ptable_entry *ptable_base = &init_ptable[ diff --git a/lib/barrelfish/target/x86_32/pmap_target.c b/lib/barrelfish/target/x86_32/pmap_target.c index 40ec1cf..fa7147b 100644 --- a/lib/barrelfish/target/x86_32/pmap_target.c +++ b/lib/barrelfish/target/x86_32/pmap_target.c @@ -144,7 +144,7 @@ static struct vnode *find_pdir(struct pmap_x86 *pmap, genvaddr_t base) #ifdef CONFIG_PAE // PDPT mapping - return find_vnode(root, X86_32_PDPT_BASE(base)); + return find_vnode(root, X86_32_PDPTE_BASE(base)); #else return root; #endif