[coreboot] armv8 mmu limitation?

mturney at codeaurora.org mturney at codeaurora.org
Tue Mar 6 23:17:53 CET 2018


On 2018-03-06 12:57, mturney at codeaurora.org wrote:
> Folks,
> We are working with a device that has 8GB DDR.
> 
> Using the basic mmu_config_range() call, twice, like this:
> 
> 	mmu_config_range((void *)0x080000000, DRAMSIZE, UNCACHED_MEM);
> 	mmu_config_range((void *)0x180000000, DRAMSIZE, UNCACHED_MEM);
> 
> print messages from Coreboot suggest the mmu calls are happy:
> 
> Mapping address range [0000000080000000:0000000180000000) as
> non-cacheable | read-write | non-secure | normal
> Mapping address range [0000000180000000:0000000280000000) as
> non-cacheable | read-write | non-secure | normal
> 
> The debugger is not convinced and believes only 6GB got mapped.

This came back to BITS_PER_VA being hard-coded to 33 which is currently 
being discussed in another thread.
If we change to 34 we see full 8GB mapping that we were expecting.

> 
> I'm guessing tables are overflowing and perhaps granule or page sizes
> need to be changed or?
> As mmu_init() takes no parameters, what mmu options are easily
> configurable within Coreboot?
> Any pointers to correct code to look at is appreciated.
> 
> Cheers,
> T.mike



More information about the coreboot mailing list