Jordan Justen [mailto:[email protected]] wrote:
]On 2014-11-13 12:12:54, Gabriel L. Somlo wrote: ]> New in v.6: ]> ]> - ASSERT(FALSE) in default branch of HostBridgeDevID switch followed ]> by return statement to suppress unused variable gcc warnings ]> (Jordan, thanks for being OK with that, I really believe if we ever ]> do end up with a dev ID other than PIIX4 or Q35 we do want to be ]> made aware of it! :) ]> ]> - patch 9/9 (dynamic IRQ Line initialization) now works on non-root ]> buses and pci-to-pci bridges, 100% matching SeaBIOS behavior. ] ]I committed 1-8. For 9, I thought I might let it simmer to see if ]it gets more review. ] ]By the way. Did you ever notice an OS that had a problem if these ]weren't set? I was thinking that the ACPI information generally ]provides what the OS needs for int line routing. The PCI config space Interrupt Line register is used for PIC mode and not for APIC mode. That is why it is not usually important with modern operating systems. But Linux can be forced into PIC mode by booting with grub option 'noapic'. In PIC mode, an OS will first look for ACPI table _PRT (PCI Routing Table) to get the interrupt routing. If _PRT is missing or incorrect, the OS can look at the MP table, $PIR table, or PCI config space interrupt line registers. A modern BIOS doesn't build MP table or $PIR table, so that leaves the interrupt routing register as the sole source of PIC mode interrupt routing information. To demonstrate, boot a modern version of Linux with grub options: acpi=off noapic. This will force the OS into PIC mode and force it to get PIC mode interrupt routing information from the config space interrupt line register. If the line register contains zero, the dmesg output will contain a message such as: can't find IRQ for PCI INT A; please try using pci=biosirq If the interrupt line register is incorrect, the device will fail or have poor performance. Other software that uses interrupt line register: KolibriOS, at least some versions. Broadcom's DOS mode utility b57Diag, in the interrupt test. Thanks, Scott ]> - updated https://github.com/gsomlo/edk2 ] ]Thanks! I appreciate just having to git fetch to get the patches. ] ]My only recommendation is that you might consider using a branch named ]based on the series. ] ]-Jordan ] > Gabriel L. Somlo (9): > OvmfPkg: Factor out platform detection (q35 vs. piix4) > OvmfPkg: PlatformPei: Platform specific ACPI power management setup > OvmfPkg: Add PCD for Host Bridge dev. ID (PcdOvmfHostBridgePciDevId) > OvmfPkg: CsmSupportLib: Set/use platform specific legacy interrupt > device > OvmfPkg: AcpiTimerLib: Split into multiple phase-specific instances > OvmfPkg: AcpiTimerLib: Use global variable during PEI_CORE and PEIM > OvmfPkg: AcpiTimerLib: Switch additional stages to PCD-based Dxe > instance > OvmfPkg: PlatformBdsLib: Platform dependent PCI/IRQ initialization > OvmfPkg: PlatformBdsLib: Dynamic PCI Interrupt Line register setup > > OvmfPkg/Csm/CsmSupportLib/CsmSupportLib.inf | 3 + > OvmfPkg/Csm/CsmSupportLib/LegacyInterrupt.c | 28 ++- > OvmfPkg/Csm/CsmSupportLib/LegacyInterrupt.h | 6 +- > OvmfPkg/Include/OvmfPlatforms.h | 49 ++++++ > OvmfPkg/Library/AcpiTimerLib/AcpiTimerLib.c | 147 +--------------- > OvmfPkg/Library/AcpiTimerLib/AcpiTimerLib.h | 29 ++++ > OvmfPkg/Library/AcpiTimerLib/AcpiTimerLib.inf | 44 ----- > OvmfPkg/Library/AcpiTimerLib/BaseAcpiTimerLib.c | 113 ++++++++++++ > OvmfPkg/Library/AcpiTimerLib/BaseAcpiTimerLib.inf | 40 +++++ > OvmfPkg/Library/AcpiTimerLib/BaseRomAcpiTimerLib.c | 130 ++++++++++++++ > .../Library/AcpiTimerLib/BaseRomAcpiTimerLib.inf | 39 +++++ > OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.c | 99 +++++++++++ > OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf | 40 +++++ > OvmfPkg/Library/PlatformBdsLib/BdsPlatform.c | 192 > +++++++++++++++------ > OvmfPkg/Library/PlatformBdsLib/BdsPlatform.h | 2 + > OvmfPkg/Library/PlatformBdsLib/PlatformBdsLib.inf | 1 + > OvmfPkg/OvmfPkg.dec | 1 + > OvmfPkg/OvmfPkgIa32.dsc | 37 ++-- > OvmfPkg/OvmfPkgIa32X64.dsc | 37 ++-- > OvmfPkg/OvmfPkgX64.dsc | 37 ++-- > OvmfPkg/PlatformPei/Platform.c | 44 +++-- > OvmfPkg/PlatformPei/PlatformPei.inf | 1 + > 22 files changed, 819 insertions(+), 300 deletions(-) > create mode 100644 OvmfPkg/Include/OvmfPlatforms.h > create mode 100644 OvmfPkg/Library/AcpiTimerLib/AcpiTimerLib.h > delete mode 100644 OvmfPkg/Library/AcpiTimerLib/AcpiTimerLib.inf > create mode 100644 OvmfPkg/Library/AcpiTimerLib/BaseAcpiTimerLib.c > create mode 100644 OvmfPkg/Library/AcpiTimerLib/BaseAcpiTimerLib.inf > create mode 100644 OvmfPkg/Library/AcpiTimerLib/BaseRomAcpiTimerLib.c > create mode 100644 OvmfPkg/Library/AcpiTimerLib/BaseRomAcpiTimerLib.inf > create mode 100644 OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.c > create mode 100644 OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf > > -- > 1.9.3 > > > ------------------------------------------------------------------------------ > Comprehensive Server Monitoring with Site24x7. > Monitor 10 servers for $9/Month. > Get alerted through email, SMS, voice calls or mobile push notifications. > Take corrective actions from your mobile device. > http://pubads.g.doubleclick.net/gampad/clk?id=154624111&iu=/4140/ostg.clktrk > _______________________________________________ > edk2-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/edk2-devel ------------------------------------------------------------------------------ Comprehensive Server Monitoring with Site24x7. Monitor 10 servers for $9/Month. Get alerted through email, SMS, voice calls or mobile push notifications. Take corrective actions from your mobile device. http://pubads.g.doubleclick.net/gampad/clk?id=154624111&iu=/4140/ostg.clktrk _______________________________________________ edk2-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/edk2-devel ------------------------------------------------------------------------------ Comprehensive Server Monitoring with Site24x7. Monitor 10 servers for $9/Month. Get alerted through email, SMS, voice calls or mobile push notifications. Take corrective actions from your mobile device. http://pubads.g.doubleclick.net/gampad/clk?id=154624111&iu=/4140/ostg.clktrk _______________________________________________ edk2-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/edk2-devel
