[coreboot] About Paging, Realmode and what is going on

Aaron Durbin adurbin at google.com
Wed Aug 2 21:43:16 CEST 2017


On Wed, Aug 2, 2017 at 1:36 PM, ron minnich <rminnich at gmail.com> wrote:
>
>
> On Wed, Aug 2, 2017 at 12:08 PM Zoran Stojsavljevic
> <zoran.stojsavljevic at gmail.com> wrote:
>>
>>
>>
>> So, turning on the Virtual Mode (paging ON), you'll also imply that
>> Coreboot will initialize and use MMU, don't you?
>
>
> sure.
>
>>
>>
>> Am I correct, or you can use paging without MMU?!
>
>
> MMU must be on.
>
>>
>> I doubt that, perhaps. So, then, I would like to see this code in Coreboot
>> where MMU is initialized. And how it is initialized (maybe there is a some
>> over-simplified mode of operation using 2MB pages).
>
>
> yep.
>
>>
>>
>> And my question is: what for? Or I did not get the idea... Who really
>> needs to use paging in boot-loaders? Even INTEL, which (on purpose) makes
>> things way over-dimensioned and over-complicated, does NOT use paging in
>> UEFI BIOSes, so far???
>>
>
> it's trivial to turn on paging. In harvey I've got it down to 160 lines,
> including comments and white space. I made it much more compact in my CL
> from 1/2014.
>
> If you turn on paging you can capture null pointer derefs, and all other out
> of range address references. And relocatable modules are much easier..
>
> My question is, why not do it? I don't see any harm. All the other platforms
> in coreboot use paging. What's so special about x86 that it should not use
> paging?

You can't use it for CAR so that sorta throws out romstage and before.
It's up to the implementation of how CAR works within the hierarchy,
but with hardware page walkers that pull things through the cache
things can go badly. So then you could enable paging for ramstage.
Need to locate storage for the page tables, but that's not an
impossible thing either.

>
> ron
>
> --
> coreboot mailing list: coreboot at coreboot.org
> https://mail.coreboot.org/mailman/listinfo/coreboot



More information about the coreboot mailing list