Re: Fwd: [Bug 203485] New: PCI can't map correct memory resource if the BAR is 64-bit and then leads to system hang during booting up

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

 



On Wed, May 15, 2019 at 02:26:13PM -0500, Bjorn Helgaas wrote:
> I should have forwarded this to the list earlier.  Maybe somebody
> wants to work on this?
> 
> I *think* the problem is:
> 
>   - BIOS sets MTRR for 0x40_00000000-0x5f_ffffffff to be write-combining (WC)
>   - That covers part of this PCI aperture: root bus resource [mem
> 0x40_00000000-0x7f_ffffffff window]
>   - That aperture includes a frame buffer: pci 0000:00:02.0: reg 0x18:
> [mem 0x40_00000000-0x40_0fffffff 64bit pref]
>   - Linux assigned an LPSS BAR to the WC area: pci 0000:00:15.0: BAR
> 0: assigned [mem 0x40_10000000-0x40_10000fff 64bit]
>   - The LPSS device doesn't work if MMIO accesses to it are combined via WC
> 
> I'm not an x86/MTRR/PAT expert, but I think we should be able to make
> this work correctly by changing that MTRR from WC to UC (I don't know
> if there are BIOS/OS interface implications with this), or maybe using
> PAT to override the MTRR WC setting to be UC for part or all of that
> aperture.  The frame buffer driver should be smart enough to request
> WC if it wants it.

The window for the PCI resources, provided by PCI Root Bridge, may be split to
many parts as described by _CRS in ACPI, and BIOS should be consistent in
providing both.

I believe there is no issue with Linux in current state. Be "smart" here might
give a downside(s) like reducing coverage to test exactly something as above
BIOS issue.

My 2 cents.

-- 
With Best Regards,
Andy Shevchenko





[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