* Re: AMD760MPX: bogus chispset ? (was PROBLEM: sound is stutter, sizzle with lasts kernel releases) [not found] <3F0EED9B.4080502@enib.fr> @ 2003-07-11 17:08 ` Alan Cox 2003-07-11 21:04 ` xi 0 siblings, 1 reply; 5+ messages in thread From: Alan Cox @ 2003-07-11 17:08 UTC (permalink / raw) To: xi; +Cc: Linux Kernel Mailing List On Gwe, 2003-07-11 at 18:02, xi wrote: > Now I have done some investigations, and I think I have found the > problem: It has appeared between kernel-2.4.18-pre9 and kernel-2.4.18-rc1 > If I am not wrong, between these two versions, Alan Cox did a change in > drivers/pci/quirks.c and this is this change which cause the problem. As I read the documentation the other change is also required in this situation to avoid a chipset lockup. It might be worth you rechecking the AMD errata docs for 762/768 again to be sure I didnt screw up and there are not newer rules for other revisions. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: AMD760MPX: bogus chispset ? (was PROBLEM: sound is stutter, sizzle with lasts kernel releases) 2003-07-11 17:08 ` AMD760MPX: bogus chispset ? (was PROBLEM: sound is stutter, sizzle with lasts kernel releases) Alan Cox @ 2003-07-11 21:04 ` xi 2003-07-11 21:37 ` Alan Cox 0 siblings, 1 reply; 5+ messages in thread From: xi @ 2003-07-11 21:04 UTC (permalink / raw) To: linux-kernel; +Cc: Alan Cox Alan Cox wrote: > On Gwe, 2003-07-11 at 18:02, xi wrote: > >>Now I have done some investigations, and I think I have found the >>problem: It has appeared between kernel-2.4.18-pre9 and kernel-2.4.18-rc1 >>If I am not wrong, between these two versions, Alan Cox did a change in >>drivers/pci/quirks.c and this is this change which cause the problem. > > > As I read the documentation the other change is also required in this > situation to avoid a chipset lockup. It might be worth you rechecking > the AMD errata docs for 762/768 again to be sure I didnt screw up and > there are not newer rules for other revisions. > Ok, I have rechecked the errata docs. I have not found any recommandation change for PCI compliance configuration registers. And one interesting thing: in the AMD762 datasheet (24462.pdf) page 231 (Recommanded BIOS settings), I can see this: "Numerical Values shown with h or b are preferred settings." ; and AMD recommand this: -> set bits 2 and 1 of register 0x4C to "0b" -> set bits 23 and 3 respectively to "0b" and "1b" I can confirm that these settings works much more better, even if they don't exactly follow PCI specs. And I don't think this is specific to my cards since I have tested others. Furthermore, my AMD762 is revision B1 (just before the last one: C0), and my AMD768 revision is B2, the last one. Would you accept I make a patch which doesn't make any change in these registers at least up to AMD762 revision B1 (ie keeping recommanded values from AMD) ? Or could you propose an other solution ? Regards, Xavier -- E-mail: ctrl.alt.sup@free.fr xizard@chez.com Please no longer use xizard@enib.fr, this e-mail will be removed soon. Homepage: http://xizard.free.fr http://www.chez.com/xizard/ ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: AMD760MPX: bogus chispset ? (was PROBLEM: sound is stutter, sizzle with lasts kernel releases) 2003-07-11 21:04 ` xi @ 2003-07-11 21:37 ` Alan Cox 2003-07-12 5:08 ` [PATCH] " xi 0 siblings, 1 reply; 5+ messages in thread From: Alan Cox @ 2003-07-11 21:37 UTC (permalink / raw) To: xi; +Cc: Linux Kernel Mailing List On Gwe, 2003-07-11 at 22:04, xi wrote: > And one interesting thing: > in the AMD762 datasheet (24462.pdf) page 231 (Recommanded BIOS > settings), I can see this: "Numerical Values shown with h or b are > preferred settings." ; and AMD recommand this: > -> set bits 2 and 1 of register 0x4C to "0b" > -> set bits 23 and 3 respectively to "0b" and "1b" > > I can confirm that these settings works much more better, even if they > don't exactly follow PCI specs. And I don't think this is specific to my > cards since I have tested others. > Furthermore, my AMD762 is revision B1 (just before the last one: C0), > and my AMD768 revision is B2, the last one. > > Would you accept I make a patch which doesn't make any change in these > registers at least up to AMD762 revision B1 (ie keeping recommanded > values from AMD) ? Lets try the AMD recommended settings. My old doc doesnt seem to have those. I'll by happy to trial the patch in -ac and see if it plays up the usual suspects for PCI spec violations (tg3 and i2o) ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] AMD760MPX: bogus chispset ? (was PROBLEM: sound is stutter, sizzle with lasts kernel releases) 2003-07-11 21:37 ` Alan Cox @ 2003-07-12 5:08 ` xi 2003-07-13 8:13 ` Alan Cox 0 siblings, 1 reply; 5+ messages in thread From: xi @ 2003-07-12 5:08 UTC (permalink / raw) To: Alan Cox; +Cc: linux-kernel [-- Attachment #1: Type: text/plain, Size: 1568 bytes --] Alan Cox wrote: > On Gwe, 2003-07-11 at 22:04, xi wrote: > >>And one interesting thing: >>in the AMD762 datasheet (24462.pdf) page 231 (Recommanded BIOS >>settings), I can see this: "Numerical Values shown with h or b are >>preferred settings." ; and AMD recommand this: >>-> set bits 2 and 1 of register 0x4C to "0b" >>-> set bits 23 and 3 respectively to "0b" and "1b" >> >>I can confirm that these settings works much more better, even if they >>don't exactly follow PCI specs. And I don't think this is specific to my >> cards since I have tested others. >>Furthermore, my AMD762 is revision B1 (just before the last one: C0), >>and my AMD768 revision is B2, the last one. >> >>Would you accept I make a patch which doesn't make any change in these >>registers at least up to AMD762 revision B1 (ie keeping recommanded >>values from AMD) ? > > > Lets try the AMD recommended settings. My old doc doesnt seem to have > those. I'll by happy to trial the patch in -ac and see if it plays up > the usual suspects for PCI spec violations (tg3 and i2o) > Ok, I provide two patchs with different behaviour: * patch_AMD762_PCI_compliance_set_by_bios.diff : lets the BIOS decide about PCI configuration * patch_AMD762_PCI_default_AMD_settings.diff : follow AMD recommendations but not PCI specs. Patch are against drivers/pci/quirks.c from 2.4.22-pre4 Regards, Xavier -- E-mail: ctrl.alt.sup@free.fr xizard@chez.com Please no longer use xizard@enib.fr, this e-mail will be removed soon. Homepage: http://xizard.free.fr http://www.chez.com/xizard/ [-- Attachment #2: patch_AMD762_PCI_compliance_set_by_bios.diff --] [-- Type: text/plain, Size: 1411 bytes --] --- quirks_original.c 2003-07-12 01:58:17.000000000 +0000 +++ quirks.c 2003-07-12 04:40:57.000000000 +0000 @@ -464,22 +464,23 @@ * Following the PCI ordering rules is optional on the AMD762. I'm not * sure what the designers were smoking but let's not inhale... * - * To be fair to AMD, it follows the spec by default, its BIOS people - * who turn it off! + * In fact, AMD even recommends to don't follow PCI standards + * in the section "Recommended BIOS settings" of the datasheet */ static void __init quirk_amd_ordering(struct pci_dev *dev) { - u32 pcic; - pci_read_config_dword(dev, 0x4C, &pcic); - if((pcic&6)!=6) + u32 pcic1,pcic2; + + pci_read_config_dword(dev, 0x4C, &pcic1); + pci_read_config_dword(dev, 0x84, &pcic2); + + if((pcic1&6)!=6 || (pcic2&(1<<23))!=(1<<23)) { - pcic |= 6; - printk(KERN_WARNING "BIOS failed to enable PCI standards compliance, fixing this error.\n"); - pci_write_config_dword(dev, 0x4C, pcic); - pci_read_config_dword(dev, 0x84, &pcic); - pcic |= (1<<23); /* Required in this mode */ - pci_write_config_dword(dev, 0x84, pcic); + /* The AMD762 doesn't follow PCI standards, but it seems to work better in this mode ! + In order to be fully PCI standards compliant, we should : + set bit 1 and 2 of register 0x4C ; set bit 23 and clear bit 3 of register 0x84 */ + printk(KERN_WARNING "BIOS didn't enabled PCI standards compliance.\n"); } } [-- Attachment #3: patch_AMD762_PCI_default_AMD_settings.diff --] [-- Type: text/plain, Size: 1146 bytes --] --- quirks_original.c 2003-07-12 01:58:17.000000000 +0000 +++ quirks.c 2003-07-12 04:44:02.000000000 +0000 @@ -464,23 +464,24 @@ * Following the PCI ordering rules is optional on the AMD762. I'm not * sure what the designers were smoking but let's not inhale... * - * To be fair to AMD, it follows the spec by default, its BIOS people - * who turn it off! + * In fact, AMD even recommends to don't follow PCI standards + * in the section "Recommended BIOS settings" of the datasheet */ static void __init quirk_amd_ordering(struct pci_dev *dev) { u32 pcic; + + printk(KERN_WARNING "Setting AMD recommended values for PCI bus. It isn't fully PCI standards compliant\n"); + pci_read_config_dword(dev, 0x4C, &pcic); - if((pcic&6)!=6) - { - pcic |= 6; - printk(KERN_WARNING "BIOS failed to enable PCI standards compliance, fixing this error.\n"); + pcic &= ~((u32)6); pci_write_config_dword(dev, 0x4C, pcic); + pci_read_config_dword(dev, 0x84, &pcic); - pcic |= (1<<23); /* Required in this mode */ + pcic &= ~((u32)(1<<23)); + pcic |= (1<<3); pci_write_config_dword(dev, 0x84, pcic); - } } #ifdef CONFIG_X86_IO_APIC ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] AMD760MPX: bogus chispset ? (was PROBLEM: sound is stutter, sizzle with lasts kernel releases) 2003-07-12 5:08 ` [PATCH] " xi @ 2003-07-13 8:13 ` Alan Cox 0 siblings, 0 replies; 5+ messages in thread From: Alan Cox @ 2003-07-13 8:13 UTC (permalink / raw) To: xi; +Cc: Linux Kernel Mailing List On Sad, 2003-07-12 at 06:08, xi wrote: > * patch_AMD762_PCI_compliance_set_by_bios.diff : lets the BIOS decide > about PCI configuration Breaks i2o with a 1004 BIOS on the ASUS dual athlon setup > > * patch_AMD762_PCI_default_AMD_settings.diff : follow AMD > recommendations but not PCI specs. Looks better ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2003-07-13 8:02 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <3F0EED9B.4080502@enib.fr> 2003-07-11 17:08 ` AMD760MPX: bogus chispset ? (was PROBLEM: sound is stutter, sizzle with lasts kernel releases) Alan Cox 2003-07-11 21:04 ` xi 2003-07-11 21:37 ` Alan Cox 2003-07-12 5:08 ` [PATCH] " xi 2003-07-13 8:13 ` Alan Cox
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).