This reduces the memory mapped to be closer to the minimal memory
needed to enable the MMU.
Sponsored by: Innovate UK
Differential D27765
Use L2 blocks when in the identity map andrew on Dec 24 2020, 3:56 PM. Authored by Tags None Referenced Files
Details
Diff Detail
Event TimelineComment Actions I've tested the normal boot and with SOCDEV_PA set (but not used). I haven't tested any of the LINUX_BOOT_ABI paths. Comment Actions 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 Comment Actions Tested with LINUX_BOOT_ABI, everything works fine. Comment Actions 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. Comment Actions 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. |