This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

XIO2001: PCI device register write issue

Part Number: XIO2001

Hi,

My customer adopt XIO2001 solution. Now there is an issue as below. What is possible reason? Thanks!

During uboot, they try to write PCI device registers and read back. The read back value shows the write is not successful.

As below code shows, they try to write bar parameter 0X100000 and 0X2000000. When read back, the value is still 0. The PCI device address shows normal(0X120).

bar-64flag =0,PCI Autoconfig: BAR 0, Mem, size=0x1000000, 

------before pciauto_setup_device bar addr[0x10] 64-flag =0

address=0x1000000 bus_lower=0x2000000

------begin to pciauto_setup_device write bar[0x0] value =0x1000000

 

------pciauto_setup_device vendid 0x120 read bar[0] = 0000000000000000

 

bar-64flag =0,PCI Autoconfig: BAR 1, Mem, size=0x2000000, 

------before pciauto_setup_device bar addr[0x14] 64-flag =0

address=0x2000000 bus_lower=0x4000000

------begin to pciauto_setup_device write bar[0x1] value =0x2000000

 

------pciauto_setup_device vendid  0x120 read bar[1] = 0000000000000000

  • Hello,
    I'm not a linux expert but this looks more like a software issue.
    Are they able to bring the XIO2001 up? If so, can you provide the full log?
    Can you provide the schematics for review?
    Regards
  • The XIO2001 is a bridge, so it does not have BARs at offsets 0x10 and 0x14, and 0x120 is not TI's vendor ID. So this must be the registers of some PCI device that is connected to the bridge.

    If 0x0120 is indeed the vendor ID that your device claims to have, then the bridge works correctly, and the problem is with that device, or with uboot.