Jailhouse already supports ARMv8/ARM64; getting it running on a particular board is usually a platform bring-up task, not a new architecture port. The work is to confirm the boot and firmware prerequisites, reserve memory, describe the hardware accurately in system and cell configurations, and provide an appropriate device tree for each Linux inmate. The exact steps depend on the board, boot chain, Jailhouse revision, Linux version, and intended cell.
What “porting Jailhouse to ARMv8” means
Jailhouse is a partitioning hypervisor that Linux loads and configures. It assigns hardware resources to cells and is designed for static partitioning rather than scheduling workloads or overcommitting resources. The project describes it as “a partitioning Hypervisor based on Linux” and says it is “optimized for simplicity rather than feature richness.” Jailhouse project README
Because ARMv8/ARM64 is already supported upstream, a new effort usually means enabling a specific board or adapting its configuration—not adding ARM64 support from scratch. The upstream README lists example ARM64 boards and describes a QEMU demonstration, but that does not establish support for every ARMv8 board or revision. Jailhouse project README
Check the board prerequisites first
Before changing cell configuration, define the exact target board and revision, Jailhouse revision, Linux version, boot chain, and intended inmate. Compare the platform against the project’s prerequisites and confirm them against the documentation for that board and software release.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →#1 Best Overall
- High-performance foundation line, ARM Cortex-M4 core with DSP and FPU, 512 Kbytes Flash, 180 MHz CPU, ART Accelerator, Dual QSPI
- On-board ST-LINK/V2-1 debugger/programmer with SWD connector
- Can be powered from USB
- Three LEDs, Two Push-buttons
- Support of wide choice of Integrated Development Environments (IDEs) including IAR, ARM Keil, GCC-based IDEs
- Boot mode: The project README says ARM Linux must start in HYP mode.
- CPU management: PSCI must support CPU offlining.
- Available processors: The README specifies at least two logical CPUs.
- Reserved RAM: The hypervisor and additional cells need contiguous memory pre-allocated. The README gives limiting Linux-visible memory or reserving memory in the device tree as examples.
- Kernel baseline: The README states ARM 3.19+ and ARM64 4.7+ as baselines. These are historic project requirements, not a universal current recommendation; check the selected platform and Jailhouse revision.
- Boot-loader support: Confirm that the boot loader and board firmware support the required boot arrangement.
These are project-level requirements, not proof that a particular board’s firmware implements them correctly. A failure to enter HYP mode or offline CPUs as expected cannot be repaired by changing an inmate’s device tree.
Build the system configuration for the actual hardware
The system configuration describes the platform resources Jailhouse and the root cell use. The upstream README says there is no ARM configuration generator: ARM system configuration is manual work based on reference examples, hardware-specific datasheets, device trees, and system information. Jailhouse project README
Rank #2
- Ultra-low-power with FPU ARM Cortex-M4 MCU 80 MHz with 1 Mbyte Flash, LCD, USB OTG, DFSDM
- On-board ST-LINK/V2-1 debugger/programmer with SWD connector
- Can be powered from USB
- Three LEDs, Two Push-buttons
- Support of wide choice of Integrated Development Environments (IDEs) including IAR, ARM Keil, GCC-based IDEs
Use a maintained configuration for the closest supported target as a reference, not as a drop-in description of a different board. Check the actual CPU topology, interrupt lines and controller, memory ranges, and device assignments against the board’s documentation and firmware layout. A configuration that assigns the same resource to the root cell and an inmate defeats static isolation and may prevent a cell from starting correctly.
Prepare an ARM64 Linux inmate
The project guide says ARM/ARM64 Linux inmates do not require a specially modified kernel, but they do require a device tree. Start from the project’s device-tree templates for supported targets, then make sure the tree matches the resources assigned to that inmate. Jailhouse cell configuration guide
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Rank #3
- Describe only the memory and devices available to the cell.
- Check interrupt assignments against the cell configuration and the target hardware.
- Ensure the CPU assignment and device tree agree about the cell’s view of the platform.
- Do not copy addresses or interrupt values from another board unless the hardware documentation confirms they match.
Load Jailhouse and start a cell
The high-level flow is to install the kernel module, firmware, and tools for the selected Jailhouse revision, enable Jailhouse with the board’s system configuration, then create and start a cell with its payload and device tree. The following commands illustrate the documented i.MX 8M Mini/Nano and Little Kernel example; they are not universal ARM64 commands or file names. NXP Jailhouse Hypervisor on i.MX 8M Mini/Nano EVKs
- Load the module:
modprobe jailhouse. - Enable Jailhouse with the root-cell configuration:
jailhouse enable <rootcell>. - Create the inmate cell:
jailhouse cell create <lkcell>. - Load the cell’s device tree and
lk.binpayload using the addresses and procedure for that documented setup. - Start the cell with the Jailhouse tools for that setup.
The NXP example uses separate root-cell and Little Kernel cell configurations and assigns CPU cores, interrupt lines, memory regions, and a virtual PCI communication device. Its addresses, filenames, and toolchain instructions apply to that documented i.MX 8M setup; use the configuration and commands for your own target rather than substituting these values.
Rank #4
- Mainstream Mixed signals MCUs ARM Cortex-M4 core with DSP and FPU, 512 Kbytes Flash, 72 MHz CPU, MPU, CCM, 12-bit ADC 5 MSPS, PGA, comparators
- On-board ST-LINK/V2-1 debugger/programmer with SWD connector
- Can be powered from USB.
- Three LEDs, Two Push-buttons
- Support of wide choice of Integrated Development Environments (IDEs) including IAR, ARM Keil, GCC-based IDEs
Use QEMU to check the software path
The upstream README describes an ARM64 QEMU demonstration using an AArch64 virtual machine, a Cortex-A57 CPU, and GICv3, followed by enabling Jailhouse and running a GIC demo cell. This offers a way to explore the project’s software flow. It does not establish that QEMU reproduces the firmware or peripheral behavior of a physical board. Jailhouse project README
| Consideration | QEMU | Physical ARM64 board |
|---|---|---|
| Boot and firmware assumptions | Uses the virtual-machine setup documented by the project; it is not evidence of a physical board’s boot chain. | Must meet the board’s boot-mode and PSCI requirements. |
| Devices and interrupts | The demonstration specifies an AArch64 VM, Cortex-A57, and GICv3. | Depends on the board’s actual interrupt-controller and peripheral layout. |
| Configuration work | Useful for trying the documented software path. | Requires hardware-specific system and cell configurations and an appropriate device tree. |
| Relevance to deployment | Checks a virtual setup, not the target board’s firmware or device behavior. | Exercises the intended physical platform, subject to its exact board and software configuration. |
What a porting plan should establish
For a physical target, collect the exact SoC and board revision, boot firmware and HYP-mode behavior, PSCI CPU-offlining behavior, available CPUs and contiguous memory, interrupt-controller and peripheral layout, and any maintained Jailhouse configuration for that platform. Those details determine whether a board adaptation is feasible and which system and cell configuration work is needed. The design rationale is to assign hardware directly and defer complex hardware handling and bootstrapping to the general-purpose OS, rather than making the hypervisor manage those tasks itself. “Look Mum, no VM Exits! (Almost),” 2017
Quick Recap
Best Value
- STM32F103C8T6 ARM STM32 minimum system development module.
- ST-Link V2 support the full range of STM32 SWD interface debugging, simple interface (including power supply), 4 line speed, stable work.
- Use the current smart phones of Mirco USB interface, easy to use, USB communication and power supply can be done.
- The board lead to all the I/O resources.Download with SWD debug interface, which requires a minimum of 3 wires to complete debug a download task
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

