LS1046a: How to increase number of stream id's for PCIe?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

LS1046a: How to increase number of stream id's for PCIe?

641 Views
AbelianMeme
Contributor III

We are running into a problem on our custom board using an LS1046a microcontroller and a Microchip PM40036 PCIe switch.  The problem is the PM40036 implements the switch as a 2 layer bridge architecture. It creates a master bridge facing the NXP root port, and then 16 individual bridges for each port. Our design uses 16 PCIe add in cards. We only enable PCIe port 1 in the 8888 configuration. We only need basic networking capability (no packet switching) but do require all 3 USB ports to operate at superspeed.

u-boot part

The problems start in u-boot, where we receive this error:

PCIe1: pcie@3400000 Root Complex: x4 gen1
ERROR: out of stream ids for BDF 2.14.0

Tracing this error back to the source, it comes from

pcie_fixup_layerscape.c: fdt_fixup_pcie_device_ls()

This function tries to allocate a new stream id, but the process fails because in stream_id_lsch2.h, it defines the following constants:

/* PCI - programmed in PEXn_LUT */
#define FSL_PEX_STREAM_ID_START 11
#define FSL_PEX_STREAM_ID_END 26

This is only 15 stream id's, and we would need at least 34 assuming 1 stream id is assigned to each PCIe device, including the bridges.

Question #1:  Can I simply change 26 to 45?

It appears stream id's 27-63 are being allocated to DPAA. But we are only using a single network port for connectivity. We do not require high speed netwrok switching. We do require use of all 3 USB devices in superspeed mode however. Can I simply move stream id's from DPAA to PEX, or is there some underlying architecture reason why this has been configured this way?

I apologize that I don't fully understand what a stream id actually is.

Linux kernel part

Moving onto the Linux kernel after booting, you can see the dmesg log at the very bottom of this post. To give you an idea of what got assigned, lspci shows the following:

root@localhost:~# lspci
00:00.0 PCI bridge: Freescale Semiconductor Inc Device 81c0 (rev 10)
01:00.0 PCI bridge: PMC-Sierra Inc. Device 4036
02:00.0 PCI bridge: PMC-Sierra Inc. Device 4036
02:01.0 PCI bridge: PMC-Sierra Inc. Device 4036
02:02.0 PCI bridge: PMC-Sierra Inc. Device 4036
02:03.0 PCI bridge: PMC-Sierra Inc. Device 4036
02:04.0 PCI bridge: PMC-Sierra Inc. Device 4036
02:05.0 PCI bridge: PMC-Sierra Inc. Device 4036
02:06.0 PCI bridge: PMC-Sierra Inc. Device 4036
02:07.0 PCI bridge: PMC-Sierra Inc. Device 4036
02:08.0 PCI bridge: PMC-Sierra Inc. Device 4036
02:09.0 PCI bridge: PMC-Sierra Inc. Device 4036
02:0a.0 PCI bridge: PMC-Sierra Inc. Device 4036
02:0b.0 PCI bridge: PMC-Sierra Inc. Device 4036
02:0c.0 PCI bridge: PMC-Sierra Inc. Device 4036
02:0d.0 PCI bridge: PMC-Sierra Inc. Device 4036
02:0e.0 PCI bridge: PMC-Sierra Inc. Device 4036
02:0f.0 PCI bridge: PMC-Sierra Inc. Device 4036

root@localhost:~# lspci -t
-[0000:00]---00.0-[01-ff]----00.0-[02-12]--+-00.0-[03]--
                                           +-01.0-[04]--
                                           +-02.0-[05]--
                                           +-03.0-[06]--
                                           +-04.0-[07]--
                                           +-05.0-[08]--
                                           +-06.0-[09]--
                                           +-07.0-[0a]--
                                           +-08.0-[0b]--
                                           +-09.0-[0c]--
                                           +-0a.0-[0d]--
                                           +-0b.0-[0e]--
                                           +-0c.0-[0f]--
                                           +-0d.0-[10]--
                                           +-0e.0-[11]--
                                           \-0f.0-[12]--

 

