Difference between revisions of "DESK-MX8M-L/Peripherals/PCI express"

From DAVE Developer's Wiki
Jump to: navigation, search
(Created page with "<section begin=History/> {| style="border-collapse:collapse; " !colspan="4" style="width:100%; text-align:left"; border-bottom:solid 2px #ededed"|History |- !style="border-le...")
 
 
(12 intermediate revisions by 3 users not shown)
Line 3: Line 3:
 
!colspan="4" style="width:100%; text-align:left"; border-bottom:solid 2px #ededed"|History
 
!colspan="4" style="width:100%; text-align:left"; border-bottom:solid 2px #ededed"|History
 
|-  
 
|-  
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Version
 
 
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Issue Date
 
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Issue Date
 
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Notes
 
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Notes
 
|-
 
|-
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|1.0.0
+
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|{{oldid|15734|2021/01/13}}
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|Jan 2022
+
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|First DESK-MX8M-L release
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|First DESK-MX8M release
 
 
|-
 
|-
 +
| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |{{oldid|17609|2023/02/24}}
 +
| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |DESK-MX8M-L-2.0.0 release
 +
|-
 +
| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |{{oldid|19175|2023/08/22}}
 +
| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |DESK-MX8M-L-4.0.0 release
 +
|-
 +
! style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000" |2024/04/11
 +
! style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000" |DESK-MX8M-L-4.1.0 release
 
|-
 
|-
 
|}
 
|}
Line 19: Line 25:
  
 
=== Device tree configuration ===
 
=== Device tree configuration ===
 +
 +
==== ORCA SOM ====
 +
 
Here below an example of device tree configuration used on standard DAVE's kit for the ORCA SOM:
 
Here below an example of device tree configuration used on standard DAVE's kit for the ORCA SOM:
  
Line 35: Line 44:
 
</pre>
 
</pre>
  
===Accessing the peripheral===
+
==== MITO 8M Mini ====
 +
 
 +
Here below an example of device tree configuration used on standard DAVE's kit for the MITO 8M Mini:
 +
 
 +
From <code>imx8mm-mito8mmini.dtsi</code>:
 +
 
 +
<pre>
 +
...
 +
...
 +
pcie0_refclk: pcie0-refclk {
 +
compatible = "fixed-clock";
 +
#clock-cells = <0>;
 +
clock-frequency = <100000000>;
 +
};
 +
...
 +
...
 +
&pcie0 {
 +
clocks = <&clk IMX8MM_CLK_PCIE1_ROOT>,
 +
<&clk IMX8MM_CLK_PCIE1_AUX>,
 +
<&clk IMX8MM_CLK_PCIE1_PHY>,
 +
<&pcie0_refclk>;
 +
clock-names = "pcie", "pcie_aux", "pcie_phy", "pcie_bus";
 +
assigned-clocks = <&clk IMX8MM_CLK_PCIE1_AUX>,
 +
  <&clk IMX8MM_CLK_PCIE1_PHY>,
 +
  <&clk IMX8MM_CLK_PCIE1_CTRL>;
 +
assigned-clock-rates = <10000000>, <100000000>, <250000000>;
 +
assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_50M>,
 +
<&clk IMX8MM_SYS_PLL2_100M>,
 +
<&clk IMX8MM_SYS_PLL2_250M>;
 +
ext_osc = <0>;
 +
status = "disabled";
 +
};
 +
...
 +
...
 +
</pre>
 +
 
 +
From <code>imx8mm-mito8mmini-sbcx.dts</code>:
 +
 
 +
<pre>
 +
...
 +
...
 +
