OSDev.org https://forum.osdev.org/ |
|
Handling 64bit MMIO BAR in 32bit OS https://forum.osdev.org/viewtopic.php?f=1&t=56603 |
Page 1 of 1 |
Author: | prajwal [ Sun Nov 27, 2022 4:01 am ] |
Post subject: | Handling 64bit MMIO BAR in 32bit OS |
Hi, For my OS dev, I use QEMU and TianoCore OVMF (both 32bit & 64bit - downloaded from sourceforge. On QEMU, my OS works fine with both 32bit OVMF and 64bit OVMF while my OS itself is a 32bit protected mode OS (developed for x86 platform) I recently decided to locally build and use the latest stable tag of OVMF from: https://github.com/tianocore/edk2.git I was able to build 3 different variants - OvmfIa32, Ovmf3264 and OvmfX64 My OS works fine when using OvmfIa32, however when using Ovmf3264, the XHCI controller initialization in my OS fails because the BAR address is a 64 bit address while I can only map 32bit address Is it correct for the firmware to assign 64bit BAR to a PCI device while loading a 32bit OS ? If so, how to handle this scenario ? (b/w the problem doesn't happen on my laptop that runs on i7 processor) Thanks Prajwal |
Author: | 8infy [ Sun Nov 27, 2022 6:01 am ] |
Post subject: | Re: Handling 64bit MMIO BAR in 32bit OS |
prajwal wrote: Hi, For my OS dev, I use QEMU and TianoCore OVMF (both 32bit & 64bit - downloaded from sourceforge. On QEMU, my OS works fine with both 32bit OVMF and 64bit OVMF while my OS itself is a 32bit protected mode OS (developed for x86 platform) I recently decided to locally build and use the latest stable tag of OVMF from: https://github.com/tianocore/edk2.git I was able to build 3 different variants - OvmfIa32, Ovmf3264 and OvmfX64 My OS works fine when using OvmfIa32, however when using Ovmf3264, the XHCI controller initialization in my OS fails because the BAR address is a 64 bit address while I can only map 32bit address Is it correct for the firmware to assign 64bit BAR to a PCI device while loading a 32bit OS ? If so, how to handle this scenario ? (b/w the problem doesn't happen on my laptop that runs on i7 processor) Thanks Prajwal Simple, don't support non-PAE 32 bit. Problem solved. This is only < 2000 hardware anyways. |
Author: | iansjack [ Sun Nov 27, 2022 6:37 am ] |
Post subject: | Re: Handling 64bit MMIO BAR in 32bit OS |
Exactly. A computer that is 32-bit only won't have a 64-bit UEFI. |
Author: | prajwal [ Sun Nov 27, 2022 6:40 am ] |
Post subject: | Re: Handling 64bit MMIO BAR in 32bit OS |
Is there way to configure OVMF to assign only 32bit BAR to PCI devices ? Wouldn't it be correct for OVMF to do that by default to make it compatible for both 32bit and 64bit OS to run - particularly when it is built with config to support both IA32 and X64 ARCH. |
Author: | iansjack [ Sun Nov 27, 2022 8:41 am ] |
Post subject: | Re: Handling 64bit MMIO BAR in 32bit OS |
If you are using the 64 bit OVMF you must have a 64-bit capable processor. So, even if your OS is 32-bit, you can use PAE to access 64-bit addresses. |
Author: | prajwal [ Mon Nov 28, 2022 5:12 am ] |
Post subject: | Re: Handling 64bit MMIO BAR in 32bit OS |
Got it! Thanks for clarifying. |
Page 1 of 1 | All times are UTC - 6 hours |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |