On Sat, Sep 27, 2014 at 06:06:45PM -0400, Gabriel L. Somlo wrote: > Factor out logic to distinguish between Q35 and PIIX4 platforms > into a separate header (OvmfPkg/Include/Library/PciHostBridge.h), > then refer to these macros from all relevant source locations > throughouth OvmfPkg. > > This patch also adds a Q35-specific PIC IRQ routing initialization > function to OvmfPkg/Library/PlatformBdsLib/BdsPlatform.c > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Gabriel Somlo <[email protected]> > ---
First off, please ignore the [01/14] part of the "subject" line, that was nothing more than git outsmarting me (again) :) So, with this patch and Reza's AHCI/SATA patch set, and with the following Q35 command line: bin/qemu-system-x86_64 -enable-kvm -m 2048 -cpu core2duo -smp 4,cores=2 \ -machine q35 -device ide-drive,bus=ide.2,drive=CD \ -drive id=CD,if=none,snapshot=on,file=Fedora-Live-Desktop-x86_64-20-1.iso \ -device isa-applesmc,osk="<apple smc magic string>" \ -netdev user,id=usr0 -device e1000-82545em,netdev=usr0,id=vnet0 \ -usb -device usb-kbd -device usb-mouse \ -monitor stdio \ [ -bios OVMF.fd ] I diff-ed the entire contents of 'dmesg' between instances started without "-bios OVMF.fd" (i.e., using SeaBIOS), and with OVMF. With more detail enclosed at the end of this email, what caught my attention was: + mtrr: your CPUs had inconsistent fixed MTRR settings + mtrr: your CPUs had inconsistent variable MTRR settings + mtrr: your CPUs had inconsistent MTRRdefType settings + mtrr: probably your BIOS does not setup all CPUs. + mtrr: corrected configuration. If I "cat /proc/mtrr" after booting fedora with OVMF, I get reg00: base=0x000000000 ( 0MB), size= 2048MB, count=1: write-back With SeaBIOS, OTOH, it looks like this: reg00: base=0x0c0000000 ( 3072MB), size= 1024MB, count=1: uncachable The other interesting bit was that with OVMF I also get: - e820: reserve RAM buffer [mem 0x0009fc00-0x0009ffff] - e820: reserve RAM buffer [mem 0x7ffde000-0x7fffffff] + pci 0000:00:01.0: no compatible bridge window for [mem 0x80000000-0x81ffffff pref] + pci 0000:00:01.0: no compatible bridge window for [mem 0x82022000-0x82022fff] + pci 0000:00:02.0: no compatible bridge window for [mem 0x82000000-0x8201ffff] + pci 0000:00:1d.7: no compatible bridge window for [mem 0x82021000-0x82021fff] + pci 0000:00:1f.2: no compatible bridge window for [mem 0x82020000-0x82020fff] + e820: reserve RAM buffer [mem 0x7e9ae018-0x7fffffff] + e820: reserve RAM buffer [mem 0x7e9de018-0x7fffffff] + e820: reserve RAM buffer [mem 0x7eb6d000-0x7fffffff] + e820: reserve RAM buffer [mem 0x7edd7000-0x7fffffff] + e820: reserve RAM buffer [mem 0x7ede9000-0x7fffffff] + e820: reserve RAM buffer [mem 0x7fea2000-0x7fffffff] + e820: reserve RAM buffer [mem 0x7ffd0000-0x7fffffff] Anyhow, orthogonally to reviewing my Q35 LNK routing initialization patch, if any of this means anything to you, I'd appreciate any pointers you might come up with. Thanks much, --Gabriel --- bios.dmesg 2014-09-28 16:59:19.005615244 -0400 +++ ovmf.dmesg 2014-09-28 16:59:12.494326354 -0400 ... @@ -169,31 +279,35 @@ Switched APIC routing to physical x2apic. ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1 smpboot: CPU0: Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz (fam: 06, model: 0f, stepping: 0b) Performance Events: unsupported p6 CPU model 15 no PMU driver, software events only. NMI watchdog: disabled (cpu0): hardware events not enabled - kvm-clock: cpu 1, msr 0:7ffc8041, secondary cpu clock + kvm-clock: cpu 1, msr 0:7fffe041, secondary cpu clock KVM setup async PF for cpu 1 - kvm-stealtime: cpu 1, msr 7de8df00 - kvm-clock: cpu 2, msr 0:7ffc8081, secondary cpu clock + kvm-stealtime: cpu 1, msr 7e68df00 + kvm-clock: cpu 2, msr 0:7fffe081, secondary cpu clock KVM setup async PF for cpu 2 - kvm-stealtime: cpu 2, msr 7df0df00 + kvm-stealtime: cpu 2, msr 7e70df00 smpboot: Booting Node 0, Processors #1 #2 #3 OK - kvm-clock: cpu 3, msr 0:7ffc80c1, secondary cpu clock + kvm-clock: cpu 3, msr 0:7fffe0c1, secondary cpu clock Brought up 4 CPUs - smpboot: Total of 4 processors activated (21279.98 BogoMIPS) KVM setup async PF for cpu 3 - kvm-stealtime: cpu 3, msr 7df8df00 + smpboot: Total of 4 processors activated (21279.98 BogoMIPS) + kvm-stealtime: cpu 3, msr 7e78df00 devtmpfs: initialized + PM: Registering ACPI NVS region [mem 0x7ff02000-0x7ff05fff] (16384 bytes) atomic64 test passed for x86-64 platform with CX8 and with SSE - RTC time: 20:47:48, date: 09/28/14 + RTC time: 20:38:30, date: 09/28/14 NET: Registered protocol family 16 ACPI: bus type PCI registered acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5 - PCI: MMCONFIG for domain 0000 [bus 00-ff] at [mem 0xb0000000-0xbfffffff] (base 0xb0000000) - PCI: MMCONFIG at [mem 0xb0000000-0xbfffffff] reserved in E820 PCI: Using configuration type 1 for base access + mtrr: your CPUs had inconsistent fixed MTRR settings + mtrr: your CPUs had inconsistent variable MTRR settings + mtrr: your CPUs had inconsistent MTRRdefType settings + mtrr: probably your BIOS does not setup all CPUs. + mtrr: corrected configuration. bio: create slab <bio-0> at 0 ACPI: Added _OSI(Module Device) ACPI: Added _OSI(Processor Device) ACPI: Added _OSI(3.0 _SCP Extensions) ACPI: Added _OSI(Processor Aggregator Device) ... @@ -267,12 +380,22 @@ usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb PCI: Using ACPI for IRQ routing PCI: pci_cache_line_size set to 64 bytes - e820: reserve RAM buffer [mem 0x0009fc00-0x0009ffff] - e820: reserve RAM buffer [mem 0x7ffde000-0x7fffffff] + pci 0000:00:01.0: no compatible bridge window for [mem 0x80000000-0x81ffffff pref] + pci 0000:00:01.0: no compatible bridge window for [mem 0x82022000-0x82022fff] + pci 0000:00:02.0: no compatible bridge window for [mem 0x82000000-0x8201ffff] + pci 0000:00:1d.7: no compatible bridge window for [mem 0x82021000-0x82021fff] + pci 0000:00:1f.2: no compatible bridge window for [mem 0x82020000-0x82020fff] + e820: reserve RAM buffer [mem 0x7e9ae018-0x7fffffff] + e820: reserve RAM buffer [mem 0x7e9de018-0x7fffffff] + e820: reserve RAM buffer [mem 0x7eb6d000-0x7fffffff] + e820: reserve RAM buffer [mem 0x7edd7000-0x7fffffff] + e820: reserve RAM buffer [mem 0x7ede9000-0x7fffffff] + e820: reserve RAM buffer [mem 0x7fea2000-0x7fffffff] + e820: reserve RAM buffer [mem 0x7ffd0000-0x7fffffff] NetLabel: Initializing NetLabel: domain hash size = 128 NetLabel: protocols = UNLABELED CIPSOv4 NetLabel: unlabeled traffic allowed by default HPET: 3 timers in total, 0 timers will be used for per-cpu timer ... @@ -289,14 +412,23 @@ pnp 00:05: Plug and Play ACPI device, IDs PNP0501 (active) pnp 00:06: Plug and Play ACPI device, IDs PNP0103 (active) pnp 00:07: Plug and Play ACPI device, IDs PNP0a06 (active) pnp: PnP ACPI: found 8 devices ACPI: bus type PNP unregistered + pci 0000:00:01.0: no compatible bridge window for [mem 0xffff0000-0xffffffff pref] + pci 0000:00:02.0: no compatible bridge window for [mem 0xfffc0000-0xffffffff pref] + pci 0000:00:01.0: BAR 0: assigned [mem 0xb0000000-0xb1ffffff pref] + pci 0000:00:02.0: BAR 6: assigned [mem 0xb2000000-0xb203ffff pref] + pci 0000:00:02.0: BAR 0: assigned [mem 0xb2040000-0xb205ffff] + pci 0000:00:01.0: BAR 6: assigned [mem 0xb2060000-0xb206ffff pref] + pci 0000:00:01.0: BAR 1: assigned [mem 0xb2070000-0xb2070fff] + pci 0000:00:1d.7: BAR 0: assigned [mem 0xb2071000-0xb2071fff] + pci 0000:00:1f.2: BAR 5: assigned [mem 0xb2072000-0xb2072fff] pci_bus 0000:00: resource 4 [io 0x0000-0x0cd7] pci_bus 0000:00: resource 5 [io 0x0d00-0xffff] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff] - pci_bus 0000:00: resource 7 [mem 0xc0000000-0xfebfffff] + pci_bus 0000:00: resource 7 [mem 0xb0000000-0xfebfffff] NET: Registered protocol family 2 TCP established hash table entries: 16384 (order: 6, 262144 bytes) TCP bind hash table entries: 16384 (order: 6, 262144 bytes) TCP: Hash tables configured (established 16384 bind 16384) TCP: reno registered ------------------------------------------------------------------------------ Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk _______________________________________________ edk2-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/edk2-devel
