Re: [patch 4/5] pci-quirks: unhide 'Overflow' device on i828{6,7}5P/PE chipsets

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

 



On Saturday 10 January 2009 06:21:38 am Michał Mirosław wrote:
> On Fri, Jan 09, 2009 at 01:40:02PM -0800, Jesse Barnes wrote:
> > On Friday, January 9, 2009 12:26 pm akpm@xxxxxxxxxxxxxxxxxxxx wrote:
> > > From: Michal Miroslaw <mirq-linux@xxxxxxxxxxxx>
> > > As I found out from EDAC driver sources for i82875P some BIOSes for
> > > i82875P/PE hide 'overflow' device 6.  The same thing happens for
> > > i82865P/PE chipsets.
> > >
> > > After testing this patch for couple of days on my laptop (i82856P) it
> > > looks like something is resetting device 0 (MCH) config register 0xF4 to
> > > zero and effectively disabling the device again.  The delay looks random
> > > to me.  I can easily update the register using 'hexedit
> > > /sys/bus/pci/devices/0000\:00\:00.0/config' and see correct values in
> > > lspci output afterwards.
> > This one already got a NAK until Michal can figure out a way to prevent the 
> > SMM code on his machine from hiding this device periodically.
> 
> I looked at it again and it turns out that actually nothing is touching
> this register after bootup. The problem lies in ACPI PNP code from my BIOS
> it accesses one register from MCH overflow device (installed memory size)
> and disables it after access. There are no other references to DEV6 in
> the DSDT disassembly. The quick fix for me is to just remove accesses to
> DEV6 bit from DSDT.

Changing the DSDT doesn't work for mainline, of course.  We have to
run with the standard BIOS.

> A better workaround would be a hook after ACPI PNP 
> resource discovery phase.

In general, _CRS can be evaluated at any time, not just at boot-time
when PNP discovers things.

> Maybe EDAC guys have some more examples of what 
> happens on 875P chipsets where the DEV6 is disabled?
> 
> ---snip---
>         Device (PCI0)
>         {  
> [...]
>             OperationRegion (REGS, PCI_Config, 0x40, 0xC0)
>             Field (REGS, ByteAcc, NoLock, Preserve)
>             {
>                         Offset (0xB4),
>                     ,   1,
>                 DEV6,   1
>             }
> [...]
>             Method (_CRS, 0, Serialized)
>             {   
> [...]
>                 CreateDWordField (RSRC, \_SB.PCI0._Y00._MIN, BTMN)
>                 Store (One, DEV6)
>                 Multiply (0x04000000, DRB7, BTMN)
>                 Store (Zero, DEV6)
> [...]
> ---snip---
> 
> Best Regards,
> Michał Mirosław
> --
> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux