This reduces the memory mapped to be closer to the minimal memory
needed to enable the MMU.
Sponsored by: Innovate UK
andrew on Dec 24 2020, 3:56 PM.Authored by
Can you, please, rebase this to fresh tree?
git apply -p0 ../../git/D27765.diff error: patch failed: sys/arm64/arm64/locore.S:497 error: sys/arm64/arm64/locore.S: patch does not app
Tested with LINUX_BOOT_ABI, everything works fine.
I removed SOCDEV_VA because it's too difficult to know where the kernel will be loaded so we don't know a good virtual address at compile time.
The main reason fir the change is in perpetration for testing support for 16k pages where we don't have any L1 blocks, just L2 blocks and L3 pages. I also expect with a little work this will help with EARLY_PRINTF without having to modify driver to remove any #if 0s. The user could just change their config to point at the correct uart driver and set SOCDEV_PA to its base address.
This is not entirely true, for every SoC we know where DRAM is located and its maximum size. Same is true for all MMIO peripherals.
Also, having EARLY PRINTF without #if 0s depends on early platform interface support (which is almost impossible, i think) because uart PA (along with VA) is a platform property, not a uart driver property.
Anyway, it's a small enough problem (for me) that shouldn't block any further work.