[edk2-devel] 2nd OVMF question about why InitRootBridge does not set ResourceAssigned?

Andrew Fish via groups.io afish=apple.com at groups.io
Tue Jul 7 23:08:01 UTC 2020


Laszlo,

Thanks for the background. 

Turns out I was chasing the wrong thing :(. In our tree all MMIO is marked NX and I was talking a page fault. When I tracked it down I realized it was an issue with the EFER MSR not getting the NXE (No-Execute Enable) bit set, so any page table with the NX bit set faults. 

I had a bug in my copy of the DXE IPL that was not calling EnableExecuteDisableBit() so NXE is never set, and that is why I got the page fault. 

Thanks,

Andrew Fish

> On Jul 7, 2020, at 1:21 PM, Laszlo Ersek <lersek at redhat.com> wrote:
> 
> On 07/07/20 21:59, Laszlo Ersek wrote:
> 
>> (Side note: where I say "synthetic", that does not mean "easy to change"
>> at all. Coming up with good 32-bit and 64-bit MMIO apertures for the
>> PciHostBridgeLib instance was an arduous task. Among other things, this
>> originates from the very quirky placement of the 32-bit address ranges
>> on i440fx and q35 that are usable for PCI MMIO. QEMU doesn't dictate the
>> apertures for the root bridges, but if you allocate an MMIO BAR from an
>> inappropriate address range, you're doomed.)
> 
> A key commit regarding the above is 49edde15230a ("OvmfPkg/PlatformPei:
> set 32-bit UC area at PciBase / PciExBarBase (pc/q35)", 2019-06-03).
> 
> It was very difficult to find a 32-bit PCI MMIO aperture, facing any
> random guest RAM size, such that we could mark the aperture in
> PlatformPei as UC with no more than the 8 variable MTRRs that QEMU provides.
> 
> https://bugzilla.tianocore.org/show_bug.cgi?id=1814
> https://bugzilla.tianocore.org/show_bug.cgi?id=1859
> 
> Thanks
> Laszlo
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#62177): https://edk2.groups.io/g/devel/message/62177
Mute This Topic: https://groups.io/mt/75284186/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-





More information about the edk2-devel-archive mailing list