regulators {
 +
...
 +
reg_pcie_pwr: pcie_pwr {
 +
compatible = "regulator-fixed";
 +
regulator-name = "PCIe_PWREN";
 +
regulator-min-microvolt = <3300000>;
 +
regulator-max-microvolt = <3300000>;
 +
regulator-always-on;
 +
gpio = <&gpio2 20 GPIO_ACTIVE_HIGH>;
 +
enable-active-high;
 +
};
 +
...
 +
...
 +
&pcie0 {
 +
pinctrl-names = "default";
 +
pinctrl-0 = <&pinctrl_pcie0>;
 +
disable-gpio = <&gpio5 20 GPIO_ACTIVE_LOW>;
 +
reset-gpio = <&gpio5 21 GPIO_ACTIVE_LOW>;
 +
wake-gpio = <&gpio3 20 GPIO_ACTIVE_HIGH>;
 +
status = "okay";
 +
};
 +
...
 +
...
 +
&iomuxc {
 +
...
 +
...
 +
pinctrl_pcie0: pcie0grp {
 +
fsl,pins = <
 +
MX8MM_IOMUXC_I2C4_SCL_GPIO5_IO20   0x19
 +
MX8MM_IOMUXC_I2C4_SDA_GPIO5_IO21   0x19
 +
MX8MM_IOMUXC_SD2_WP_GPIO2_IO20   0x19
 +
MX8MM_IOMUXC_SAI5_RXC_GPIO3_IO20 0x19
 +
>;
 +
};
 +
...
 +
...
 +
</pre>
 +
 
 +
===Accessing the peripheral in ORCA SOM===
  
 
====Linux messages at boot time====
 
====Linux messages at boot time====
Line 44: Line 132:
 
...
 
...
 
...
 
...
[    0.443763] PCI: CLS 0 bytes, default 64
+
[    1.036587] ehci-pci: EHCI PCI platform driver                                                                     
[    0.459987] imx6q-pcie 1ffc000.pcie: no reserved region node.
+
[    1.052769] ohci-pci: OHCI PCI platform driver                                                                     
[    0.460090] imx6q-pcie 1ffc000.pcie: 1ffc000.pcie supply epdev_on not found, using dummy regulator
+
[    1.998472] imx6q-pcie 33800000.pcie: supply epdev_on not found, using dummy regulator
[    0.460415] OF: PCI: host bridge /soc/pcie@1ffc000 ranges:
+
[    2.006801] imx6q-pcie 33800000.pcie: EXT REF_CLK is used!.     
[    0.460451] OF: PCI:    IO 0x01f80000..0x01f8ffff -> 0x00000000
+
[    2.012998] imx6q-pcie 33800000.pcie: PCIe PHY PLL clock is locked.     
[    0.460470] OF: PCI:  MEM 0x01000000..0x01efffff -> 0x01000000
+
[    2.054543] imx6q-pcie 33800000.pcie: PCIe PLL is locked.                
[    0.709248] imx6q-pcie 1ffc000.pcie: phy link never came up
+
[    2.061522] imx6q-pcie 33800000.pcie: iATU unroll: enabled                   
[    0.712328] imx6q-pcie 1ffc000.pcie: failed to initialize host
+
[    2.074094] imx6q-pcie 33800000.pcie: Detected iATU regions: 4 outbound, 4 inbound
[    0.712343] imx6q-pcie 1ffc000.pcie: unable to add pcie port.
+
[    2.088808] imx6q-pcie 33800000.pcie: host bridge /soc@0/pcie@33800000 ranges:
[    0.712571] imx6q-pcie: probe of 1ffc000.pcie failed with error -110
+
[    2.102731] imx6q-pcie 33800000.pcie:   No bus range found for /soc@0/pcie@33800000, using [bus 00-ff]
 +
[    2.118147] imx6q-pcie 33800000.pcie:       IO 0x001ff80000..0x001ff8ffff -> 0x0000000000
 +
[    2.133976] imx6q-pcie 33800000.pcie:     MEM 0x0018000000..0x001fefffff -> 0x0018000000
 +
[    2.149011] imx6q-pcie 33800000.pcie: iATU unroll: enabled                                                                                                                                                                               
 +
[    2.161122] imx6q-pcie 33800000.pcie: Detected iATU regions: 4 outbound, 4 inbound                                                                                                                                                       
 +
[    2.261489] imx6q-pcie 33800000.pcie: Link up
 
...
 
...
 
...
 
...
[    2.459055] ehci-pci: EHCI PCI platform driver
+
</pre>
 +
 
 +
The PCIe usage is strictly related to the peripheral type connected to the PCIe slot. Then, the peripheral type defines the linux commands used for the accessing (hiding the PCIe bus commands)
 +
 
 +
==== PCIe to USB3 example ====
 +
Using a PCIe to USB card, like the [https://www.amazon.com/BEYIMEI-PCI-Express-Expansion-Asmedia-Chipset/dp/B087WNWD4M?th=1 following one]:
 +
 
 +
<pre class="workstation-terminal">
 +
...
 +
...
 +
[    2.370224] imx6q-pcie 33800000.pcie: Link up, Gen2
 +
[    2.490193] imx6q-pcie 33800000.pcie: Link up
 +
[    2.496941] imx6q-pcie 33800000.pcie: PCI host bridge to bus 0000:00
 +
[    2.503342] pci_bus 0000:00: root bus resource [bus 00-ff]
 +
[    2.508847] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
 +
[    2.515037] pci_bus 0000:00: root bus resource [mem 0x18000000-0x1fefffff]
 +
[    2.528514] pci 0000:00:00.0: [16c3:abcd] type 01 class 0x060400
 +
[    2.534560] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x000fffff]
 +
[    2.540846] pci 0000:00:00.0: reg 0x38: [mem 0x00000000-0x0000ffff pref]
 +
[    2.547588] pci 0000:00:00.0: supports D1
 +
[    2.551605] pci 0000:00:00.0: PME# supported from D0 D1 D3hot D3cold
 +
[    2.560332] pci 0000:01:00.0: [1912:0015] type 00 class 0x0c0330
 +
[    2.566431] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00001fff 64bit]
 +
[    2.573586] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
 +
[    2.592170] pci 0000:00:00.0: BAR 0: assigned [mem 0x18000000-0x180fffff]
 +
[    2.598991] pci 0000:00:00.0: BAR 14: assigned [mem 0x18100000-0x181fffff]
 +
[    2.605889] pci 0000:00:00.0: BAR 6: assigned [mem 0x18200000-0x1820ffff pref]
 +
[    2.613153] pci 0000:01:00.0: BAR 0: assigned [mem 0x18100000-0x18101fff 64bit]
 +
[    2.620514] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
 +
[    2.625771] pci 0000:00:00.0:  bridge window [mem 0x18100000-0x181fffff]
 +
[    2.632899] pcieport 0000:00:00.0: PME: Signaling with IRQ 242
 +
[    2.638881] pci 0000:01:00.0: enabling device (0000 -> 0002)
 +
[    8.404360] input: wch.cn USB2IIC_CTP_CONTROL as /devices/platform/soc@0/33800000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb5/5-1/5-1:1.0/0003:222A:0001.0001/input/input0
 +
[    8.560392] input: wch.cn USB2IIC_CTP_CONTROL as /devices/platform/soc@0/33800000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb5/5-1/5-1:1.0/0003:222A:0001.0001/input/input1
 +
...
 +
...
 +
</pre>
 +
 
 +
the PCIe to USB 3 bridge is detected:
 +
 
 +
<pre class="workstation-terminal">
 +
root@desk-mx8mp:~# lspci
 +
00:00.0 PCI bridge: Synopsys, Inc. DWC_usb3 / PCIe bridge (rev 01)
 +
01:00.0 USB controller: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller (rev 02)
 +
root@desk-mx8mp:~#
 +
</pre>
 +
 
 +
and the two additional USB3 ports will be available:
 +
<pre class="workstation-terminal">
 +
root@desk-mx8mp:~# dmesg | grep -i usb | grep xhci                                                                   
 +
[    2.192089] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 1
 +
[    2.221094] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 2
 +
[    2.228770] xhci-hcd xhci-hcd.1.auto: Host supports USB 3.0 SuperSpeed
 +
[    2.510185] usb 1-1: new high-speed USB device number 2 using xhci-hcd                                                                                                                                                                   
 +
[    2.862133] usb 2-1: new SuperSpeed USB device number 2 using xhci-hcd
 +
[    2.996133] xhci-hcd xhci-hcd.2.auto: new USB bus registered, assigned bus number 3
 +
[    3.025229] xhci-hcd xhci-hcd.2.auto: new USB bus registered, assigned bus number 4
 +
[    3.032900] xhci-hcd xhci-hcd.2.auto: Host supports USB 3.0 SuperSpeed
 +
 
 +
root@desk-mx8mp:~#
 +
</pre>
 +
 
 +
Inserting an USB key in the second USB3 port:
 +
 
 +
<pre class="workstation-terminal">
 +
root@desk-mx8mp:~# [ 7565.281085] usb 6-2: new SuperSpeed USB device number 2 using xhci_hcd
 +
[ 7565.321526] usb-storage 6-2:1.0: USB Mass Storage device detected
 +
[ 7565.329534] scsi host1: usb-storage 6-2:1.0
 +
[ 7566.342855] scsi 1:0:0:0: Direct-Access    Wilk    USB DISK 3.0    PMAP PQ: 0 ANSI: 6
 +
[ 7566.352069] sd 1:0:0:0: [sdb] 60628992 512-byte logical blocks: (31.0 GB/28.9 GiB)
 +
[ 7566.360342] sd 1:0:0:0: [sdb] Write Protect is off
 +
[ 7566.365788] sd 1:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
 +
[ 7566.555051]  sdb:
 +
[ 7566.559628] sd 1:0:0:0: [sdb] Attached SCSI removable disk
 +
root@desk-mx8mp:~#
 +
</pre>
 +
 
 +
===Accessing the peripheral in MITO 8M Mini===
 +
 
 +
====Linux messages at boot time====
 +
 
 +
PCIe driver initialized:
 +
 
 +
<pre class="workstation-terminal">
 +
...
 +
...                                                                                 
 +
[    1.131579] ehci-pci: EHCI PCI platform driver
 +
[    1.147680] ohci-pci: OHCI PCI platform driver                                                                     
 +
[    3.234024] imx6q-pcie 33800000.pcie: supply epdev_on not found, using dummy regulator
 +
[    3.242348] imx6q-pcie 33800000.pcie: PLL REF_CLK is used!.             
 +
[    3.276463] imx6q-pcie 33800000.pcie: PCIe PLL is locked.       
 +
[    3.284714] imx6q-pcie 33800000.pcie: iATU unroll: enabled             
 +
[    3.295015] imx6q-pcie 33800000.pcie: Detected iATU regions: 4 outbound, 4 inbound
 +
[    3.309648] imx6q-pcie 33800000.pcie: host bridge /soc@0/pcie@33800000 ranges:
 +
[    3.316925] imx6q-pcie 33800000.pcie:      IO 0x001ff80000..0x001ff8ffff -> 0x0000000000
 +
[    3.330476] imx6q-pcie 33800000.pcie:      MEM 0x0018000000..0x001fefffff -> 0x0018000000
 +
[    3.342505] imx6q-pcie 33800000.pcie: iATU unroll: enabled             
 +
[    3.351821] imx6q-pcie 33800000.pcie: Detected iATU regions: 4 outbound, 4 inbound
 +
[    3.444200] imx6q-pcie 33800000.pcie: Link up
 
...
 
...
 
...
 
...
 
</pre>
 
</pre>
  
The PCIe usage is strictly related to the peripheral type connected to the PCIe slot. Then, the peripheral type defines the linux commands used for the accessing (hiding the PCIe bus commands)
+
Check which are the devices connected to the PCIe.
 +
 
 +
<pre class="workstation-terminal">
 +
root@desk-mx8mm:~# lspci
 +
00:00.0 PCI bridge: Synopsys, Inc. DWC_usb3 / PCIe bridge (rev 01)
 +
01:00.0 Network controller: Intel Corporation Wireless 7260 (rev bb)
 +
root@desk-mx8mm:~#
 +
</pre>
  
 
=== Additional information ===
 
=== Additional information ===
Line 67: Line 265:
 
----
 
----
  
[[Category:ORCA]]
+
[[Category:ORCA]] [[Category:MITO 8M Mini]]

Latest revision as of 13:36, 15 April 2024

History
Issue Date Notes

2021/01/13

First DESK-MX8M-L release

2023/02/24

DESK-MX8M-L-2.0.0 release

2023/08/22

DESK-MX8M-L-4.0.0 release
2024/04/11 DESK-MX8M-L-4.1.0 release


Peripheral PCI express[edit | edit source]

Device tree configuration[edit | edit source]

ORCA SOM[edit | edit source]

Here below an example of device tree configuration used on standard DAVE's kit for the ORCA SOM:

From imx8mp-mito8mplus-cb1001.dts:

&pcie {
	status = "okay";
};

&pcie_phy{
	ext_osc = <1>;
	status = "okay";
};

MITO 8M Mini[edit | edit source]

Here below an example of device tree configuration used on standard DAVE's kit for the MITO 8M Mini:

From imx8mm-mito8mmini.dtsi:

...
...
	pcie0_refclk: pcie0-refclk {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <100000000>;
	};
...
...
&pcie0 {
	clocks = <&clk IMX8MM_CLK_PCIE1_ROOT>,
		 <&clk IMX8MM_CLK_PCIE1_AUX>,
		 <&clk IMX8MM_CLK_PCIE1_PHY>,
		 <&pcie0_refclk>;
	clock-names = "pcie", "pcie_aux", "pcie_phy", "pcie_bus";
	assigned-clocks = <&clk IMX8MM_CLK_PCIE1_AUX>,
			  <&clk IMX8MM_CLK_PCIE1_PHY>,
			  <&clk IMX8MM_CLK_PCIE1_CTRL>;
	assigned-clock-rates = <10000000>, <100000000>, <250000000>;
	assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_50M>,
				 <&clk IMX8MM_SYS_PLL2_100M>,
				 <&clk IMX8MM_SYS_PLL2_250M>;
	ext_osc = <0>;
	status = "disabled";
};
...
...

From imx8mm-mito8mmini-sbcx.dts:

...
...
	regulators {
...
		reg_pcie_pwr: pcie_pwr {
			compatible = "regulator-fixed";
			regulator-name = "PCIe_PWREN";
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			regulator-always-on;
			gpio = <&gpio2 20 GPIO_ACTIVE_HIGH>;
			enable-active-high;
		};
...
...
&pcie0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_pcie0>;
	disable-gpio = <&gpio5 20 GPIO_ACTIVE_LOW>;
	reset-gpio = <&gpio5 21 GPIO_ACTIVE_LOW>;
	wake-gpio = <&gpio3 20 GPIO_ACTIVE_HIGH>;
	status = "okay";
};
...
...
&iomuxc {
...
...
	pinctrl_pcie0: pcie0grp {
		fsl,pins = <
			MX8MM_IOMUXC_I2C4_SCL_GPIO5_IO20			   0x19
			MX8MM_IOMUXC_I2C4_SDA_GPIO5_IO21			   0x19
			MX8MM_IOMUXC_SD2_WP_GPIO2_IO20				   0x19
			MX8MM_IOMUXC_SAI5_RXC_GPIO3_IO20				0x19
		>;
	};
...
...

Accessing the peripheral in ORCA SOM[edit | edit source]

Linux messages at boot time[edit | edit source]

PCIe driver initialized:

...
...
[    1.036587] ehci-pci: EHCI PCI platform driver                                                                      
[    1.052769] ohci-pci: OHCI PCI platform driver                                                                      
[    1.998472] imx6q-pcie 33800000.pcie: supply epdev_on not found, using dummy regulator
[    2.006801] imx6q-pcie 33800000.pcie: EXT REF_CLK is used!.      
[    2.012998] imx6q-pcie 33800000.pcie: PCIe PHY PLL clock is locked.      
[    2.054543] imx6q-pcie 33800000.pcie: PCIe PLL is locked.                 
[    2.061522] imx6q-pcie 33800000.pcie: iATU unroll: enabled                    
[    2.074094] imx6q-pcie 33800000.pcie: Detected iATU regions: 4 outbound, 4 inbound
[    2.088808] imx6q-pcie 33800000.pcie: host bridge /soc@0/pcie@33800000 ranges:
[    2.102731] imx6q-pcie 33800000.pcie:   No bus range found for /soc@0/pcie@33800000, using [bus 00-ff]
[    2.118147] imx6q-pcie 33800000.pcie:       IO 0x001ff80000..0x001ff8ffff -> 0x0000000000
[    2.133976] imx6q-pcie 33800000.pcie:      MEM 0x0018000000..0x001fefffff -> 0x0018000000
[    2.149011] imx6q-pcie 33800000.pcie: iATU unroll: enabled                                                                                                                                                                                 
[    2.161122] imx6q-pcie 33800000.pcie: Detected iATU regions: 4 outbound, 4 inbound                                                                                                                                                         
[    2.261489] imx6q-pcie 33800000.pcie: Link up
...
...

The PCIe usage is strictly related to the peripheral type connected to the PCIe slot. Then, the peripheral type defines the linux commands used for the accessing (hiding the PCIe bus commands)

PCIe to USB3 example[edit | edit source]

Using a PCIe to USB card, like the following one:

...
...
[    2.370224] imx6q-pcie 33800000.pcie: Link up, Gen2
[    2.490193] imx6q-pcie 33800000.pcie: Link up
[    2.496941] imx6q-pcie 33800000.pcie: PCI host bridge to bus 0000:00
[    2.503342] pci_bus 0000:00: root bus resource [bus 00-ff]
[    2.508847] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
[    2.515037] pci_bus 0000:00: root bus resource [mem 0x18000000-0x1fefffff]
[    2.528514] pci 0000:00:00.0: [16c3:abcd] type 01 class 0x060400
[    2.534560] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x000fffff]
[    2.540846] pci 0000:00:00.0: reg 0x38: [mem 0x00000000-0x0000ffff pref]
[    2.547588] pci 0000:00:00.0: supports D1
[    2.551605] pci 0000:00:00.0: PME# supported from D0 D1 D3hot D3cold
[    2.560332] pci 0000:01:00.0: [1912:0015] type 00 class 0x0c0330
[    2.566431] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00001fff 64bit]
[    2.573586] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
[    2.592170] pci 0000:00:00.0: BAR 0: assigned [mem 0x18000000-0x180fffff]
[    2.598991] pci 0000:00:00.0: BAR 14: assigned [mem 0x18100000-0x181fffff]
[    2.605889] pci 0000:00:00.0: BAR 6: assigned [mem 0x18200000-0x1820ffff pref]
[    2.613153] pci 0000:01:00.0: BAR 0: assigned [mem 0x18100000-0x18101fff 64bit]
[    2.620514] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[    2.625771] pci 0000:00:00.0:   bridge window [mem 0x18100000-0x181fffff]
[    2.632899] pcieport 0000:00:00.0: PME: Signaling with IRQ 242
[    2.638881] pci 0000:01:00.0: enabling device (0000 -> 0002)
[    8.404360] input: wch.cn USB2IIC_CTP_CONTROL as /devices/platform/soc@0/33800000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb5/5-1/5-1:1.0/0003:222A:0001.0001/input/input0
[    8.560392] input: wch.cn USB2IIC_CTP_CONTROL as /devices/platform/soc@0/33800000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb5/5-1/5-1:1.0/0003:222A:0001.0001/input/input1
...
...

