i.mx8qm jailhouse not booting

cancel
Showing results for 
Search instead for 
Did you mean: 

i.mx8qm jailhouse not booting

109 Views
mfitzpatrick
Contributor I

I'm having an issue getting the root cell to boot.

 

Log is as follows: 

U-Boot SPL 2019.04-master+geed200e0 (Sep 17 2021 - 02:06:08 +0000)

Normal Boot

Trying to boot from MMC1

Load image from MMC/SD 0x6b800

 

 

U-Boot 2019.04-master+geed200e0 (Sep 17 2021 - 02:06:08 +0000)

 

CPU:   NXP i.MX8QM RevB A53 at 1200 MHz at 60C

 

Model: SECO i.MX8QM C26

Board: iMX8QM C26

Boot:  MMC0

DRAM:  4 GiB

Debug uart: serial@5a060000

Additional uart: serial@5a070000

MMC:   FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2

Loading Environment from MMC... OK

In:    serial@5a060000

Out:   serial@5a060000

Err:   serial@5a060000

 

BuildInfo:

  - SCFW 4e91f37b, SECO-FW d7523fe8, IMX-MKIMAGE cce8c4da, ATF 70fa7bc

  - U-Boot 2019.04-master+geed200e0

 

flash target is MMC:0

Net:

Warning: ethernet@5b040000 (eth0) using random MAC address - b2:94:0f:15:ef:52

eth0: ethernet@5b040000

Fastboot: Normal

Normal Boot

Hit any key to stop autoboot:  0

u-boot seco c26=>

u-boot seco c26=> setenv bootargs console=ttyLP0,115200,earlycon=lpuart32,0x5a060000,115200 mem=1024M root=/dev/mmcblk0p2 rootwait rw clk_ignore_unused

u-boot seco c26=> ext2load mmc 0:1 0x80280000 Image

26073600 bytes read in 372 ms (66.8 MiB/s)

u-boot seco c26=> ext2load mmc 0:1 0x83000000 seco-imx8qm-c26-root.dtb

115705 bytes read in 16 ms (6.9 MiB/s)

u-boot seco c26=> scu_rm dtb 0x83000000

fdt addr 0000000083000000

u-boot seco c26=> booti 0x80280000 - 0x83000000

## Flattened Device Tree blob at 83000000

   Booting using the fdt blob at 0x83000000

   Loading Device Tree to 00000000df6e0000, end 00000000df6ff3f8 ... OK

Disable gpt0@5d140000, resource id 207 not owned

/dma-controller@5a1f0000, 60740

/dma-controller@591F0000, 61584

/dma-controller@591F0000, 61584

/dma-controller@599F0000, 62628

 

Starting kernel ...

 

  ^ This is where it hangs


manual u-boot booting steps:

setenv bootargs console=ttyLP0,115200,earlycon=lpuart32,0x5a060000,115200 mem=1024M root=/dev/mmcblk0p2 rootwait rw clk_ignore_unused

ext2load mmc 0:1 0x80280000 Image

ext2load mmc 0:1 0x83000000 seco-imx8qm-c26-root.dtb

scu_rm dtb 0x83000000

booti 0x80280000 - 0x83000000

 

Configurations and data:

 

Linux : 4.19 (yocto)

u-boot: SPL 2019.04

Jailhouse: v0.10

 

Git log of jailhouse version for reference:

 

commit e83ab629ccc6f44e4caa05bc51c66d2f86546ee6 (HEAD -> devtool, tag: rel_imx_4.19.35_1.1.0, tag: rel_imx_4.14.98_2.3.3_patch, tag: rel_imx_4.14.98_2.3.1_patch, tag: rel_imx_4.14.98_2.3.0, tag: rel_imx_4.14.98_2.2.0, tag: devtool-patched, tag: devtool-base, origin/imx_4.19.35_1.1.0, origin/imx_4.14.98_2.3.0, origin/imx_4.14.98_2.2.0, imx_4.19.35_1.1.0)

Author: Peng Fan <peng.fan@nxp.com>

Date:   Wed Jul 3 14:43:59 2019 +0800

 

    Pass MU2_A interrupts to inmate linux

 

    The 4.19 Linux use MU interrupt for IPC, so we need pass MU_2A interrupt

    to inmate linux.

 

    Signed-off-by: Peng Fan <peng.fan@nxp.com>

 

Device Tree (sits atop what is line-for-line fsl-imx8qm.dtsi):

