Hello,
The iMX8QM datasheet states that it is possible to use two separate PCI single-lane interfaces on PCIe and SATA lines:
I have managed to get links on two PCIe devices connected to PCIE0 and PCIE1 balls of the chip, but I cannot get the PCIE0+PCIE_SATA balls.
Can it be configured via dts file?
Should it work?
Thank you, Leonid.
Hello,
Currently, I am using a pretty old release: 4.14.98, but I tried the newer one too: 5.10.72
Thank you, Leonid.
Hi Leonid,
Hope you are doing well.
Apologies for delay in response.
Please see below the sample code for i.MX8QM for SATA interface configurations:
&sata {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pcieb>;
clkreq-gpio = <&lsio_gpio4 30 GPIO_ACTIVE_LOW>;
ext_osc = <1>;
status = "okay";
};
pinctrl_pcieb: pciebgrp{
fsl,pins = <
IMX8QM_PCIE_CTRL1_CLKREQ_B_LSIO_GPIO4_IO30 0x06000021
>;
};
Thanks & Regards,
Ritesh M Patel
Hello,
This configuration works fine. PCIEa + SATA works correctly.
The problem is that I need to make PCIEb work instead of SATA.
So I have to define:
hsio-cfg = <PCIEAX2PCIEBX1>;
In this case, the PCIEb crushes with the below error.
imx6q-pcie 5f000000.pcie: 5f000000.pcie supply epdev_on not found, using dummy regulator
OF: PCI: host bridge /pcie@0x5f000000 ranges:
OF: PCI: No bus range found for /pcie@0x5f000000, using [bus 00-ff]
OF: PCI: IO 0x6ff80000..0x6ff8ffff -> 0x00000000
OF: PCI: MEM 0x60000000..0x6fefffff -> 0x60000000
imx6q-pcie 5f000000.pcie: pcie phy pll is locked.
imx6q-pcie 5f000000.pcie: Speed change timeout
imx6q-pcie 5f000000.pcie: Roll back to GEN1 link!
imx6q-pcie 5f000000.pcie: Link up, Gen1
imx6q-pcie 5f000000.pcie: PCI host bridge to bus 0000:00
pci_bus 0000:00: root bus resource [bus 00-ff]
pci_bus 0000:00: root bus resource [io 0x0000-0xffff]
pci_bus 0000:00: root bus resource [mem 0x60000000-0x6fefffff]
pci 0000:00:00.0: BAR 0: assigned [mem 0x60000000-0x60ffffff 64bit]
pci 0000:00:00.0: BAR 6: assigned [mem 0x61000000-0x61ffffff pref]
pci 0000:00:00.0: BAR 8: assigned [mem 0x62000000-0x620fffff]
pci 0000:00:00.0: BAR 7: assigned [io 0x1000-0x1fff]
pci 0000:01:00.0: BAR 1: assigned [mem 0x62000000-0x62000fff]
pci 0000:01:00.0: BAR 0: assigned [io 0x1000-0x103f]
pci 0000:00:00.0: PCI bridge to [bus 01-ff]
pci 0000:00:00.0: bridge window [io 0x1000-0x1fff]
pci 0000:00:00.0: bridge window [mem 0x62000000-0x620fffff]
pcieport 0000:00:00.0: Signaling PME with IRQ 406
imx6q-pcie 5f010000.pcie: 5f010000.pcie supply epdev_on not found, using dummy regulator
OF: PCI: host bridge /pcie@0x5f010000 ranges:
OF: PCI: No bus range found for /pcie@0x5f010000, using [bus 00-ff]
OF: PCI: IO 0x7ff80000..0x7ff8ffff -> 0x00000000
OF: PCI: MEM 0x70000000..0x7fefffff -> 0x70000000
Synchronous External Abort: synchronous external abort (0x96000210) at 0xffff00000c8a0000
Internal error: : 96000210 [#1] PREEMPT SMP
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.14.98-imx8qm+g45dea31b9fe4 #1
Hardware name: Variscite SPEAR-MX8 i.MX8QM HDMI (DT)
task: ffff800878078000 task.stack: ffff000008048000
PC is at regmap_mmio_read32le+0x8/0x18
LR is at regmap_mmio_read+0x40/0x68
pc : [<ffff000008505c10>] lr : [<ffff000008505d08>] pstate: 000000c5
sp : ffff00000804b9b0
x29: ffff00000804b9b0 x28: ffff800878a8cb08
x27: ffff800878a8cb08 x26: ffff800878a85a80
x25: 0000000000000000 x24: 0000000000000000
x23: 0000000000000001 x22: ffff00000804ba6c
x21: ffff00000804ba6c x20: 00000000000a0000
x19: ffff800878a74c80 x18: 0000000000000001
x17: 0000000000000022 x16: 0000000000000780
x15: ffffffffffffffff x14: ffff800878aa1e04
x13: ffff800878aa1e03 x12: 0000000000000038
x11: 0101010101010101 x10: 0000000000000040
x9 : ffff000008b8c7e0 x8 : ffff800876077d98
x7 : ffff800876077dc0 x6 : 0000000000000000
x5 : 0000000000000000 x4 : 0000000000000000
x3 : ffff000008505cc8 x2 : ffff000008505c08
x1 : 00000000000a0000 x0 : ffff00000c8a0000
Process swapper/0 (pid: 1, stack limit = 0xffff000008048000)
Call trace:
Exception stack(0xffff00000804b870 to 0xffff00000804b9b0)
b860: ffff00000c8a0000 00000000000a0000
b880: ffff000008505c08 ffff000008505cc8 0000000000000000 0000000000000000
b8a0: 0000000000000000 ffff800876077dc0 ffff800876077d98 ffff000008b8c7e0
b8c0: 0000000000000040 0101010101010101 0000000000000038 ffff800878aa1e03
b8e0: ffff800878aa1e04 ffffffffffffffff 0000000000000780 0000000000000022
b900: 0000000000000001 ffff800878a74c80 00000000000a0000 ffff00000804ba6c
b920: ffff00000804ba6c 0000000000000001 0000000000000000 0000000000000000
b940: ffff800878a85a80 ffff800878a8cb08 ffff800878a8cb08 ffff00000804b9b0
b960: ffff000008505d08 ffff00000804b9b0 ffff000008505c10 00000000000000c5
b980: ffff800878abdd18 0000000000000000 ffffffffffffffff ffff000008b8c000
b9a0: ffff00000804b9b0 ffff000008505c10
[<ffff000008505c10>] regmap_mmio_read32le+0x8/0x18
[<ffff0000084fedec>] _regmap_bus_reg_read+0x14/0x20
[<ffff000008500710>] _regmap_read+0x60/0xe8
[<ffff000008500b08>] _regmap_update_bits+0xa0/0xe0
[<ffff000008501b80>] regmap_update_bits_base+0x60/0x90
[<ffff0000083cdd3c>] imx_pcie_init_phy+0x60c/0x8f8
[<ffff0000083d0550>] imx_pcie_host_init+0x38/0x300
[<ffff0000083cce7c>] dw_pcie_host_init+0x22c/0x548
[<ffff0000083ceb44>] imx_pcie_probe+0x534/0xb58
[<ffff0000084e4e40>] platform_drv_probe+0x58/0xb8
[<ffff0000084e3220>] driver_probe_device+0x210/0x2d0
[<ffff0000084e339c>] __driver_attach+0xbc/0xc0
[<ffff0000084e137c>] bus_for_each_dev+0x4c/0x98
[<ffff0000084e2b38>] driver_attach+0x20/0x28
[<ffff0000084e2688>] bus_add_driver+0x1b8/0x228
[<ffff0000084e3d38>] driver_register+0x60/0xf8
[<ffff0000084e4d90>] __platform_driver_register+0x40/0x48
[<ffff000008b08d10>] imx_pcie_init+0x18/0x20
[<ffff000008083490>] do_one_initcall+0x38/0x128
[<ffff000008af0cec>] kernel_init_freeable+0x18c/0x22c
[<ffff0000087fee58>] kernel_init+0x10/0x100
[<ffff0000080846d8>] ret_from_fork+0x10/0x18
Code: d65f03c0 d503201f f9400000 8b214000 (b9400000)
---[ end trace b89b4811b8679178 ]---
note: swapper/0[1] exited with preempt_count 1
Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
SMP: stopping secondary CPUs
Kernel Offset: disabled
CPU features: 0x180200c
Memory Limit: none
---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
Thank you, Leonid.
Hi Leonid,
Could please confirm which BSP version you are currently using?
Thanks & Regards,
Ritesh M Patel
Hello @riteshmpatel,
Currently, I am using a pretty old release: 4.14.98, but I tried the newer one too: 5.10.72
Thank you, Leonid.
Hi Leonid,
The additional information is sent via email. Kindly check your email.
Thanks & Regards,
Ritesh M Patel