iMX8QM PCI pins configuration

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

iMX8QM PCI pins configuration

1,544 Views
Leonid_s
Contributor IV

Hello,

The iMX8QM datasheet states that it is possible to use two separate PCI single-lane interfaces on PCIe and SATA lines:

Leonid_s_0-1660061353121.png

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.

 

0 Kudos
Reply
7 Replies

1,486 Views
Leonid_s
Contributor IV

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.

 

0 Kudos
Reply

1,517 Views
riteshmpatel
NXP TechSupport
NXP TechSupport

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

0 Kudos
Reply

1,508 Views
Leonid_s
Contributor IV

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.

 

0 Kudos
Reply

1,492 Views
riteshmpatel
NXP TechSupport
NXP TechSupport

Hi Leonid,

Could please confirm which BSP version you are currently using?

Thanks & Regards,

Ritesh M Patel

0 Kudos
Reply

1,469 Views
Leonid_s
Contributor IV

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.

0 Kudos
Reply

1,467 Views
riteshmpatel
NXP TechSupport
NXP TechSupport

Hi Leonid,

The additional information is sent via email. Kindly check your email.

Thanks & Regards,

Ritesh M Patel

0 Kudos
Reply

100 Views
imed
Contributor I
Is there a way I can get access to that reference dts code? I am trying to accomplish the exact same thing.
Many thanks!
0 Kudos
Reply