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

Reply via email to