All of these are the PCIe bridges of the PM40036 switch. I don't understand why it does not enumerate any of the cards beyond the PM40036 switch.

 

Question #2: Could this be due to the stream ID issue from u-boot, or is there likely a secondary problem creating this failure to enumerate the attached adapters?

 

Finally, in the dmesg log (attached below), it shows the following error:

[ 3.225732] pci 0000:00:00.0: BAR 13: no space for [io size 0x10000]
[ 3.232217] pci 0000:00:00.0: BAR 13: failed to assign [io size 0x10000]
[ 3.254564] pci 0000:01:00.0: BAR 13: no space for [io size 0x10000]

...

I am assuming BAR13 must be the ECAM config space (due to the word "io", and the fact that this would make sense with BAR14 being for non prefetch memory and BAR15 being prefetch memory). The error would seem to be telling me this region is too small, but this is purely speculation because I don't understand how the driver works.

Question #3: What is BAR13 in the context of the logs below, and how do I make sure that it can properly handle 36 devices including bridges?

Thank you for any assistance in understanding and correcting these issues.

 

--

 

The PCIe Linux device tree and the PCIe relevant output from dmesg are attached below.

pcie1: pcie@3400000 {
compatible = "fsl,ls1046a-pcie";
reg = <0x00 0x03400000 0x0 0x00100000 /* controller registers */
0x40 0x00000000 0x0 0x00002000>; /* configuration space */
reg-names = "regs", "config";
interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
<GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; /* PME interrupt */
interrupt-names = "aer", "pme";
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
dma-coherent;
iommu-map = <0 &smmu 0 1>; /* update by bootloader */
num-viewport = <8>;
bus-range = <0x0 0xff>;
ranges = <0x81000000 0x0 0x00000000 0x40 0x00010000 0x0 0x00010000 /* downstream I/O */
0x82000000 0x0 0x40000000 0x40 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
msi-parent = <&msi1>, <&msi2>, <&msi3>;
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 7>;
interrupt-map = <0000 0 0 1 &gic GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
<0000 0 0 2 &gic GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
<0000 0 0 3 &gic GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
<0000 0 0 4 &gic GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
big-endian;
status = "disabled";
};

dmesg

