http://bugzilla.kernel.org/show_bug.cgi?id=14337

           Summary: PCI host bridge driver accepts invalid apertures
           Product: ACPI
           Version: 2.5
    Kernel Version: 2.6.32-rc3
          Platform: All
        OS/Version: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: Config-Other
        AssignedTo: acpi_config-ot...@kernel-bugs.osdl.org
        ReportedBy: bjorn.helg...@hp.com
        Regression: No


On x86, we currently ignore PCI host bridge _CRS by default, but booting with
"pci=use_crs" on an HP DL360 G3, BIOS version P31 10/31/2003, ACPI reports
these windows in a PCI host bridge _CRS:

  pci_root PNP0A03:00: host bridge window: [io  0x0000-0x0cff]
  pci_root PNP0A03:00: host bridge window: [io  0x0000-0x2cfe]
  pci_root PNP0A03:00: host bridge window: [io  0x03b0-0x03bb]
  pci_root PNP0A03:00: host bridge window: [io  0x03c0-0x03df]
  pci_root PNP0A03:00: host bridge window: [mem 0xf5d00000-0xf6ffffff]
  pci_root PNP0A03:00: host bridge window: [mem 0x000a0000-0x000bffff]

The bridge has this device behind it:

  pci 0000:00:05.2: reg 10: [io  0x2c00-0x2cff]

This device BAR (0x2c00-0x2cff) doesn't fit in the bridge aperture
(0x0-0x2cfe).  This leads to the following allocation failure and causes PNP to
mistakenly detect a conflict between a motherboard device and the BAR:

  pci 0000:00:05.2: BAR 0: no parent found for device [io  0x2c00-0x2cff]
  pci 0000:00:05.2: BAR 0: can't allocate [io  0x2c00-0x2cff]
  pnp 00:01: resource [io  0x0092] overlaps 0000:00:05.2 BAR 0 [io 
0x0000-0x00ff], disabling
  pnp 00:01: resource [io  0x0010-0x001f] overlaps 0000:00:05.2 BAR 0 [io 
0x0000-0x00ff], disabling

I think the host bridge aperture size reported by _CRS (0x2cff) is invalid. 
The low two bits of PCI I/O BARs are not part of the base address, so I/O
decoders must be aligned on four-byte boundaries, and they must be a multiple
of four bytes in size.

I installed Windows Server 2003 SP1 on this system.  The attached Device
Manager screenshot shows that Windows rounded the size up to a multiple of
four.

This is pretty clearly a BIOS bug, but it would be straightforward to work
around it in Linux.

-- 
Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching the assignee of the bug.

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
acpi-bugzilla mailing list
acpi-bugzilla@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla

Reply via email to