diff options
author | Tom Rini <trini@ti.com> | 2014-10-29 15:57:59 -0400 |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2014-10-29 15:57:59 -0400 |
commit | 2c54cb5516238ae93c930dee7f8e353291f2cdfb (patch) | |
tree | 17a1322a88f7381964bb1c89f8ed4b15472bbd3d /arch/x86/lib/physmem.c | |
parent | b8be4e365c6f7b5351037bba5d400ace9363fa0a (diff) | |
parent | 026090e4c51e00841b04abf58f48cc3a45654bc4 (diff) |
Merge git://git.denx.de/u-boot-x86
Diffstat (limited to 'arch/x86/lib/physmem.c')
-rw-r--r-- | arch/x86/lib/physmem.c | 33 |
1 files changed, 3 insertions, 30 deletions
diff --git a/arch/x86/lib/physmem.c b/arch/x86/lib/physmem.c index b57b2c30fe3..c3c709ec072 100644 --- a/arch/x86/lib/physmem.c +++ b/arch/x86/lib/physmem.c @@ -10,6 +10,7 @@ #include <common.h> #include <physmem.h> +#include <asm/cpu.h> #include <linux/compiler.h> DECLARE_GLOBAL_DATA_PTR; @@ -112,41 +113,13 @@ static void x86_phys_enter_paging(void) x86_phys_map_page(page_addr, page_addr, 0); } - /* Turn on paging */ - __asm__ __volatile__( - /* Load the page table address */ - "movl %0, %%cr3\n\t" - /* Enable pae */ - "movl %%cr4, %%eax\n\t" - "orl $0x00000020, %%eax\n\t" - "movl %%eax, %%cr4\n\t" - /* Enable paging */ - "movl %%cr0, %%eax\n\t" - "orl $0x80000000, %%eax\n\t" - "movl %%eax, %%cr0\n\t" - : - : "r" (pdpt) - : "eax" - ); + cpu_enable_paging_pae((ulong)pdpt); } /* Disable paging and PAE mode. */ static void x86_phys_exit_paging(void) { - /* Turn off paging */ - __asm__ __volatile__ ( - /* Disable paging */ - "movl %%cr0, %%eax\n\t" - "andl $0x7fffffff, %%eax\n\t" - "movl %%eax, %%cr0\n\t" - /* Disable pae */ - "movl %%cr4, %%eax\n\t" - "andl $0xffffffdf, %%eax\n\t" - "movl %%eax, %%cr4\n\t" - : - : - : "eax" - ); + cpu_disable_paging_pae(); } /* |