From: "Yinghai Lu" <yhlu.kernel@gmail.com>
To: "Rufus & Azrael" <rufus-azrael@numericable.fr>
Cc: "Linux-kernel Mailing List" <linux-kernel@vger.kernel.org>,
"Yinghai Lu" <yhlu.kenrel@gmail.com>,
"Ingo Molnar" <mingo@elte.hu>,
"David Witbrodt" <dawitbro@sbcglobal.net>
Subject: Re: HPET regression in 2.6.26 versus 2.6.25 -- found another user with the same regression
Date: Sat, 23 Aug 2008 12:17:58 -0700 [thread overview]
Message-ID: <86802c440808231217q3eebc738v863170b178bb03ab@mail.gmail.com> (raw)
In-Reply-To: <48B0563B.2040207@numericable.fr>
[-- Attachment #1: Type: text/plain, Size: 4251 bytes --]
On Sat, Aug 23, 2008 at 11:26 AM, Rufus & Azrael
<rufus-azrael@numericable.fr> wrote:
>>
>> On Sat, Aug 23, 2008 at 4:58 AM, David Witbrodt<dawitbro@sbcglobal.net>
>> 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@gmail.com>
>>
>> ---
>> 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
>
> Hi Yinghai,
>
>
> Your patch seems to be broken, see :
>
>> CC drivers/pci/quirks.o
>> drivers/pci/quirks.c: In function 'quirk_hpet_in_bar':
>> drivers/pci/quirks.c:1804: erreur: 'dev' undeclared (first use in this
>> function)
>> drivers/pci/quirks.c:1804: erreur: (Each undeclared identifier is reported
>> only once
>> drivers/pci/quirks.c:1804: erreur: for each function it appears in.)
>> drivers/pci/quirks.c:1804: erreur: 'name' undeclared (first use in this
>> function)
>> drivers/pci/quirks.c:1804: attention : trop d'arguments pour le format
>> drivers/pci/quirks.c:1795: attention : unused variable 'i'
>> make[2]: *** [drivers/pci/quirks.o] Erreur 1
>
please check v2.
YH
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: hpet_in_bar1_v2.patch --]
[-- Type: text/x-patch; name=hpet_in_bar1_v2.patch, Size: 1352 bytes --]
[PATCH] x86: protect hpet in BAR for one ATI chipset v2
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@gmail.com>
---
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;
+ u64 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(&pdev->dev, "HPET at %08llx-%08llx\n", 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
next prev parent reply other threads:[~2008-08-23 19:18 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-23 18:26 Rufus & Azrael
2008-08-23 19:17 ` Yinghai Lu [this message]
2008-08-23 19:40 ` Rufus & Azrael
2008-08-23 20:10 ` Yinghai Lu
2008-08-23 20:15 ` Rufus & Azrael
2008-08-23 20:28 ` Yinghai Lu
2008-08-23 20:33 ` Rufus & Azrael
2008-08-23 20:35 ` Yinghai Lu
2008-08-23 20:36 ` Rufus & Azrael
2008-08-23 20:45 ` Yinghai Lu
2008-08-23 21:05 ` Yinghai Lu
2008-08-28 22:52 ` Jordan Crouse
2008-09-12 17:39 ` Andreas Herrmann
2008-09-12 17:45 ` Jordan Crouse
2008-09-14 16:25 ` Ingo Molnar
-- strict thread matches above, loose matches on Subject: below --
2008-08-26 15:25 David Witbrodt
2008-08-26 12:58 David Witbrodt
2008-08-26 13:28 ` Ingo Molnar
2008-08-25 13:39 David Witbrodt
2008-08-25 17:24 ` Yinghai Lu
2008-08-25 17:28 ` Yinghai Lu
2008-08-25 3:06 David Witbrodt
2008-08-25 2:00 David Witbrodt
2008-08-25 2:37 ` Yinghai Lu
2008-08-25 4:41 ` Yinghai Lu
2008-08-25 6:27 ` Ingo Molnar
2008-08-25 6:40 ` Yinghai Lu
2008-08-25 7:31 ` Ingo Molnar
2008-08-25 8:00 ` Yinghai Lu
2008-08-27 22:41 ` Jesse Barnes
2008-08-27 23:23 ` Yinghai Lu
2008-08-27 23:42 ` Jesse Barnes
2008-08-24 13:05 David Witbrodt
2008-08-24 19:29 ` Yinghai Lu
2008-08-24 22:48 ` Yinghai Lu
2008-08-24 2:39 David Witbrodt
2008-08-24 3:44 ` Yinghai Lu
2008-08-23 23:42 David Witbrodt
2008-08-24 2:05 ` Yinghai Lu
2008-08-23 19:47 David Witbrodt
2008-08-23 20:12 ` Yinghai Lu
2008-08-23 20:51 ` Yinghai Lu
2008-08-23 19:29 David Witbrodt
2008-08-23 16:44 David Witbrodt
2008-08-23 16:32 David Witbrodt
2008-08-23 15:42 David Witbrodt
2008-08-23 15:55 ` Ingo Molnar
2008-08-23 11:58 David Witbrodt
2008-08-23 13:36 ` Ingo Molnar
2008-08-23 15:03 ` Ingo Molnar
2008-08-23 17:51 ` Yinghai Lu
2008-08-23 11:42 David Witbrodt
2008-08-23 2:25 David Witbrodt
2008-08-23 5:41 ` Yinghai Lu
2008-08-23 6:56 ` Yinghai Lu
2008-08-22 1:24 David Witbrodt
2008-08-21 16:53 David Witbrodt
2008-08-21 17:57 ` Yinghai Lu
2008-08-21 14:09 David Witbrodt
2008-08-21 15:33 ` Yinghai Lu
2008-08-21 13:33 David Witbrodt
2008-08-21 4:07 David Witbrodt
2008-08-21 6:42 ` Yinghai Lu
2008-08-21 7:04 ` Ilpo Järvinen
2008-08-21 2:48 David Witbrodt
2008-08-20 17:42 David Witbrodt
2008-08-20 17:58 ` Yinghai Lu
2008-08-21 2:02 ` Yinghai Lu
2008-08-20 16:44 David Witbrodt
2008-08-20 14:32 David Witbrodt
2008-08-20 14:49 ` Ingo Molnar
2008-08-20 14:08 David Witbrodt
2008-08-20 4:51 David Witbrodt
2008-08-20 5:21 ` Yinghai Lu
2008-08-20 7:51 ` Bill Fink
2008-08-20 8:02 ` Yinghai Lu
2008-08-20 9:15 ` Ingo Molnar
2008-08-20 9:31 ` Yinghai Lu
2008-08-20 9:36 ` Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=86802c440808231217q3eebc738v863170b178bb03ab@mail.gmail.com \
--to=yhlu.kernel@gmail.com \
--cc=dawitbro@sbcglobal.net \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rufus-azrael@numericable.fr \
--cc=yhlu.kenrel@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®