Remove STARTUP_PAGETABLE_ADDR from the ARM configs and replace it with
memory at the end of the kernel. This helps reduce the SoC and board specific configuration required. Reviewed by: bsdimp Tested by: jmg (armeb), br
This commit is contained in:
parent
f1267848bf
commit
ea49382feb
@ -16,8 +16,6 @@ options KERNPHYSADDR=0x40200000
|
||||
makeoptions KERNVIRTADDR=0xc0200000
|
||||
options KERNVIRTADDR=0xc0200000
|
||||
|
||||
options STARTUP_PAGETABLE_ADDR=0x48000000
|
||||
|
||||
options ARM_L2_PIPT
|
||||
|
||||
options IPI_IRQ_START=0
|
||||
|
@ -16,6 +16,4 @@ options KERNPHYSADDR=0x40200000
|
||||
makeoptions KERNVIRTADDR=0xc0200000
|
||||
options KERNVIRTADDR=0xc0200000
|
||||
|
||||
options STARTUP_PAGETABLE_ADDR=0x48000000
|
||||
|
||||
files "../allwinner/files.a10"
|
||||
|
@ -144,9 +144,15 @@ disable_mmu:
|
||||
nop
|
||||
mov pc, r7
|
||||
Lunmapped:
|
||||
#ifdef STARTUP_PAGETABLE_ADDR
|
||||
/* build page table from scratch */
|
||||
ldr r0, Lstartup_pagetable
|
||||
/*
|
||||
* Build page table from scratch.
|
||||
*/
|
||||
|
||||
/* Load the page tables physical address */
|
||||
ldr r1, Lstartup_pagetable
|
||||
ldr r2, =(KERNVIRTADDR - KERNPHYSADDR)
|
||||
sub r0, r1, r2
|
||||
|
||||
adr r4, mmu_init_table
|
||||
b 3f
|
||||
|
||||
@ -197,7 +203,6 @@ Lunmapped:
|
||||
nop
|
||||
CPWAIT(r0)
|
||||
|
||||
#endif
|
||||
mmu_done:
|
||||
nop
|
||||
adr r1, .Lstart
|
||||
@ -231,7 +236,6 @@ virt_done:
|
||||
adr r0, .Lmainreturned
|
||||
b _C_LABEL(panic)
|
||||
/* NOTREACHED */
|
||||
#ifdef STARTUP_PAGETABLE_ADDR
|
||||
#define MMU_INIT(va,pa,n_sec,attr) \
|
||||
.word n_sec ; \
|
||||
.word 4*((va)>>L1_S_SHIFT) ; \
|
||||
@ -246,7 +250,7 @@ Lreal_start:
|
||||
Lend:
|
||||
.word _edata
|
||||
Lstartup_pagetable:
|
||||
.word STARTUP_PAGETABLE_ADDR
|
||||
.word pagetable
|
||||
#ifdef SMP
|
||||
Lstartup_pagetable_secondary:
|
||||
.word temp_pagetable
|
||||
@ -272,10 +276,9 @@ mmu_init_table:
|
||||
MMU_INIT(0x48000000, 0x48000000, 1, L1_TYPE_S|L1_SHARED|L1_S_C|L1_S_AP(AP_KRW))
|
||||
#endif /* SMP */
|
||||
.word 0 /* end of table */
|
||||
#endif
|
||||
.Lstart:
|
||||
.word _edata
|
||||
.word _end
|
||||
.word _ebss
|
||||
.word svcstk + INIT_ARM_STACK_SIZE
|
||||
|
||||
.Lvirt_done:
|
||||
@ -293,6 +296,15 @@ mmu_init_table:
|
||||
svcstk:
|
||||
.space INIT_ARM_STACK_SIZE
|
||||
|
||||
/*
|
||||
* Memory for the initial pagetable. We are unable to place this in
|
||||
* the bss as this will be cleared after the table is loaded.
|
||||
*/
|
||||
.section ".init_pagetable"
|
||||
.align 14 /* 16KiB aligned */
|
||||
pagetable:
|
||||
.space L1_TABLE_SIZE
|
||||
|
||||
.text
|
||||
.align 0
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
#$FreeBSD$
|
||||
include "../at91/std.at91"
|
||||
|
||||
options STARTUP_PAGETABLE_ADDR=0x20800000
|
||||
makeoptions KERNPHYSADDR=0x20000000
|
||||
options KERNPHYSADDR=0x20000000
|
||||
makeoptions KERNVIRTADDR=0xc0000000
|
||||
|
@ -1,7 +1,6 @@
|
||||
#$FreeBSD$
|
||||
include "../at91/std.at91"
|
||||
|
||||
options STARTUP_PAGETABLE_ADDR=0x20800000
|
||||
makeoptions KERNPHYSADDR=0x20000000
|
||||
options KERNPHYSADDR=0x20000000
|
||||
makeoptions KERNVIRTADDR=0xc0000000
|
||||
|
@ -1,7 +1,6 @@
|
||||
# $FreeBSD$
|
||||
include "../at91/std.at91sam9"
|
||||
|
||||
options STARTUP_PAGETABLE_ADDR=0x20800000
|
||||
makeoptions KERNPHYSADDR=0x20000000
|
||||
makeoptions KERNVIRTADDR=0xc0000000
|
||||
options KERNPHYSADDR=0x20000000
|
||||
|
@ -1,7 +1,6 @@
|
||||
#$FreeBSD$
|
||||
include "../at91/std.at91"
|
||||
|
||||
options STARTUP_PAGETABLE_ADDR=0x20000000
|
||||
makeoptions KERNPHYSADDR=0x20100000
|
||||
options KERNPHYSADDR=0x20100000
|
||||
makeoptions KERNVIRTADDR=0xc0100000
|
||||
|
@ -1,7 +1,6 @@
|
||||
#$FreeBSD$
|
||||
include "../at91/std.at91sam9"
|
||||
|
||||
options STARTUP_PAGETABLE_ADDR=0x20800000
|
||||
makeoptions KERNPHYSADDR=0x20000000
|
||||
makeoptions KERNVIRTADDR=0xc0000000
|
||||
options KERNPHYSADDR=0x20000000
|
||||
|
@ -1,7 +1,6 @@
|
||||
#$FreeBSD$
|
||||
include "../at91/std.at91"
|
||||
|
||||
options STARTUP_PAGETABLE_ADDR=0x20800000
|
||||
makeoptions KERNPHYSADDR=0x20000000
|
||||
options KERNPHYSADDR=0x20000000
|
||||
makeoptions KERNVIRTADDR=0xc0000000
|
||||
|
@ -1,7 +1,6 @@
|
||||
#$FreeBSD$
|
||||
include "../at91/std.at91sam9"
|
||||
|
||||
options STARTUP_PAGETABLE_ADDR=0x20800000
|
||||
makeoptions KERNPHYSADDR=0x20000000
|
||||
makeoptions KERNVIRTADDR=0xc0000000
|
||||
options KERNPHYSADDR=0x20000000
|
||||
|
@ -1,7 +1,6 @@
|
||||
# $FreeBSD$
|
||||
include "../at91/std.at91sam9"
|
||||
|
||||
options STARTUP_PAGETABLE_ADDR=0x20800000
|
||||
makeoptions KERNPHYSADDR=0x20000000
|
||||
makeoptions KERNVIRTADDR=0xc0000000
|
||||
options KERNPHYSADDR=0x20000000
|
||||
|
@ -1,7 +1,6 @@
|
||||
#$FreeBSD$
|
||||
include "../at91/std.at91sam9"
|
||||
|
||||
options STARTUP_PAGETABLE_ADDR=0x20800000
|
||||
makeoptions KERNPHYSADDR=0x20000000
|
||||
makeoptions KERNVIRTADDR=0xc0000000
|
||||
options KERNPHYSADDR=0x20000000
|
||||
|
@ -1,7 +1,6 @@
|
||||
#$FreeBSD$
|
||||
include "../at91/std.at91sam9"
|
||||
|
||||
options STARTUP_PAGETABLE_ADDR=0x20800000
|
||||
makeoptions KERNPHYSADDR=0x20000000
|
||||
makeoptions KERNVIRTADDR=0xc0000000
|
||||
options KERNPHYSADDR=0x20000000
|
||||
|
@ -1,7 +1,6 @@
|
||||
#$FreeBSD$
|
||||
include "../at91/std.at91sam9g45"
|
||||
|
||||
options STARTUP_PAGETABLE_ADDR=0x70800000
|
||||
makeoptions KERNPHYSADDR=0x70008000
|
||||
options KERNPHYSADDR=0x70008000
|
||||
makeoptions KERNVIRTADDR=0xc0008000
|
||||
|
@ -1,7 +1,6 @@
|
||||
#$FreeBSD$
|
||||
include "../at91/std.at91"
|
||||
|
||||
options STARTUP_PAGETABLE_ADDR=0x20800000
|
||||
makeoptions KERNPHYSADDR=0x20000000
|
||||
makeoptions KERNVIRTADDR=0xc0000000
|
||||
options KERNPHYSADDR=0x20000000
|
||||
|
@ -7,6 +7,5 @@ makeoptions KERNVIRTADDR=0xc0100000
|
||||
options KERNPHYSADDR=0x00100000
|
||||
makeoptions KERNPHYSADDR=0x00100000
|
||||
options PHYSADDR=0x00000000
|
||||
options STARTUP_PAGETABLE_ADDR=0x01000000
|
||||
options FREEBSD_BOOT_LOADER
|
||||
options LINUX_BOOT_ABI
|
||||
|
@ -10,7 +10,6 @@ include "../at91/std.atmel"
|
||||
|
||||
# Typical values for most SoCs and board configurations. Will not work for
|
||||
# at91sam9g45 or on some boards with non u-boot boot loaders.
|
||||
options STARTUP_PAGETABLE_ADDR=0x20800000
|
||||
makeoptions KERNPHYSADDR=0x20000000
|
||||
makeoptions KERNVIRTADDR=0xc0000000
|
||||
options KERNPHYSADDR=0x20000000
|
||||
|
@ -25,7 +25,6 @@ ident CNS11XXNAS
|
||||
#options KERNVIRTADDR=0xc0200000 # Used in ldscript.arm
|
||||
#options FLASHADDR=0x50000000
|
||||
#options LOADERRAMADDR=0x00000000
|
||||
#options STARTUP_PAGETABLE_ADDR=0x10000000
|
||||
|
||||
include "../econa/std.econa"
|
||||
|
||||
|
@ -24,7 +24,6 @@ options KERNPHYSADDR=0x00200000
|
||||
options KERNVIRTADDR=0xc0200000 # Used in ldscript.arm
|
||||
|
||||
options COUNTS_PER_SEC=400000000
|
||||
options STARTUP_PAGETABLE_ADDR=0x00000000
|
||||
include "../xscale/i8134x/std.crb"
|
||||
makeoptions MODULES_OVERRIDE=""
|
||||
|
||||
|
@ -23,7 +23,6 @@ options PHYSADDR=0xa0000000
|
||||
options KERNPHYSADDR=0xa0200000
|
||||
options KERNVIRTADDR=0xc0200000 # Used in ldscript.arm
|
||||
|
||||
options STARTUP_PAGETABLE_ADDR=0xa0000000
|
||||
#options ARM32_NEW_VM_LAYOUT
|
||||
include "../xscale/i80321/std.ep80219"
|
||||
makeoptions MODULES_OVERRIDE=""
|
||||
|
@ -30,7 +30,6 @@ options PHYSADDR=0xa0000000
|
||||
options KERNPHYSADDR=0xa0200000
|
||||
options KERNVIRTADDR=0xc0200000 # Used in ldscript.arm
|
||||
|
||||
options STARTUP_PAGETABLE_ADDR=0xa0000000
|
||||
include "../xscale/pxa/std.pxa"
|
||||
makeoptions MODULES_OVERRIDE=""
|
||||
|
||||
|
@ -25,7 +25,6 @@ options KERNVIRTADDR=0xc0200000 # Used in ldscript.arm
|
||||
options FLASHADDR=0xf0000000
|
||||
options LOADERRAMADDR=0x00000000
|
||||
|
||||
options STARTUP_PAGETABLE_ADDR=0xa0000000
|
||||
include "../xscale/i80321/std.iq31244"
|
||||
makeoptions MODULES_OVERRIDE=""
|
||||
|
||||
|
@ -25,7 +25,6 @@ ident NSLU
|
||||
#options KERNVIRTADDR=0xc0200000 # Used in ldscript.arm
|
||||
#options FLASHADDR=0x50000000
|
||||
#options LOADERRAMADDR=0x00000000
|
||||
#options STARTUP_PAGETABLE_ADDR=0x10000000
|
||||
|
||||
include "../xscale/ixp425/std.ixp425"
|
||||
# NB: memory mapping is defined in std.avila (see also comment above)
|
||||
|
@ -29,7 +29,6 @@ makeoptions KERNVIRTADDR=0xc0100000
|
||||
options KERNPHYSADDR=0x00100000
|
||||
makeoptions KERNPHYSADDR=0x00100000
|
||||
options PHYSADDR=0x00000000
|
||||
options STARTUP_PAGETABLE_ADDR=0x01000000
|
||||
options FREEBSD_BOOT_LOADER
|
||||
options LINUX_BOOT_ABI
|
||||
|
||||
|
@ -12,6 +12,5 @@ options KERNPHYSADDR=0x01000000
|
||||
options KERNVIRTADDR=0xc1000000 # Used in ldscript.arm
|
||||
options FLASHADDR=0xD0000000
|
||||
options LOADERRAMADDR=0x00000000
|
||||
options STARTUP_PAGETABLE_ADDR=0x00100000
|
||||
|
||||
options NO_EVENTTIMERS
|
||||
|
@ -9,7 +9,6 @@ makeoptions KERNVIRTADDR=0xc0100000
|
||||
options KERNPHYSADDR=0x90100000
|
||||
makeoptions KERNPHYSADDR=0x90100000
|
||||
options PHYSADDR=0x90000000
|
||||
options STARTUP_PAGETABLE_ADDR=0x91000000
|
||||
|
||||
files "../freescale/imx/files.imx51"
|
||||
|
||||
|
@ -9,7 +9,6 @@ makeoptions KERNVIRTADDR=0xc0100000
|
||||
options KERNPHYSADDR=0x70100000
|
||||
makeoptions KERNPHYSADDR=0x70100000
|
||||
options PHYSADDR=0x70000000
|
||||
options STARTUP_PAGETABLE_ADDR=0x71000000
|
||||
|
||||
files "../freescale/imx/files.imx53"
|
||||
|
||||
|
@ -9,7 +9,6 @@ makeoptions KERNVIRTADDR = 0xc2000000
|
||||
options KERNPHYSADDR = 0x12000000
|
||||
makeoptions KERNPHYSADDR = 0x12000000
|
||||
options PHYSADDR = 0x10000000
|
||||
options STARTUP_PAGETABLE_ADDR = 0x11f00000
|
||||
|
||||
files "../freescale/imx/files.imx6"
|
||||
|
||||
|
@ -13,8 +13,6 @@ options KERNPHYSADDR=0x80100000
|
||||
makeoptions KERNVIRTADDR=0xc0100000
|
||||
options KERNVIRTADDR=0xc0100000
|
||||
|
||||
options STARTUP_PAGETABLE_ADDR=0x81000000
|
||||
|
||||
options ARM_L2_PIPT
|
||||
|
||||
files "../freescale/vybrid/files.vybrid"
|
||||
|
@ -8,7 +8,6 @@ cpu CPU_ARM9
|
||||
machine arm
|
||||
makeoptions CONF_CFLAGS="-march=armv5te"
|
||||
options PHYSADDR=0x80000000
|
||||
options STARTUP_PAGETABLE_ADDR=0x80000000
|
||||
makeoptions KERNPHYSADDR=0x80100000
|
||||
options KERNPHYSADDR=0x80100000
|
||||
makeoptions KERNVIRTADDR=0xc0100000
|
||||
|
@ -12,6 +12,5 @@ makeoptions KERNVIRTADDR=0xc0200000
|
||||
options KERNPHYSADDR=0x00200000
|
||||
options KERNVIRTADDR=0xc0200000
|
||||
options PHYSADDR=0x00000000
|
||||
options STARTUP_PAGETABLE_ADDR=0x00100000
|
||||
|
||||
options ARM_L2_PIPT
|
||||
|
@ -9,4 +9,3 @@ makeoptions KERNVIRTADDR=0xc0900000
|
||||
options KERNPHYSADDR=0x00900000
|
||||
options KERNVIRTADDR=0xc0900000
|
||||
options PHYSADDR=0x00000000
|
||||
options STARTUP_PAGETABLE_ADDR=0x00100000
|
||||
|
@ -12,4 +12,3 @@ makeoptions KERNVIRTADDR=0xc0900000
|
||||
options KERNPHYSADDR=0x00900000
|
||||
options KERNVIRTADDR=0xc0900000
|
||||
options PHYSADDR=0x00000000
|
||||
options STARTUP_PAGETABLE_ADDR=0x00100000
|
||||
|
@ -9,4 +9,3 @@ makeoptions KERNVIRTADDR=0xc0900000
|
||||
options KERNPHYSADDR=0x00900000
|
||||
options KERNVIRTADDR=0xc0900000
|
||||
options PHYSADDR=0x00000000
|
||||
options STARTUP_PAGETABLE_ADDR=0x00100000
|
||||
|
@ -9,7 +9,6 @@ makeoptions KERNVIRTADDR=0xc0900000
|
||||
options KERNPHYSADDR=0x00900000
|
||||
options KERNVIRTADDR=0xc0900000
|
||||
options PHYSADDR=0x00000000
|
||||
options STARTUP_PAGETABLE_ADDR=0x00100000
|
||||
options LOADERRAMADDR=0x00000000
|
||||
options FLASHADDR=0x00008000
|
||||
|
||||
|
@ -17,8 +17,6 @@ options KERNPHYSADDR=0x60400000
|
||||
makeoptions KERNVIRTADDR=0xc0400000
|
||||
options KERNVIRTADDR=0xc0400000
|
||||
|
||||
options STARTUP_PAGETABLE_ADDR=0x60200000
|
||||
|
||||
options ARM_L2_PIPT
|
||||
|
||||
options IPI_IRQ_START=0
|
||||
|
@ -6,6 +6,5 @@ makeoptions KERNVIRTADDR=0xc0000000
|
||||
options KERNPHYSADDR=0x30000000
|
||||
options KERNVIRTADDR=0xc0000000
|
||||
options PHYSADDR=0x30000000
|
||||
options STARTUP_PAGETABLE_ADDR=0x30800000
|
||||
options NO_EVENTTIMERS
|
||||
|
||||
|
@ -13,8 +13,6 @@ options KERNPHYSADDR=0x40f00000
|
||||
makeoptions KERNVIRTADDR=0xc0f00000
|
||||
options KERNVIRTADDR=0xc0f00000
|
||||
|
||||
options STARTUP_PAGETABLE_ADDR=0x40100000
|
||||
|
||||
options ARM_L2_PIPT
|
||||
|
||||
options IPI_IRQ_START=0
|
||||
|
@ -11,6 +11,4 @@ options KERNPHYSADDR=0x00200000
|
||||
makeoptions KERNVIRTADDR=0xc0200000
|
||||
options KERNVIRTADDR=0xc0200000
|
||||
|
||||
options STARTUP_PAGETABLE_ADDR=0x00100000
|
||||
|
||||
files "../tegra/files.tegra2"
|
||||
|
@ -14,8 +14,6 @@ makeoptions KERNPHYSADDR=0x80200000
|
||||
options KERNVIRTADDR=0xc0200000 # Used in ldscript.arm
|
||||
makeoptions KERNVIRTADDR=0xc0200000
|
||||
|
||||
options STARTUP_PAGETABLE_ADDR=0x80000000
|
||||
|
||||
options SOC_TI_AM335X
|
||||
|
||||
options ARM_L2_PIPT
|
||||
|
@ -14,8 +14,6 @@ makeoptions KERNPHYSADDR=0x80200000
|
||||
options KERNVIRTADDR=0xc0200000 # Used in ldscript.arm
|
||||
makeoptions KERNVIRTADDR=0xc0200000
|
||||
|
||||
options STARTUP_PAGETABLE_ADDR=0x80000000
|
||||
|
||||
options SOC_OMAP4
|
||||
|
||||
options ARM_L2_PIPT
|
||||
|
@ -18,6 +18,5 @@ makeoptions KERNPHYSADDR=0x00100000
|
||||
options KERNVIRTADDR=0xc0100000 # Used in ldscript.arm
|
||||
makeoptions KERNVIRTADDR=0xc0100000
|
||||
|
||||
options STARTUP_PAGETABLE_ADDR=0x000f0000
|
||||
options ARM_L2_PIPT
|
||||
|
||||
|
@ -19,4 +19,3 @@ options KERNVIRTADDR=0xc0200000 # Used in ldscript.arm
|
||||
makeoptions KERNVIRTADDR=0xc0200000
|
||||
options FLASHADDR=0x50000000
|
||||
options LOADERRAMADDR=0x00000000
|
||||
options STARTUP_PAGETABLE_ADDR=0x00000000
|
||||
|
@ -107,6 +107,12 @@ SECTIONS
|
||||
*(.dynbss)
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
. = ALIGN(32 / 8);
|
||||
_ebss = .;
|
||||
/* A section for the initial page table, it doesn't need to be in the
|
||||
kernel file, however unlike normal .bss entries should not be zeroed
|
||||
out as we use it before the .bss section is cleared. */
|
||||
*(.init_pagetable)
|
||||
}
|
||||
. = ALIGN(32 / 8);
|
||||
_end = . ;
|
||||
|
@ -50,7 +50,6 @@ SOC_OMAP3 opt_global.h
|
||||
SOC_OMAP4 opt_global.h
|
||||
SOC_TI_AM335X opt_global.h
|
||||
SOC_TEGRA2 opt_global.h
|
||||
STARTUP_PAGETABLE_ADDR opt_global.h
|
||||
XSCALE_CACHE_READ_WRITE_ALLOCATE opt_global.h
|
||||
XSACLE_DISABLE_CCNT opt_timer.h
|
||||
VERBOSE_INIT_ARM opt_global.h
|
||||
|
Loading…
x
Reference in New Issue
Block a user