Google
  Web www.spinics.net

Re: HPET regression in 2.6.26 versus 2.6.25 -- found another user with the same regression

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


On Sat, Aug 23, 2008 at 4:58 AM, David Witbrodt <dawitbro@xxxxxxxxxxxxx> wrote:
>
>
>> please send out after booting with hpet=disable
>> lspci -tv
>> lspci -vvxxx
>
> Info attached:

00:14.0 SMBus: ATI Technologies Inc SBx00 SMBus Controller (rev 13)
	Subsystem: Elitegroup Computer Systems Device 2621
	Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
	Region 0: I/O ports at fa00 [size=16]
	Region 1: Memory at 80000000 (32-bit, non-prefetchable) [size=1K]
	Capabilities: [b0] HyperTransport: MSI Mapping Enable- Fixed+
	Kernel driver in use: piix4_smbus
00: 02 10 85 43 03 04 30 02 13 00 05 0c 00 00 80 00
10: 01 fa 00 00 00 00 00 80 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 19 10 21 26
30: 00 00 00 00 b0 00 00 00 00 00 00 00 00 00 00 00
40: d4 3b 00 05 00 00 00 00 0f ff 00 00 00 00 00 00
50: f0 01 f0 0e f0 0f f0 07 11 0b f0 0f 00 00 00 00
60: 01 00 24 00 bf fd de 8f 3f 90 00 00 20 00 00 00
70: 00 01 00 00 08 00 c0 fe ff 6e 00 00 00 00 f0 0f
80: f0 0a f0 0f 00 00 00 00 00 00 00 00 8c 00 00 80
90: 01 fa 00 00 fa de ff 00 00 00 00 00 00 00 00 00
a0: 00 00 ff ff ff ff f0 08 ff fd 12 02 16 7b 20 00
b0: 08 00 02 a8 00 00 00 00 00 00 00 00 f0 0f 08 1a
c0: ff ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: d8 0c 00 00 00 00 44 00 00 00 00 00 aa 00 10 01

it seems kernel update BAR1 from 0xfed00000 to 0x80000000 after it can
not give 0xfed00000 to that device.

please try attached patch, and send out lspci -vvxxxx again.

YH
[PATCH] x86: protect hpet in BAR for one ATI chipset

so avoid kernel don't allocate nre resource for it because it can not allocate the old
address from BIOS.

the same way like some IO APIC address in BAR handling

Signed-off-by: Yinghai Lu <yhlu.kenrel@xxxxxxxxx>

---
 drivers/pci/quirks.c |   16 ++++++++++++++++
 1 file changed, 16 insertions(+)

Index: linux-2.6/drivers/pci/quirks.c
===================================================================
--- linux-2.6.orig/drivers/pci/quirks.c
+++ linux-2.6/drivers/pci/quirks.c
@@ -1918,6 +1918,22 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_B
 			 PCI_DEVICE_ID_NX2_5709S,
 			 quirk_brcm_570x_limit_vpd);
 
+static void __init quirk_hpet_in_bar(struct pci_dev *pdev)
+{
+	int i;
+	unsigned int base, size;
+
+	/* the BAR1 is the location of the HPET...we must
+	 * not touch this, so forcibly insert it into the resource tree */
+	base = pci_resource_start(pdev, 1);
+	size = pci_resource_len(pdev, 1);
+	if (base && size) {
+		insert_resource(&iomem_resource, &pdev->resource[1]);
+		dev_info(&dev->dev, "HPET at %04x-%04x\n", name, base, base + size - 1);
+	}
+}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI, 0x3485, quirk_hpet_in_bar);
+
 #ifdef CONFIG_PCI_MSI
 /* Some chipsets do not support MSI. We cannot easily rely on setting
  * PCI_BUS_FLAGS_NO_MSI in its bus flags because there are actually

[Kernel List]     [Site Home]     [Ethernet Bridging]     [Git]     [IETF Annouce]     [Linux Assembly]     [VLAN]     [Networking]     [Security]     [Bugtraq]     [Rubini]     [Photo]     [Singles Social Netowrking]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Virtualization]     [Linux Security]     [Linux IDE]     [Linux RAID]     [Linux SCSI]     [Linux Wireless]     [DDR & Rambus]     [Free Dating]     [Linux Resources]     [Wireless Reading Device]

Add to Google Powered by Linux