Re: PCIe x4 cards not detected on Z370 mainboards

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

 



On Mon, Mar 26, 2018 at 05:12:52PM +0200, Wolfgang Denk wrote:
> In message <20180326135235.GA221217@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> you wrote:
> >
> > P.S. https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface
> > has a little interesting background on UEFI/CSM.
> 
> Thanks for the pointer.
> 
> I start wondering if the mainboard / BIOS vendors stop supporting
> such older hardware, if such support could be re-added in Linux?
> OK, obviously not for the boot device, but...
> 
> In U-Boot we have an x86 emulator to be able to initialize the
> on-board BIOS on (at least some) graphics cards so you can use these
> on ARM or Power architecture systems.  Do we really have to add
> similar stuff to Linux to support legacy hardware?
> 
> Would that even work?

On the MSI Z370 Tomahawk and the Gigabyte Z270X Ultra Gaming systems,
it looks like you're using what the BIOS designates as "Slot #1",
which is below an Intel Root Port (00:01.0 in both cases).  When the
SAS3444E is in that slot, we don't even see the Root Port itself.  To
fix that would require Linux to have chipset-specific knowledge about
how to enable that Root Port.  I guess it's conceivable that could be
done, but I don't know if the information required is public.  I
assume this would be controlled by some MSR or other Intel-specific
knob.

On the Gigabyte AB350 Gaming system, you're using "Slot #1" (this
comes from the Slot Capabilities register and may not match any
silk-screened labels on the board).  This is below an AMD PCIe switch,
where 04:04.0 is the Downstream Port leading to that slot.  When the
SAS3444E is in the slot, we do see the 04:04.0 Downstream Port, so we
*should* still be able to see the SAS device.

This is now all in the PCIe domain so the BIOS should be pretty much
out of the picture, and I can't explain why we don't see the SAS3444E
device.

On that system, you could try something like this to reset the
SAS3444E device and try to rescan the bus:

  # setpci -s04:04.0 BRIDGE_CONTROL.w=0x40
  # sleep 1
  # setpci -s04:04.0 BRIDGE_CONTROL.w=0x00
  # sleep 10
  # echo 1 > /sys/bus/pci/rescan

Check the dmesg log afterwards to see if anything happened.



[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