the PCIe to USB 3 bridge is detected:

root@desk-mx8mp:~# lspci
00:00.0 PCI bridge: Synopsys, Inc. DWC_usb3 / PCIe bridge (rev 01)
01:00.0 USB controller: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller (rev 02)
root@desk-mx8mp:~# 

and the two additional USB3 ports will be available:

root@desk-mx8mp:~# dmesg | grep -i usb | grep xhci                                                                     
[    2.192089] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 1
[    2.221094] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 2
[    2.228770] xhci-hcd xhci-hcd.1.auto: Host supports USB 3.0 SuperSpeed
[    2.510185] usb 1-1: new high-speed USB device number 2 using xhci-hcd                                                                                                                                                                     
[    2.862133] usb 2-1: new SuperSpeed USB device number 2 using xhci-hcd
[    2.996133] xhci-hcd xhci-hcd.2.auto: new USB bus registered, assigned bus number 3
[    3.025229] xhci-hcd xhci-hcd.2.auto: new USB bus registered, assigned bus number 4
[    3.032900] xhci-hcd xhci-hcd.2.auto: Host supports USB 3.0 SuperSpeed

root@desk-mx8mp:~#

Inserting an USB key in the second USB3 port:

root@desk-mx8mp:~# [ 7565.281085] usb 6-2: new SuperSpeed USB device number 2 using xhci_hcd
[ 7565.321526] usb-storage 6-2:1.0: USB Mass Storage device detected
[ 7565.329534] scsi host1: usb-storage 6-2:1.0
[ 7566.342855] scsi 1:0:0:0: Direct-Access     Wilk     USB DISK 3.0     PMAP PQ: 0 ANSI: 6
[ 7566.352069] sd 1:0:0:0: [sdb] 60628992 512-byte logical blocks: (31.0 GB/28.9 GiB)
[ 7566.360342] sd 1:0:0:0: [sdb] Write Protect is off
[ 7566.365788] sd 1:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 7566.555051]  sdb:
[ 7566.559628] sd 1:0:0:0: [sdb] Attached SCSI removable disk
root@desk-mx8mp:~#