[ 2.752983] layerscape-pcie 3400000.pcie: host bridge /soc/pcie@3400000 ranges:
[ 2.760364] layerscape-pcie 3400000.pcie: IO 0x4000010000..0x400001ffff -> 0x00000000
[ 2.768522] layerscape-pcie 3400000.pcie: MEM 0x4040000000..0x407fffffff -> 0x40000000
[ 2.776771] layerscape-pcie 3400000.pcie: PCI host bridge to bus 0000:00
[ 2.783528] pci_bus 0000:00: root bus resource [bus 00-ff]
[ 2.789055] pci_bus 0000:00: root bus resource [io 0x0000-0xffff]
[ 2.795280] pci_bus 0000:00: root bus resource [mem 0x4040000000-0x407fffffff] (bus address [0x40000000-0x7fffffff])
[ 2.805893] pci 0000:00:00.0: [1957:81c0] type 01 class 0x060400
[ 2.811999] pci 0000:00:00.0: supports D1 D2
[ 2.816298] pci 0000:00:00.0: PME# supported from D0 D1 D2 D3hot
[ 2.823458] pci 0000:01:00.0: [11f8:4036] type 01 class 0x060400
[ 2.831088] pci 0000:01:00.0: enabling Extended Tags
[ 2.836806] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
[ 2.843393] pci 0000:01:00.0: 31.504 Gb/s available PCIe bandwidth, limited by 8 GT/s x4 link at 0000:00:00.0 (capable of 252)
[ 2.859046] pci 0000:02:00.0: [11f8:4036] type 01 class 0x060400
[ 2.866129] pci 0000:02:00.0: enabling Extended Tags
[ 2.871978] pci 0000:02:00.0: PME# supported from D0 D3hot D3cold
[ 2.878796] pci 0000:02:01.0: [11f8:4036] type 01 class 0x060400
[ 2.885886] pci 0000:02:01.0: enabling Extended Tags
[ 2.891736] pci 0000:02:01.0: PME# supported from D0 D3hot D3cold
[ 2.898537] pci 0000:02:02.0: [11f8:4036] type 01 class 0x060400
[ 2.905627] pci 0000:02:02.0: enabling Extended Tags
[ 2.911478] pci 0000:02:02.0: PME# supported from D0 D3hot D3cold
[ 2.918287] pci 0000:02:03.0: [11f8:4036] type 01 class 0x060400
[ 2.925384] pci 0000:02:03.0: enabling Extended Tags
[ 2.931234] pci 0000:02:03.0: PME# supported from D0 D3hot D3cold
[ 2.938053] pci 0000:02:04.0: [11f8:4036] type 01 class 0x060400
[ 2.945145] pci 0000:02:04.0: enabling Extended Tags
[ 2.950996] pci 0000:02:04.0: PME# supported from D0 D3hot D3cold
[ 2.957826] pci 0000:02:05.0: [11f8:4036] type 01 class 0x060400
[ 2.964908] pci 0000:02:05.0: enabling Extended Tags
[ 2.970760] pci 0000:02:05.0: PME# supported from D0 D3hot D3cold
[ 2.977607] pci 0000:02:06.0: [11f8:4036] type 01 class 0x060400
[ 2.984687] pci 0000:02:06.0: enabling Extended Tags
[ 2.990540] pci 0000:02:06.0: PME# supported from D0 D3hot D3cold
[ 2.997403] pci 0000:02:07.0: [11f8:4036] type 01 class 0x060400
[ 3.004487] pci 0000:02:07.0: enabling Extended Tags
[ 3.010343] pci 0000:02:07.0: PME# supported from D0 D3hot D3cold
[ 3.017213] pci 0000:02:08.0: [11f8:4036] type 01 class 0x060400
[ 3.024301] pci 0000:02:08.0: enabling Extended Tags
[ 3.030158] pci 0000:02:08.0: PME# supported from D0 D3hot D3cold
[ 3.037038] pci 0000:02:09.0: [11f8:4036] type 01 class 0x060400
[ 3.044126] pci 0000:02:09.0: enabling Extended Tags
[ 3.049983] pci 0000:02:09.0: PME# supported from D0 D3hot D3cold
[ 3.056866] pci 0000:02:0a.0: [11f8:4036] type 01 class 0x060400
[ 3.063962] pci 0000:02:0a.0: enabling Extended Tags
[ 3.069820] pci 0000:02:0a.0: PME# supported from D0 D3hot D3cold
[ 3.076714] pci 0000:02:0b.0: [11f8:4036] type 01 class 0x060400
[ 3.083808] pci 0000:02:0b.0: enabling Extended Tags
[ 3.089673] pci 0000:02:0b.0: PME# supported from D0 D3hot D3cold
[ 3.096575] pci 0000:02:0c.0: [11f8:4036] type 01 class 0x060400
[ 3.103671] pci 0000:02:0c.0: enabling Extended Tags
[ 3.109538] pci 0000:02:0c.0: PME# supported from D0 D3hot D3cold
[ 3.116453] pci 0000:02:0d.0: [11f8:4036] type 01 class 0x060400
[ 3.123552] pci 0000:02:0d.0: enabling Extended Tags
[ 3.129418] pci 0000:02:0d.0: PME# supported from D0 D3hot D3cold
[ 3.136345] pci 0000:02:0e.0: [11f8:4036] type 01 class 0x060400
[ 3.143447] pci 0000:02:0e.0: enabling Extended Tags
[ 3.149314] pci 0000:02:0e.0: PME# supported from D0 D3hot D3cold
[ 3.155905] OF: /soc/pcie@3400000: no msi-map translation for id 0x270 on (null)
[ 3.163702] pci 0000:02:0f.0: [11f8:4036] type 01 class 0x060400
[ 3.170806] pci 0000:02:0f.0: enabling Extended Tags
[ 3.176672] pci 0000:02:0f.0: PME# supported from D0 D3hot D3cold
[ 3.183263] OF: /soc/pcie@3400000: no msi-map translation for id 0x278 on (null)
[ 3.210217] pci 0000:00:00.0: BAR 14: assigned [mem 0x4040000000-0x4041ffffff]
[ 3.217495] pci 0000:00:00.0: BAR 15: assigned [mem 0x4042000000-0x4043ffffff 64bit pref]
[ 3.225732] pci 0000:00:00.0: BAR 13: no space for [io size 0x10000]
[ 3.232217] pci 0000:00:00.0: BAR 13: failed to assign [io size 0x10000]
[ 3.239056] pci 0000:01:00.0: BAR 14: assigned [mem 0x4040000000-0x4041ffffff]
[ 3.246330] pci 0000:01:00.0: BAR 15: assigned [mem 0x4042000000-0x4043ffffff 64bit pref]
[ 3.254564] pci 0000:01:00.0: BAR 13: no space for [io size 0x10000]
[ 3.261049] pci 0000:01:00.0: BAR 13: failed to assign [io size 0x10000]
[ 3.267915] pci 0000:02:00.0: BAR 14: assigned [mem 0x4040000000-0x40401fffff]
[ 3.275190] pci 0000:02:00.0: BAR 15: assigned [mem 0x4042000000-0x40421fffff 64bit pref]
[ 3.283425] pci 0000:02:01.0: BAR 14: assigned [mem 0x4040200000-0x40403fffff]
[ 3.290699] pci 0000:02:01.0: BAR 15: assigned [mem 0x4042200000-0x40423fffff 64bit pref]
[ 3.298934] pci 0000:02:02.0: BAR 14: assigned [mem 0x4040400000-0x40405fffff]
[ 3.306208] pci 0000:02:02.0: BAR 15: assigned [mem 0x4042400000-0x40425fffff 64bit pref]
[ 3.314443] pci 0000:02:03.0: BAR 14: assigned [mem 0x4040600000-0x40407fffff]
[ 3.321720] pci 0000:02:03.0: BAR 15: assigned [mem 0x4042600000-0x40427fffff 64bit pref]
[ 3.329957] pci 0000:02:04.0: BAR 14: assigned [mem 0x4040800000-0x40409fffff]
[ 3.337231] pci 0000:02:04.0: BAR 15: assigned [mem 0x4042800000-0x40429fffff 64bit pref]
[ 3.345466] pci 0000:02:05.0: BAR 14: assigned [mem 0x4040a00000-0x4040bfffff]
[ 3.352740] pci 0000:02:05.0: BAR 15: assigned [mem 0x4042a00000-0x4042bfffff 64bit pref]
[ 3.360976] pci 0000:02:06.0: BAR 14: assigned [mem 0x4040c00000-0x4040dfffff]
[ 3.368250] pci 0000:02:06.0: BAR 15: assigned [mem 0x4042c00000-0x4042dfffff 64bit pref]
[ 3.376485] pci 0000:02:07.0: BAR 14: assigned [mem 0x4040e00000-0x4040ffffff]
[ 3.383760] pci 0000:02:07.0: BAR 15: assigned [mem 0x4042e00000-0x4042ffffff 64bit pref]
[ 3.391995] pci 0000:02:08.0: BAR 14: assigned [mem 0x4041000000-0x40411fffff]
[ 3.399269] pci 0000:02:08.0: BAR 15: assigned [mem 0x4043000000-0x40431fffff 64bit pref]
[ 3.407505] pci 0000:02:09.0: BAR 14: assigned [mem 0x4041200000-0x40413fffff]
[ 3.414779] pci 0000:02:09.0: BAR 15: assigned [mem 0x4043200000-0x40433fffff 64bit pref]
[ 3.423014] pci 0000:02:0a.0: BAR 14: assigned [mem 0x4041400000-0x40415fffff]
[ 3.430289] pci 0000:02:0a.0: BAR 15: assigned [mem 0x4043400000-0x40435fffff 64bit pref]
[ 3.438525] pci 0000:02:0b.0: BAR 14: assigned [mem 0x4041600000-0x40417fffff]
[ 3.445799] pci 0000:02:0b.0: BAR 15: assigned [mem 0x4043600000-0x40437fffff 64bit pref]
[ 3.454035] pci 0000:02:0c.0: BAR 14: assigned [mem 0x4041800000-0x40419fffff]
[ 3.461310] pci 0000:02:0c.0: BAR 15: assigned [mem 0x4043800000-0x40439fffff 64bit pref]
[ 3.469546] pci 0000:02:0d.0: BAR 14: assigned [mem 0x4041a00000-0x4041bfffff]
[ 3.476820] pci 0000:02:0d.0: BAR 15: assigned [mem 0x4043a00000-0x4043bfffff 64bit pref]
[ 3.485056] pci 0000:02:0e.0: BAR 14: assigned [mem 0x4041c00000-0x4041dfffff]
[ 3.492331] pci 0000:02:0e.0: BAR 15: assigned [mem 0x4043c00000-0x4043dfffff 64bit pref]
[ 3.500566] pci 0000:02:0f.0: BAR 14: assigned [mem 0x4041e00000-0x4041ffffff]
[ 3.507841] pci 0000:02:0f.0: BAR 15: assigned [mem 0x4043e00000-0x4043ffffff 64bit pref]
[ 3.516076] pci 0000:02:00.0: BAR 13: no space for [io size 0x1000]
[ 3.522473] pci 0000:02:00.0: BAR 13: failed to assign [io size 0x1000]
[ 3.529220] pci 0000:02:01.0: BAR 13: no space for [io size 0x1000]
[ 3.535617] pci 0000:02:01.0: BAR 13: failed to assign [io size 0x1000]
[ 3.542364] pci 0000:02:02.0: BAR 13: no space for [io size 0x1000]
[ 3.548761] pci 0000:02:02.0: BAR 13: failed to assign [io size 0x1000]
[ 3.555509] pci 0000:02:03.0: BAR 13: no space for [io size 0x1000]
[ 3.561906] pci 0000:02:03.0: BAR 13: failed to assign [io size 0x1000]
[ 3.568653] pci 0000:02:04.0: BAR 13: no space for [io size 0x1000]
[ 3.575049] pci 0000:02:04.0: BAR 13: failed to assign [io size 0x1000]
[ 3.581798] pci 0000:02:05.0: BAR 13: no space for [io size 0x1000]
[ 3.588196] pci 0000:02:05.0: BAR 13: failed to assign [io size 0x1000]
[ 3.594943] pci 0000:02:06.0: BAR 13: no space for [io size 0x1000]
[ 3.601340] pci 0000:02:06.0: BAR 13: failed to assign [io size 0x1000]
[ 3.608087] pci 0000:02:07.0: BAR 13: no space for [io size 0x1000]
[ 3.614484] pci 0000:02:07.0: BAR 13: failed to assign [io size 0x1000]
[ 3.621230] pci 0000:02:08.0: BAR 13: no space for [io size 0x1000]
[ 3.627627] pci 0000:02:08.0: BAR 13: failed to assign [io size 0x1000]
[ 3.634374] pci 0000:02:09.0: BAR 13: no space for [io size 0x1000]
[ 3.640771] pci 0000:02:09.0: BAR 13: failed to assign [io size 0x1000]
[ 3.647518] pci 0000:02:0a.0: BAR 13: no space for [io size 0x1000]
[ 3.653915] pci 0000:02:0a.0: BAR 13: failed to assign [io size 0x1000]
[ 3.660663] pci 0000:02:0b.0: BAR 13: no space for [io size 0x1000]
[ 3.667060] pci 0000:02:0b.0: BAR 13: failed to assign [io size 0x1000]
[ 3.673807] pci 0000:02:0c.0: BAR 13: no space for [io size 0x1000]
[ 3.680204] pci 0000:02:0c.0: BAR 13: failed to assign [io size 0x1000]
[ 3.686951] pci 0000:02:0d.0: BAR 13: no space for [io size 0x1000]
[ 3.693348] pci 0000:02:0d.0: BAR 13: failed to assign [io size 0x1000]
[ 3.700094] pci 0000:02:0e.0: BAR 13: no space for [io size 0x1000]
[ 3.706491] pci 0000:02:0e.0: BAR 13: failed to assign [io size 0x1000]
[ 3.713238] pci 0000:02:0f.0: BAR 13: no space for [io size 0x1000]
[ 3.719635] pci 0000:02:0f.0: BAR 13: failed to assign [io size 0x1000]
[ 3.726391] pci 0000:02:00.0: PCI bridge to [bus 03]
[ 3.731422] pci 0000:02:00.0: bridge window [mem 0x4040000000-0x40401fffff]
[ 3.738667] pci 0000:02:00.0: bridge window [mem 0x4042000000-0x40421fffff 64bit pref]
[ 3.746929] pci 0000:02:01.0: PCI bridge to [bus 04]
[ 3.751958] pci 0000:02:01.0: bridge window [mem 0x4040200000-0x40403fffff]
[ 3.759200] pci 0000:02:01.0: bridge window [mem 0x4042200000-0x40423fffff 64bit pref]
[ 3.767461] pci 0000:02:02.0: PCI bridge to [bus 05]
[ 3.772491] pci 0000:02:02.0: bridge window [mem 0x4040400000-0x40405fffff]
[ 3.779733] pci 0000:02:02.0: bridge window [mem 0x4042400000-0x40425fffff 64bit pref]
[ 3.787995] pci 0000:02:03.0: PCI bridge to [bus 06]
[ 3.793024] pci 0000:02:03.0: bridge window [mem 0x4040600000-0x40407fffff]
[ 3.800267] pci 0000:02:03.0: bridge window [mem 0x4042600000-0x40427fffff 64bit pref]
[ 3.808529] pci 0000:02:04.0: PCI bridge to [bus 07]
[ 3.813559] pci 0000:02:04.0: bridge window [mem 0x4040800000-0x40409fffff]
[ 3.820801] pci 0000:02:04.0: bridge window [mem 0x4042800000-0x40429fffff 64bit pref]
[ 3.829065] pci 0000:02:05.0: PCI bridge to [bus 08]
[ 3.834099] pci 0000:02:05.0: bridge window [mem 0x4040a00000-0x4040bfffff]
[ 3.841344] pci 0000:02:05.0: bridge window [mem 0x4042a00000-0x4042bfffff 64bit pref]
[ 3.849607] pci 0000:02:06.0: PCI bridge to [bus 09]
[ 3.854638] pci 0000:02:06.0: bridge window [mem 0x4040c00000-0x4040dfffff]
[ 3.861882] pci 0000:02:06.0: bridge window [mem 0x4042c00000-0x4042dfffff 64bit pref]
[ 3.870184] pci 0000:02:07.0: PCI bridge to [bus 0a]
[ 3.875216] pci 0000:02:07.0: bridge window [mem 0x4040e00000-0x4040ffffff]
[ 3.882458] pci 0000:02:07.0: bridge window [mem 0x4042e00000-0x4042ffffff 64bit pref]
[ 3.890719] pci 0000:02:08.0: PCI bridge to [bus 0b]
[ 3.895748] pci 0000:02:08.0: bridge window [mem 0x4041000000-0x40411fffff]
[ 3.902991] pci 0000:02:08.0: bridge window [mem 0x4043000000-0x40431fffff 64bit pref]
[ 3.911252] pci 0000:02:09.0: PCI bridge to [bus 0c]
[ 3.916281] pci 0000:02:09.0: bridge window [mem 0x4041200000-0x40413fffff]
[ 3.923524] pci 0000:02:09.0: bridge window [mem 0x4043200000-0x40433fffff 64bit pref]
[ 3.931785] pci 0000:02:0a.0: PCI bridge to [bus 0d]
[ 3.936814] pci 0000:02:0a.0: bridge window [mem 0x4041400000-0x40415fffff]
[ 3.944058] pci 0000:02:0a.0: bridge window [mem 0x4043400000-0x40435fffff 64bit pref]
[ 3.952320] pci 0000:02:0b.0: PCI bridge to [bus 0e]
[ 3.957349] pci 0000:02:0b.0: bridge window [mem 0x4041600000-0x40417fffff]
[ 3.964593] pci 0000:02:0b.0: bridge window [mem 0x4043600000-0x40437fffff 64bit pref]
[ 3.972855] pci 0000:02:0c.0: PCI bridge to [bus 0f]
[ 3.977884] pci 0000:02:0c.0: bridge window [mem 0x4041800000-0x40419fffff]
[ 3.985127] pci 0000:02:0c.0: bridge window [mem 0x4043800000-0x40439fffff 64bit pref]
[ 3.993391] pci 0000:02:0d.0: PCI bridge to [bus 10]
[ 3.998420] pci 0000:02:0d.0: bridge window [mem 0x4041a00000-0x4041bfffff]
[ 4.005664] pci 0000:02:0d.0: bridge window [mem 0x4043a00000-0x4043bfffff 64bit pref]
[ 4.013928] pci 0000:02:0e.0: PCI bridge to [bus 11]
[ 4.018957] pci 0000:02:0e.0: bridge window [mem 0x4041c00000-0x4041dfffff]
[ 4.026202] pci 0000:02:0e.0: bridge window [mem 0x4043c00000-0x4043dfffff 64bit pref]
[ 4.034465] pci 0000:02:0f.0: PCI bridge to [bus 12]
[ 4.039494] pci 0000:02:0f.0: bridge window [mem 0x4041e00000-0x4041ffffff]
[ 4.046738] pci 0000:02:0f.0: bridge window [mem 0x4043e00000-0x4043ffffff 64bit pref]
[ 4.055002] pci 0000:01:00.0: PCI bridge to [bus 02-12]
[ 4.060292] pci 0000:01:00.0: bridge window [mem 0x4040000000-0x4041ffffff]
[ 4.067643] pci 0000:01:00.0: bridge window [mem 0x4042000000-0x4043ffffff 64bit pref]
[ 4.076120] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[ 4.081382] pci 0000:00:00.0: bridge window [mem 0x4040000000-0x4041ffffff]
[ 4.088567] pci 0000:00:00.0: bridge window [mem 0x4042000000-0x4043ffffff 64bit pref]
[ 4.097209] OF: /soc/pcie@3400000: no iommu-map translation for id 0x270 on (null)
[ 4.106285] OF: /soc/pcie@3400000: no iommu-map translation for id 0x278 on (null)
[ 4.115406] switchtec: loaded.

 

0 Kudos
1 Reply

620 Views
yipingwang
NXP TechSupport
NXP TechSupport

U-boot will allocate steamid for each PCIe device that probed. uboot only reserved stream 11 to 26 for all PCIe device. So customer see the error message in linux driver. Because of stream id 27-63 is used by DPAA. Customer can move the PCIe stream ids to other value. For example, start from 64.

Stream id is used by IOMMU, IOMMU driver will use streamid and configure IO TLB from each device. I checked linux kernel in our SDK, iommu is default disabled for LS1043, LS1046 device, are you using our official SDK?
This is from fsl-ls1046a-rdb-sdk.dts, the iommu node is removed from dts:
&soc {
/delete-property/ dma-coherent;

#include "qoriq-dpaa-eth.dtsi"
#include "qoriq-fman3-0-6oh.dtsi"

pcie@3400000 {
/delete-property/ iommu-map;
};

pcie@3500000 {
/delete-property/ iommu-map;
};

pcie@3600000 {
/delete-property/ iommu-map;
};

/delete-node/ iommu@9000000;
};

0 Kudos