Open main menu

DAVE Developer's Wiki β

Changes

DESK-MX8M-L/Peripherals/PCI express

9,324 bytes added, 15 April
no edit summary
!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"|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{{oldid|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"15734|Jan 20222021/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"|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" |{{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
|-
|}
=== Device tree configuration ===
 
==== ORCA SOM ====
 
Here below an example of device tree configuration used on standard DAVE's kit for the ORCA SOM:
</pre>
==== 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 peripheralin ORCA SOM===
====Linux messages at boot time====
...
...
[ 01.443763036587] ehci-pci: EHCI PCIplatform driver [ 1.052769] ohci-pci: CLS 0 bytesOHCI PCI platform driver [ 1.998472] imx6q-pcie 33800000.pcie: supply epdev_on not found, default 64using 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. [ 02.459987054543] imx6q-pcie 1ffc00033800000.pcie: no reserved region nodePCIe PLL is locked. [ 02.460090061522] imx6q-pcie 1ffc00033800000.pcie: 1ffc000iATU unroll: enabled [ 2.074094] imx6q-pcie supply epdev_on not found33800000.pcie: Detected iATU regions: 4 outbound, using dummy regulator4 inbound[ 02.460415088808] OF: PCIimx6q-pcie 33800000.pcie: host bridge /soc@0/pcie@1ffc000 33800000 ranges:[ 02.460451102731] OFimx6q-pcie 33800000.pcie: PCI: IO 0x01f80000..0x01f8ffff No bus range found for /soc@0/pcie@33800000, using [bus 00-> 0x00000000ff][ 02.460470118147] OFimx6q-pcie 33800000.pcie: PCI: MEM 0x01000000 IO 0x001ff80000..0x01efffff 0x001ff8ffff -> 0x010000000x0000000000[ 02.709248133976] imx6q-pcie 1ffc00033800000.pcie: phy link never came up MEM 0x0018000000..0x001fefffff -> 0x0018000000[ 02.712328149011] imx6q-pcie 1ffc00033800000.pcie: failed to initialize hostiATU unroll: enabled [ 02.712343161122] imx6q-pcie 1ffc00033800000.pcie: unable to add pcie port.Detected iATU regions: 4 outbound, 4 inbound [ 02.712571261489] imx6q-pcie: probe of 1ffc00033800000.pcie failed with error -110: Link up
...
...
</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.459055638881] 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:~# lspci00: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 diskroot@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>
The PCIe usage is strictly related to Check which are the peripheral type devices connected to the PCIe slot. Then <pre class="workstation-terminal">root@desk-mx8mm:~# lspci00:00.0 PCI bridge: Synopsys, the peripheral type defines the linux commands used for the accessing Inc. DWC_usb3 / PCIe bridge (rev 01)01:00.0 Network controller: Intel Corporation Wireless 7260 (hiding the PCIe bus commandsrev bb)root@desk-mx8mm:~#</pre>
=== Additional information ===
----
[[Category:ORCA]] [[Category:MITO 8M Mini]]
dave_user
427
edits