Hi, > I did a quick test with both ArmVirtQemu and microvm (using this > series but omitting the MdeModulePkg), and I can confirm that not > having a I/O resource window at all seems to work fine if none of the > PCI devices have I/O BARs. > > Gerd, do you remember why exactly this patch is needed? Is it related > to devices that have I/O BARs but don't actually require them to > function correctly?
Well, the difference seem to be pcie root ports. When plugging my virtio device into the root bus everything is fine: PCI Bus First Scanning PciBus: Discovered PCI @ [00|00|00] PciBus: Discovered PCI @ [00|01|00] BAR[1]: Type = Mem32; Alignment = 0xFFF; Length = 0x1000; Offset = 0x14 BAR[4]: Type = PMem64; Alignment = 0x3FFF; Length = 0x4000; Offset = 0x20 [ ... ] PciHostBridge: NotifyPhase (AllocateResources) RootBridge: PciRoot(0x0) Mem64: Base/Length/Alignment = 6000000000/100000/FFFFF - Success Mem: Base/Length/Alignment = C0000000/100000/FFFFF - Success PciBus: HostBridge->NotifyPhase(AllocateResources) - Success When plugging the virtio device into a pcie root port it doesn't work and the log looks like this: PCI Bus First Scanning PciBus: Discovered PCI @ [00|00|00] PciBus: Discovered PPB @ [00|08|00] Padding: Type = Mem32; Alignment = 0x1FFFFF; Length = 0x200000 Padding: Type = Io; Alignment = 0x1FF; Length = 0x200 BAR[0]: Type = Mem32; Alignment = 0xFFF; Length = 0x1000; Offset = 0x10 PciBus: Discovered PCI @ [01|00|00] BAR[1]: Type = Mem32; Alignment = 0xFFF; Length = 0x1000; Offset = 0x14 BAR[4]: Type = PMem64; Alignment = 0x3FFF; Length = 0x4000; Offset = 0x20 [ ... ] PciHostBridge: NotifyPhase (AllocateResources) RootBridge: PciRoot(0x0) Mem: Base/Length/Alignment = C0000000/300000/1FFFFF - Success Mem64: Base/Length/Alignment = 6000000000/100000/FFFFF - Success I/O: Base/Length/Alignment = FFFFFFFFFFFFFFFF/1000/FFF - Out Of Resource! [ ... ] PciHostBridge: NotifyPhase (AllocateResources) RootBridge: PciRoot(0x0) Mem64: Base/Length/Alignment = 6000000000/100000/FFFFF - Success Mem: Base/Length/Alignment = C0000000/200000/FFFFF - Success I/O: Base/Length/Alignment = FFFFFFFFFFFFFFFF/0/FFF - Out Of Resource! So, it's apparently the io window of the pcie root port which causes edk2 try allocate io resources. take care, Gerd -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#90159): https://edk2.groups.io/g/devel/message/90159 Mute This Topic: https://groups.io/mt/91495635/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-