Accessing the peripheral in MITO 8M Mini[edit | edit source]

Linux messages at boot time[edit | edit source]

PCIe driver initialized:

...
...                                                                                  
[    1.131579] ehci-pci: EHCI PCI platform driver
[    1.147680] ohci-pci: OHCI PCI platform driver                                                                      
[    3.234024] imx6q-pcie 33800000.pcie: supply epdev_on not found, using dummy regulator
[    3.242348] imx6q-pcie 33800000.pcie: PLL REF_CLK is used!.              
[    3.276463] imx6q-pcie 33800000.pcie: PCIe PLL is locked.        
[    3.284714] imx6q-pcie 33800000.pcie: iATU unroll: enabled               
[    3.295015] imx6q-pcie 33800000.pcie: Detected iATU regions: 4 outbound, 4 inbound
[    3.309648] imx6q-pcie 33800000.pcie: host bridge /soc@0/pcie@33800000 ranges:
[    3.316925] imx6q-pcie 33800000.pcie:       IO 0x001ff80000..0x001ff8ffff -> 0x0000000000
[    3.330476] imx6q-pcie 33800000.pcie:      MEM 0x0018000000..0x001fefffff -> 0x0018000000
[    3.342505] imx6q-pcie 33800000.pcie: iATU unroll: enabled               
[    3.351821] imx6q-pcie 33800000.pcie: Detected iATU regions: 4 outbound, 4 inbound
[    3.444200] imx6q-pcie 33800000.pcie: Link up
...
...

Check which are the devices connected to the PCIe.

root@desk-mx8mm:~# lspci
00:00.0 PCI bridge: Synopsys, Inc. DWC_usb3 / PCIe bridge (rev 01)
01:00.0 Network controller: Intel Corporation Wireless 7260 (rev bb)
root@desk-mx8mm:~#

Additional information[edit | edit source]