/*

* Copyright 2018 NXP

*

* This program is free software; you can redistribute it and/or

* modify it under the terms of the GNU General Public License

* as published by the Free Software Foundation; either version 2

* of the License, or (at your option) any later version.

*

* This program is distributed in the hope that it will be useful,

* but WITHOUT ANY WARRANTY; without even the implied warranty of

* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the

* GNU General Public License for more details.

*/

 

#include "seco-imx8qm-c26-wrapper.dts"

 

/ {

        domu {

                /*

                 * There are 5 MUs, 0A is used by root cell, 1A is used

                 * by ATF, so for non-root cell, 2A/3A/4A could be used.

                 * SC_R_MU_0A

                 * SC_R_MU_1A

                 * SC_R_MU_2A

                 * SC_R_MU_3A

                 * SC_R_MU_4A

                 * The rsrcs and pads will be configured by uboot scu_rm cmd

                 */

                #address-cells = <1>;

                #size-cells = <0>;

                doma {

                        /*

                         * This is not for domu, this is just reuse

                         * the method for jailhouse inmate non root cell

                         * Linux.

                         */

                        compatible = "xen,domu";

                        /*

                         * The reg property will be updated by U-Boot to

                         * reflect the partition id.

                         */

                        reg = <0>;

                        init_on_rsrcs = <

                                SC_R_MU_2A

                        >;

                        rsrcs = <

                                SC_R_SDHC_0

                                SC_R_DMA_0_CH16

                                SC_R_DMA_0_CH17

                                SC_R_UART_2

                                SC_R_MU_2A

                        >;

                        pads = <

                                /* emmc */

                                SC_P_EMMC0_CLK

                                SC_P_EMMC0_CMD

                                SC_P_EMMC0_DATA0

                                SC_P_EMMC0_DATA1

                                SC_P_EMMC0_DATA2

                                SC_P_EMMC0_DATA3

                                SC_P_EMMC0_DATA4

                                SC_P_EMMC0_DATA5

                                SC_P_EMMC0_DATA6

                                SC_P_EMMC0_DATA7

                                SC_P_EMMC0_STROBE

                                SC_P_EMMC0_RESET_B

                                /* lpuart2 */

                                SC_P_UART0_RTS_B

                                SC_P_UART0_CTS_B

                        >;

                };

        };

 

};

 

&{/reserved-memory} {

 

        jh_reserved: jh@fdc00000 {

                no-map;

                reg = <0x0 0xfdc00000 0x0 0x400000>;

        };

 

        loader_reserved: loader@fdb00000 {

                no-map;

                reg = <0x0 0xfdb00000 0x0 0x00100000>;

        };

 

        ivshmem_reserved: ivshmem@fd900000 {

                no-map;

                reg = <0x0 0xfd900000 0x0 0x00200000>;

        };

 

        pci_reserved: pci@fd700000 {

                no-map;

                reg = <0x0 0xfd700000 0x0 0x00200000>;

        };

 

        /* Decrease if no need such big memory */

        inmate_reserved: inmate@df7000000 {

                no-map;

                reg = <0x0 0xdf700000 0x0 0x1e000000>;

        };

};

 

&smmu {

        /* Jailhouse hypervisor will initialize SMMU and use it. */

        status = "disabled";

};

 

&usdhc1 {

        /* Let U-Boot program SID */

        iommus = <&smmu 0x10 0x7f80>;

        /delete-property/ compatible;

};

 

&lpuart2 {

        /* Let inmate linux use this for console */

        status = "disabled";

};

 

Tags (1)
0 Kudos
3 Replies

55 Views
mfitzpatrick
Contributor I

The *.dtb does boot without using the jailhouse dtb.  I tried disabling those resources (one at a time and all together) to see if it made any difference but the symptom is the same.  I'm working on getting a jtag debugger up and running now to get more data.

0 Kudos

87 Views
pengfan
NXP Employee
NXP Employee

Does seco-imx8qm-c26-wrapper.dtb or seco-imx8qm-c26.dtb boot without using jailhouse dtb?

Do you have a jtag to see where it hangs? It is a bit hard to tell where it hangs without any log.

 

Maybe worth give a try with dropping the resoruces one by one to see whether it is one resource cause issue.

                                SC_R_SDHC_0

                                SC_R_DMA_0_CH16

                                SC_R_DMA_0_CH17

                                SC_R_UART_2

                                SC_R_MU_2A

0 Kudos

49 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Good!!

0 Kudos