diff --git a/arch/x86/soc/atom/linker.ld b/arch/x86/soc/atom/linker.ld index 8ed93c1ecad..f742f848071 100644 --- a/arch/x86/soc/atom/linker.ld +++ b/arch/x86/soc/atom/linker.ld @@ -39,6 +39,9 @@ MEMORY */ IDT_LIST : ORIGIN = 2K, LENGTH = 2K +#ifdef CONFIG_X86_MMU + MMU_LIST : ORIGIN = 4k, LENGTH = 1K +#endif } #include diff --git a/arch/x86/soc/atom/soc.c b/arch/x86/soc/atom/soc.c index 251282c4ab0..c567669a8d6 100644 --- a/arch/x86/soc/atom/soc.c +++ b/arch/x86/soc/atom/soc.c @@ -17,3 +17,28 @@ #include #include #include + +#ifdef CONFIG_X86_MMU +/* loapic */ +MMU_BOOT_REGION(CONFIG_LOAPIC_BASE_ADDRESS, 4*1024, MMU_ENTRY_WRITE); + +/*ioapic */ +MMU_BOOT_REGION(CONFIG_IOAPIC_BASE_ADDRESS, 1024*1024, MMU_ENTRY_WRITE); + +/* peripherals */ +MMU_BOOT_REGION(0xB0000000, 128*1024, MMU_ENTRY_WRITE); + +/* SCSS system control subsystem */ +MMU_BOOT_REGION(0xB0800000, 16*1024, MMU_ENTRY_WRITE); + +/* DMA */ +MMU_BOOT_REGION(0xB0700000, 4*1024, MMU_ENTRY_WRITE); + +/* USB */ +MMU_BOOT_REGION(0xB0500000, 256*1024, MMU_ENTRY_WRITE); + +#ifdef CONFIG_HPET_TIMER +MMU_BOOT_REGION(CONFIG_HPET_TIMER_BASE_ADDRESS, KB(4), MMU_ENTRY_WRITE); +#endif /* CONFIG_HPET_TIMER */ + +#endif /* CONFIG_X86_MMU */