We have made a custom board around the i.MX8M Mini processor that is mainly a stripped down version of the EVK board. One of the things removed is anything attached to the PCIE pins, and they have been left unconnected as per the guidance of the i.MX 8M Mini Hardware Developer’s Guide (section 3.9.1). We are using imx-android-10.0.0_2.0.0.tar.gz as a base, so far just the only changes are to u-boot to initialize our display, but the below error occurs whether it is attached or not.
Unfortunately, Android encounters an error during boot, it seems to be generated in the imx6_pcie_host_init function:
[ 3.187383] imx6q-pcie 33800000.pcie: 33800000.pcie supply epdev_on not found, using dummy regulator
[ 3.196760] imx6q-pcie 33800000.pcie: host bridge /soc@0/pcie@33800000 ranges:
[ 3.204019] imx6q-pcie 33800000.pcie: IO 0x1ff80000..0x1ff8ffff -> 0x00000000
[ 3.211434] imx6q-pcie 33800000.pcie: MEM 0x18000000..0x1fefffff -> 0x18000000
[ 3.218902] imx6q-pcie 33800000.pcie: EXT REF_CLK is used!.
[ 3.220476] mmc0: SDHCI controller on 30b40000.mmc [30b40000.mmc] using ADMA
[ 3.224964] SError Interrupt on CPU1, code 0xbf000002 -- SError
[ 3.224966] CPU: 1 PID: 213 Comm: kworker/u8:2 Not tainted 5.4.3-dirty #16
[ 3.224968] Hardware name: FSL i.MX8MM EVK board (DT)
[ 3.224969] Workqueue: events_unbound async_run_entry_fn
[ 3.224972] pstate: 20400005 (nzCv daif +PAN -UAO)
[ 3.224973] pc : regmap_update_bits_base+0x0/0x8c
[ 3.224975] lr : imx6_pcie_init_phy+0x4bc/0x570
[ 3.224976] sp : ffff80001aeeb990
[ 3.224977] x29: ffff80001aeeb9b0 x28: ffff00007b4717a0
[ 3.224980] x27: ffff80001169f3eb x26: ffff00007b4717a0
[ 3.224983] x25: 0000000000000000 x24: ffff00007b4710e0
[ 3.224986] x23: ffff00007b4710a0 x22: ffff00007fbf7a28
[ 3.224989] x21: 0000000000000001 x20: 0000000000000038
[ 3.224992] x19: ffff00007b12d480 x18: 0000000000000004
[ 3.224995] x17: 0000000000000041 x16: ffff8000111527e8
[ 3.224998] x15: 0000000000000000 x14: 0a2e216465737520
[ 3.225001] x13: ffff800011f5fe38 x12: 0000000000000000
[ 3.225004] x11: 0000000000000000 x10: 0000000006666998
[ 3.225007] x9 : 00000000ffffffff x8 : 0000000000000005
[ 3.225010] x7 : 4c435f4645522054 x6 : 0000000000000000
[ 3.225013] x5 : 0000000000000000 x4 : 0000000000000000
[ 3.225016] x3 : 0000000000004000 x2 : 000000000000f000
[ 3.225019] x1 : 0000000000000030 x0 : ffff00007a399800
[ 3.225023] Kernel panic - not syncing: Asynchronous SError Interrupt
[ 3.225025] CPU: 1 PID: 213 Comm: kworker/u8:2 Not tainted 5.4.3-dirty #16
[ 3.225026] Hardware name: FSL i.MX8MM EVK board (DT)
[ 3.225027] Workqueue: events_unbound async_run_entry_fn
[ 3.225029] Call trace:
[ 3.225030] dump_backtrace+0x0/0x134
[ 3.225032] show_stack+0x14/0x1c
[ 3.225033] dump_stack+0xa0/0xd8
[ 3.225034] panic+0x148/0x33c
[ 3.225035] panic+0x0/0x33c
[ 3.225036] arm64_serror_panic+0x70/0x7c
[ 3.225037] do_serror+0x160/0x170
[ 3.225039] el1_error+0xbc/0x160
[ 3.225040] regmap_update_bits_base+0x0/0x8c
[ 3.225041] imx6_pcie_host_init+0x54/0x180
[ 3.225042] dw_pcie_host_init+0x35c/0x5fc
[ 3.225044] imx6_pcie_probe+0x7c8/0xa60
[ 3.225045] platform_drv_probe+0x8c/0xb4
[ 3.225046] really_probe+0x22c/0x4f4
[ 3.225047] driver_probe_device+0x60/0xf8
[ 3.225049] __device_attach_driver+0xfc/0x114
[ 3.225050] bus_for_each_drv+0x7c/0xc4
[ 3.225051] __device_attach_async_helper+0x78/0xcc
[ 3.225053] async_run_entry_fn+0x44/0xf8
[ 3.225054] process_one_work+0x174/0x320
[ 3.225055] worker_thread+0x300/0x480
[ 3.225056] kthread+0x10c/0x11c
[ 3.225057] ret_from_fork+0x10/0x18
[ 3.231537] SMP: stopping secondary CPUs
[ 3.231539] Kernel Offset: disabled
[ 3.231540] CPU features: 0x0002,2000200c
[ 3.231541] Memory Limit: none
The same SD card can be put in an EVK board and Android will finish booting. That section of the boot on the EVK board looks like this:
[ 3.347224] imx6q-pcie 33800000.pcie: 33800000.pcie supply epdev_on not found, using dummy regulator
[ 3.356609] imx6q-pcie 33800000.pcie: host bridge /soc@0/pcie@33800000 ranges:
[ 3.363867] imx6q-pcie 33800000.pcie: IO 0x1ff80000..0x1ff8ffff -> 0x00000000
[ 3.371281] imx6q-pcie 33800000.pcie: MEM 0x18000000..0x1fefffff -> 0x18000000
[ 3.378748] imx6q-pcie 33800000.pcie: EXT REF_CLK is used!.
[ 3.380272] mmc0: SDHCI controller on 30b40000.mmc [30b40000.mmc] using ADMA
[ 3.392462] sdhci-esdhc-imx 30b50000.mmc: Got CD GPIO
And it continues on.
Solved! Go to Solution.
Hi Miles
if PCIe is unpowered as recommended by i.MX 8M Mini Hardware Developer’s Guide
it should be disabled in dts :
&pcie0{
.. status = "disabled";
imx8mm-evk.dts\freescale\dts\boot\arm64\arch - linux-imx - i.MX Linux kernel
Also for custom board recommended to rebuild image with modifications described
in documentation included in ddr test
i.MX 8M Family DDR Tool Release
So first it is necessary to run ddr test, imx-android-10.0.0_2.0.0.tar.gz was built
for EVK board and may not work properly on custom board.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Miles
if PCIe is unpowered as recommended by i.MX 8M Mini Hardware Developer’s Guide
it should be disabled in dts :
&pcie0{
.. status = "disabled";
imx8mm-evk.dts\freescale\dts\boot\arm64\arch - linux-imx - i.MX Linux kernel
Also for custom board recommended to rebuild image with modifications described
in documentation included in ddr test
i.MX 8M Family DDR Tool Release
So first it is necessary to run ddr test, imx-android-10.0.0_2.0.0.tar.gz was built
for EVK board and may not work properly on custom board.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------