Other Parts Discussed in Thread: AM62P, AM62P5
Tool/software:
I am working on bringing up a Linux-Linux partitioned system using the Jailhouse Hypervisor on the AM62P platform, based on Processor SDK Linux 11.01.05.03.
The goal is to run a Linux inmate alongside the root Linux. I have followed the official TI Jailhouse documentation:
https://software-dl.ti.com/processor-sdk-linux/esd/AM62PX/11_01_05_03/exports/docs/linux/Foundational_Components/Hypervisor/Jailhouse.html
What I have done so far:
1. Downloaded the following image from TI:
tisdk-jailhouse-image-am62pxx-evm-11.01.05.03.rootfs.wic.xz
Flashed the image using: - sudo dd if=tisdk-jailhouse-image-am62pxx-evm-11.01.05.03.rootfs.wic of=/dev/sda bs=4M status=progress
On the board, I ran the following commands:
modprobe jailhouse
jailhouse enable /usr/share/jailhouse/cells/k3-am62p5-sk.cell
jailhouse cell create /usr/share/jailhouse/cells/k3-am62p5-sk-linux-demo.cell
jailhouse cell load k3-am62p5-sk-linux-demo /usr/libexec/jailhouse/linux-loader.bin -a 0x0 -s "kernel=0x9e0200000 dtb=0x9e0000000" -a 0x1000 /boot/Image -a 0x9e0200000 /boot/tisdk-jailhouse-inmate-am62pxx-evm.rootfs.cpio -a 0x9e2a5e000 /usr/share/jailhouse/inmate-k3-am62p5-sk.dtb -a 0x9e0000000
jailhouse cell start k3-am62p5-sk-linux-demo
After starting the inmate cell, I observe a kernel panic over /dev/ttyUSB1 with the following error:
[ 0.000000] Booting Linux on physical CPU 0x0000000001 [0x410fd034]
[ 0.000000] Linux version 6.12.35-ti-gb8c660f7f520 (oe-user@oe-host) (aarch64-oe-linux-gcc (GCC) 13.4.0, GNU ld (GNU Binutils) 2.42.0.20240723) #1 SMP PREEMPT Wed Jul 2 13:54:19 UTC 2025
[ 0.000000] KASLR disabled due to lack of seed
[ 0.000000] Machine model: Texas Instruments AM62P5 Inmate Model
[ 0.000000] efi: UEFI not found.
[ 0.000000] OF: reserved mem: Reserved memory: No reserved-memory node in the DT
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x00000009e0000000-0x00000009fffeffff]
[ 0.000000] DMA32 empty
[ 0.000000] Normal empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x00000009e0000000-0x00000009fffeffff]
[ 0.000000] Initmem setup node 0 [mem 0x00000009e0000000-0x00000009fffeffff]
[ 0.000000] On node 0, zone DMA: 16 pages in unavailable ranges
[ 0.000000] cma: Reserved 32 MiB at 0x00000009e9a00000 on node -1
[ 0.000000] psci: probing for conduit method from DT.
[ 0.000000] psci: PSCIv1.1 detected in firmware.
[ 0.000000] psci: Using standard PSCI v0.2 function IDs
[ 0.000000] psci: MIGRATE_INFO_TYPE not supported.
[ 0.000000] psci: SMC Calling Convention v1.1
[ 0.000000] percpu: Embedded 22 pages/cpu s51672 r8192 d30248 u90112
[ 0.000000] Detected VIPT I-cache on CPU0
[ 0.000000] CPU features: detected: GIC system register CPU interface
[ 0.000000] CPU features: detected: ARM erratum 845719
[ 0.000000] alternatives: applying boot alternatives
[ 0.000000] Kernel command line: console=ttyS1,115200n8
[ 0.000000] Dentry cache hash table entries: 65536 (order: 7, 524288 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 32768 (order: 6, 262144 bytes, linear)
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 131056
[ 0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
[ 0.000000] software IO TLB: SWIOTLB bounce buffer size adjusted to 0MB
[ 0.000000] software IO TLB: area num 4.
[ 0.000000] software IO TLB: SWIOTLB bounce buffer size roundup to 1MB
[ 0.000000] software IO TLB: mapped [mem 0x00000009ff4c0000-0x00000009ff5c0000] (1MB)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=3, Nodes=1
[ 0.000000] rcu: Preemptible hierarchical RCU implementation.
[ 0.000000] rcu: RCU event tracing is enabled.
[ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=512 to nr_cpu_ids=3.
[ 0.000000] Trampoline variant of Tasks RCU enabled.
[ 0.000000] Tracing variant of Tasks RCU enabled.
[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=3
[ 0.000000] RCU Tasks: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=3.
[ 0.000000] RCU Tasks Trace: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=3.
[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[ 0.000000] GICv3: 256 SPIs implemented
[ 0.000000] GICv3: 0 Extended SPIs implemented
[ 0.000000] Root IRQ handler: gic_handle_irq
[ 0.000000] GICv3: GICv3 features: 16 PPIs
[ 0.000000] GICv3: GICD_CTRL.DS=0, SCR_EL3.FIQ=0
[ 0.000000] GICv3: CPU0: found redistributor 1 region 0:0x00000000018a0000
[ 0.000000] ITS: No ITS available, not enabling LPIs
[ 0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[ 0.000000] arch_timer: cp15 timer(s) running at 200.00MHz (virt).
[ 0.000000] clocksource: arch_sys_counter: mask: 0x3ffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns
[ 0.000000] sched_clock: 58 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
[ 0.000150] Console: colour dummy device 80x25
[ 0.000191] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=800000)
[ 0.000201] pid_max: default: 32768 minimum: 301
[ 0.000270] LSM: initializing lsm=capability,selinux
[ 0.000320] SELinux: Initializing.
[ 0.000761] Mount-cache hash table entries: 1024 (order: 1, 8192 bytes, linear)
[ 0.000770] Mountpoint-cache hash table entries: 1024 (order: 1, 8192 bytes, linear)
[ 0.001628] cacheinfo: Unable to detect cache hierarchy for CPU 0
[ 0.002590] rcu: Hierarchical SRCU implementation.
[ 0.002596] rcu: Max phase no-delay instances is 1000.
[ 0.002750] Timer migration: 1 hierarchy levels; 8 children per group; 1 crossnode level
[ 0.002897] EFI services will not be available.
[ 0.003042] smp: Bringing up secondary CPUs ...
[ 0.003410] Detected VIPT I-cache on CPU1
[ 0.003479] GICv3: CPU1: found redistributor 2 region 0:0x00000000018c0000
[ 0.003539] CPU1: Booted secondary processor 0x0000000002 [0x410fd034]
[ 0.004147] Detected VIPT I-cache on CPU2
[ 0.004206] GICv3: CPU2: found redistributor 3 region 0:0x00000000018e0000
[ 0.004251] CPU2: Booted secondary processor 0x0000000003 [0x410fd034]
[ 0.004370] smp: Brought up 1 node, 3 CPUs
[ 0.004376] SMP: Total of 3 processors activated.
[ 0.004379] CPU: All CPU(s) started at EL1
[ 0.004383] CPU features: detected: 32-bit EL0 Support
[ 0.004387] CPU features: detected: CRC32 instructions
[ 0.004426] alternatives: applying system-wide alternatives
[ 0.004979] Memory: 345756K/524224K available (13056K kernel code, 1258K rwdata, 4680K rodata, 2752K init, 640K bss, 143792K reserved, 32768K cma-reserved)
[ 0.005609] devtmpfs: initialized
[ 0.007076] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[ 0.007095] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[ 0.007819] 27120 pages in range for non-PLT usage
[ 0.007830] 518640 pages in range for PLT usage
[ 0.008131] pinctrl core: initialized pinctrl subsystem
[ 0.008636] DMI not present or invalid.
[ 0.010868] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[ 0.011752] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations
[ 0.011978] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[ 0.012217] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[ 0.012278] audit: initializing netlink subsys (disabled)
[ 0.012536] audit: type=2000 audit(0.012:1): state=initialized audit_enabled=0 res=1
[ 0.012927] thermal_sys: Registered thermal governor 'step_wise'
[ 0.012931] thermal_sys: Registered thermal governor 'power_allocator'
[ 0.012978] cpuidle: using governor menu
[ 0.013099] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[ 0.013176] ASID allocator initialised with 65536 entries
[ 0.014197] /interconnect@f0000/interrupt-controller@1800000: Fixed dependency cycle(s) with /interconnect@f0000/interrupt-controller@1800000
[ 0.015326] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
[ 0.015333] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page
[ 0.015338] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages
[ 0.015340] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page
[ 0.015344] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
[ 0.015347] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
[ 0.015350] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
[ 0.015353] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
[ 0.016909] iommu: Default domain type: Translated
[ 0.016917] iommu: DMA domain TLB invalidation policy: strict mode
[ 0.017217] SCSI subsystem initialized
[ 0.017520] usbcore: registered new interface driver usbfs
[ 0.017547] usbcore: registered new interface driver hub
[ 0.017574] usbcore: registered new device driver usb
[ 0.017722] pps_core: LinuxPPS API ver. 1 registered
[ 0.017726] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.017737] PTP clock support registered
[ 0.017766] EDAC MC: Ver: 3.0.0
[ 0.018032] scmi_core: SCMI protocol bus registered
[ 0.018281] FPGA manager framework
[ 0.018355] Advanced Linux Sound Architecture Driver Initialized.
[ 0.019176] vgaarb: loaded
[ 0.019464] clocksource: Switched to clocksource arch_sys_counter
[ 0.019691] VFS: Disk quotas dquot_6.6.0
[ 0.019709] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[ 0.026376] NET: Registered PF_INET protocol family
[ 0.026495] IP idents hash table entries: 8192 (order: 4, 65536 bytes, linear)
[ 0.027161] tcp_listen_portaddr_hash hash table entries: 256 (order: 0, 4096 bytes, linear)
[ 0.027178] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[ 0.027190] TCP established hash table entries: 4096 (order: 3, 32768 bytes, linear)
[ 0.027253] TCP bind hash table entries: 4096 (order: 5, 131072 bytes, linear)
[ 0.027353] TCP: Hash tables configured (established 4096 bind 4096)
[ 0.027433] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 0.027485] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 0.027599] NET: Registered PF_UNIX/PF_LOCAL protocol family
[ 0.027996] RPC: Registered named UNIX socket transport module.
[ 0.028002] RPC: Registered udp transport module.
[ 0.028005] RPC: Registered tcp transport module.
[ 0.028007] RPC: Registered tcp-with-tls transport module.
[ 0.028009] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.028017] NET: Registered PF_XDP protocol family
[ 0.028034] PCI: CLS 0 bytes, default 64
[ 0.028361] Unpacking initramfs...
[ 0.028369] Initramfs unpacking failed: invalid magic at start of compressed archive
[ 0.032718] Initialise system trusted keyrings
[ 0.033093] workingset: timestamp_bits=46 max_order=17 bucket_order=0
[ 0.033504] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.033885] NFS: Registering the id_resolver key type
[ 0.033921] Key type id_resolver registered
[ 0.033924] Key type id_legacy registered
[ 0.033942] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[ 0.033948] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[ 0.061936] Freeing initrd memory: 109888K
[ 0.081987] Key type asymmetric registered
[ 0.081994] Asymmetric key parser 'x509' registered
[ 0.082118] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 244)
[ 0.082366] io scheduler mq-deadline registered
[ 0.082371] io scheduler kyber registered
[ 0.082406] io scheduler bfq registered
[ 0.083341] ledtrig-cpu: registered to indicate activity on CPUs
[ 0.083727] pci-host-generic 76000000.pci: host bridge /interconnect@f0000/pci@76000000 ranges:
[ 0.083759] pci-host-generic 76000000.pci: MEM 0x0010000000..0x001001ffff -> 0x0010000000
[ 0.083825] pci-host-generic 76000000.pci: ECAM at [mem 0x76000000-0x760fffff] for [bus 00]
[ 0.083945] pci-host-generic 76000000.pci: PCI host bridge to bus 0000:00
[ 0.083953] pci_bus 0000:00: root bus resource [bus 00]
[ 0.083958] pci_bus 0000:00: root bus resource [mem 0x10000000-0x1001ffff]
[ 0.083997] pci 0000:00:00.0: [110a:4106] type 00 class 0xff0000 conventional PCI endpoint
[ 0.084021] pci 0000:00:00.0: BAR 0 [mem 0x00000000-0x00000fff]
[ 0.084219] pci 0000:00:01.0: [110a:4106] type 00 class 0xff0001 conventional PCI endpoint
[ 0.084238] pci 0000:00:01.0: BAR 0 [mem 0x00000000-0x00000fff]
[ 0.084645] pci 0000:00:00.0: BAR 0 [mem 0x10000000-0x10000fff]: assigned
[ 0.084656] pci 0000:00:01.0: BAR 0 [mem 0x10001000-0x10001fff]: assigned
[ 0.084666] pci_bus 0000:00: resource 4 [mem 0x10000000-0x1001ffff]
[ 0.088352] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[ 0.095030] loop: module loaded
[ 0.095729] megasas: 07.727.03.00-rc1
[ 0.098359] tun: Universal TUN/TAP device driver, 1.6
[ 0.098828] ivshmem-net 0000:00:01.0: enabling device (0000 -> 0002)
[ 0.098919] ivshmem-net 0000:00:01.0: TX memory at 0x00000009dfb80000, size 0x000000000007f000
[ 0.098926] ivshmem-net 0000:00:01.0: RX memory at 0x00000009dfb01000, size 0x000000000007f000
[ 0.099738] uio_ivshmem 0000:00:00.0: enabling device (0000 -> 0002)
[ 0.099795] uio_ivshmem 0000:00:00.0: state_table at 0x00000009dfa00000, size 0x0000000000010000
[ 0.099806] uio_ivshmem 0000:00:00.0: rw_section at 0x00000009dfa10000, size 0x0000000000010000
[ 0.099815] uio_ivshmem 0000:00:00.0: input_sections at 0x00000009dfa20000, size 0x0000000000030000
[ 0.099822] uio_ivshmem 0000:00:00.0: output_section at 0x00000009dfa40000, size 0x0000000000010000
[ 0.100789] VFIO - User Level meta-driver version: 0.3
[ 0.101403] usbcore: registered new interface driver usb-storage
[ 0.101803] i2c_dev: i2c /dev entries driver
[ 0.102309] cpu cpu0: OPP-v2 not supported, cpufreq-dt will attempt to use legacy tables.
[ 0.102502] cpu cpu0: OPP table can't be empty
[ 0.102807] sdhci: Secure Digital Host Controller Interface driver
[ 0.102810] sdhci: Copyright(c) Pierre Ossman
[ 0.102864] sdhci-pltfm: SDHCI platform and OF driver helper
[ 0.103751] usbcore: registered new interface driver usbhid
[ 0.103756] usbhid: USB HID core driver
[ 0.104733] hw perfevents: enabled with armv8_pmuv3 PMU driver, 7 (0,8000003f) counters available
[ 0.105637] Initializing XFRM netlink socket
[ 0.105663] NET: Registered PF_PACKET protocol family
[ 0.105730] Key type dns_resolver registered
[ 0.113534] registered taskstats version 1
[ 0.113753] Loading compiled-in X.509 certificates
[ 0.122139] ti-sci 44043000.system-controller: ABI: 4.0 (firmware rev 0x000b '11.1.2--v11.01.02 (Fancy Rat)')
[ 0.123542] printk: legacy console [ttyS1] disabled
[ 0.123828] 2810000.serial: ttyS1 at MMIO 0x2810000 (irq = 17, base_baud = 3000000) is a 8250
[ 0.123897] printk: legacy console [ttyS1] enabled
[ 1.360472] clk: Disabling unused clocks
[ 1.364425] PM: genpd: Disabling unused power domains
[ 1.369581] ALSA device list:
[ 1.372635] No soundcards found.
[ 1.376867] /dev/root: Can't open blockdev
[ 1.381013] VFS: Cannot open root device "" or unknown-block(0,0): error -6
[ 1.387969] Please append a correct "root=" boot option; here are the available partitions:
[ 1.396322] List of all bdev filesystems:
[ 1.400325] ext3
[ 1.400328] ext2
[ 1.402244] ext4
[ 1.404170] squashfs
[ 1.406086] vfat
[ 1.408354]
[ 1.411757] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[ 1.420004] CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.12.35-ti-gb8c660f7f520 #1
[ 1.428079] Hardware name: Texas Instruments AM62P5 Inmate Model (DT)
[ 1.434502] Call trace:
[ 1.436938] dump_backtrace+0x90/0xe8
[ 1.440601] show_stack+0x18/0x24
[ 1.443910] dump_stack_lvl+0x34/0x8c
[ 1.447567] dump_stack+0x18/0x24
[ 1.450875] panic+0x390/0x3a4
[ 1.453924] mount_root_generic+0x274/0x354
[ 1.458098] mount_root+0x170/0x334
[ 1.461576] prepare_namespace+0x6c/0x2a4
[ 1.465575] kernel_init_freeable+0x250/0x290
[ 1.469925] kernel_init+0x20/0x1d4
[ 1.473404] ret_from_fork+0x10/0x20
[ 1.476972] SMP: stopping secondary CPUs
[ 1.480891] Kernel Offset: disabled
[ 1.484366] CPU features: 0x00,00000080,00200000,4200420b
[ 1.489751] Memory Limit: none
[ 1.492796] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]---
Please let me know how to proceed or if any debug steps are recommended.
Thanks in advance