3

We made a motherboard. A PCIe switch (1 upstream port, 4 downstream ports) is used. Each downstream port directly leads to a PCIe slot.

There is a problem that has been plagued for a long time. The No. 2 slot does not recognize the device and has this problem on multiple motherboards. We checked the power supply and wiring of slot 2 and everything worked fine. And carefully checked the PCB design and layout, slot 2 is no different from other slots. At present, the hardware has not found any doubts, so I wonder if I can get further fault information through the operating system. Can I get the details of the device enumeration by opening some configuration of the operating system or by kernel debugging?

1) I've used UEFI Shell V2.2 to see that the No.2 slot device is online and can be read out the configuration space. However, after entering Windows, the No.2 slot device is still not visible in the device manager. I tried to refresh the device by right-clicking on the device manager and the No.2 slot device appeared! By running the test application, it's found that the board is operating normally.

2) I did a comparative experiment and plugged a Samsung PCIe SSD into slot 2. The device would display properly whether in the EFI shell or in Windows.

lizzoe
  • 51
  • 3
  • 1
    Do you have a custom driver for this device? First check whether the driver is getting called at all. (There must be some log where the driver can record this.) If the vendor id/device id are being read correctly, and the driver is installed properly, then I expect that the driver is called. Then trace what parts of the driver are called, and where it fails, which should lead to whether it is a hardware or driver problem. – prl Sep 09 '19 at 14:55
  • 1
    Thanks for your suggestions. I added log information to the driver's key functions at the entrance and exit, such as DriverEntry, DeviceAdd, and then use the DbgView tool to view the log output when Windows starts. It was found that only the No.1 slot device loaded the driver and the No.2 slot device was not executed. This should prove that the system did not find the No.2 slot when it started. Does this mean that the No.2 slot device is not ready when the system is started, and it needs a longer time to work properly? – lizzoe Sep 11 '19 at 00:11

0 Answers0