[PATCH 0/8] pci: pci_mvebu: Fix access to config space and PCIe Root Port

Stefan Roese sr at denx.de
Wed Nov 3 08:46:40 CET 2021


On 22.10.21 16:22, Pali Rohár wrote:
> This patch series fixes access to config space and fixes issues with the
> mysterious "Memory controller" PCI device (which is PCIe Root Port).
> 
> Tested on Armada 385 Turris Omnia device which has 3 mPCIe slots.
> PCIe Root Port device is available for each slot on separate bus and has
> PCI Bridge class code as required by PCIe base specifications.
> 
> => pci 0
> Scanning PCI devices on bus 0
> BusDevFun  VendorId   DeviceId   Device Class       Sub-Class
> _____________________________________________________________
> 00.00.00   0x11ab     0x6820     Bridge device           0x04
> => pci 1
> Scanning PCI devices on bus 1
> BusDevFun  VendorId   DeviceId   Device Class       Sub-Class
> _____________________________________________________________
> 01.00.00   0x168c     0x003c     Network controller      0x80
> => pci 2
> Scanning PCI devices on bus 2
> BusDevFun  VendorId   DeviceId   Device Class       Sub-Class
> _____________________________________________________________
> 02.00.00   0x11ab     0x6820     Bridge device           0x04
> => pci 3
> Scanning PCI devices on bus 3
> BusDevFun  VendorId   DeviceId   Device Class       Sub-Class
> _____________________________________________________________
> 03.00.00   0x168c     0x003c     Network controller      0x80
> => pci 4
> Scanning PCI devices on bus 4
> BusDevFun  VendorId   DeviceId   Device Class       Sub-Class
> _____________________________________________________________
> 04.00.00   0x11ab     0x6820     Bridge device           0x04
> => pci 5
> Scanning PCI devices on bus 5
> BusDevFun  VendorId   DeviceId   Device Class       Sub-Class
> _____________________________________________________________
> 05.00.00   0x168c     0x002e     Network controller      0x80
> => pci 6
> No such bus
> =>
> 
> U-Boot command "pci display.b 0.0.0 0 200" will display config space of
> the first PCIe Root Port device with the Type 1 PCI header as required by
> PCIe base specification.
> 
> => pci display.b 0.0.0 0 200
> 00000000: ab 11 20 68 07 00 10 00 04 00 04 06 00 00 01 00
> 00000010: 00 00 00 00 00 00 00 00 00 01 01 00 01 f1 00 00
> 00000020: 00 c0 20 c0 01 10 01 00 00 00 00 00 00 00 00 00
> 00000030: 10 f1 0f f1 40 00 00 00 00 00 00 00 00 01 00 00
> 00000040: 01 50 03 06 00 00 00 00 00 00 00 00 00 00 00 00
> 00000050: 05 60 80 00 00 00 00 00 00 00 00 00 00 00 00 00
> 00000060: 10 00 42 00 80 80 00 00 00 20 00 00 12 ac 07 00
> 00000070: 00 00 11 10 00 00 00 00 00 00 40 00 00 00 00 00
> 00000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 00000090: 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 000000a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 000000b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 000000c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 000000d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 000000e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 000000f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 00000100: 01 00 01 00 00 00 00 00 00 00 00 00 10 00 06 00
> 00000110: 00 00 00 00 00 20 00 00 00 00 00 00 01 00 00 4a
> 00000120: 04 00 00 01 00 01 08 01 02 80 00 00 00 00 00 00
> 00000130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 00000140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 00000150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 00000160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 00000170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 00000180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 00000190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 000001a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 000001b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 000001c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 000001d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 000001e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 000001f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 
> Pali Rohár (8):
>    pci: pci_mvebu: Fix write_config() with PCI_SIZE_8 or PCI_SIZE_16
>    pci: pci_mvebu: Fix read_config() with PCI_SIZE_8 or PCI_SIZE_16
>    pci: pci_mvebu: Properly configure and use PCI Bridge (PCIe Root Port)
>    pci: pci_mvebu: Remove unused functions
>    pci: pci_mvebu: Fix place of link up detection
>    pci: pci_mvebu: Do not automatically enable bus mastering on PCI
>      Bridge
>    pci: pci_mvebu: Setup PCI controller to Root Complex mode
>    pci: pci_mvebu: Fix comment about driver class name
> 
>   drivers/pci/pci_mvebu.c | 275 +++++++++++++++++++++++++++++-----------
>   1 file changed, 202 insertions(+), 73 deletions(-)
> 

Applied to u-boot-marvell/master

Thanks,
Stefan


More information about the U-Boot mailing list