From: Antonios Motakis <[email protected]> Add a short document describing the use of the Linux loader, used to run Linux inmates on non-root cells on ARM64.
Signed-off-by: Antonios Motakis <[email protected]> --- Documentation/non-root-linux-arm64.txt | 51 ++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 Documentation/non-root-linux-arm64.txt diff --git a/Documentation/non-root-linux-arm64.txt b/Documentation/non-root-linux-arm64.txt new file mode 100644 index 0000000..1712c87 --- /dev/null +++ b/Documentation/non-root-linux-arm64.txt @@ -0,0 +1,51 @@ +Booting Linux in non-root cells on ARM64 +======================================== + +Booting a Linux kernel on an ARM target is significantly simpler than on x86, +so in this case we do not need a specially modified Linux kernel for the +non-root cell. + +What we will need is: + +(a) A non-root cell for the Linxu inmate. + +Under configs/ there are -linux-demo.c example cell configurations +for this purpose. This will produce a cell configuration file +(e.g. amd-seattle-linux-demo.cell). + +(b) An ARM64 Linux kernel. + +A good idea is to append a RAMdisk to the end of the kernel, to use as the +root filesystem for the Linux inmate. Special patches are not needed. + +(c) A device tree blob. + +Sample dts files can be found under samples/, just compile to a dtb using +the Linxu kernel dtc tool. + +(d) linux-loader inmate for Jailhouse ARM64 (provided). + +After building, copy the binary from inmates/tools/arm64/linux-loader.bin + +Starting the Linux inmate +------------------------- + +Loading a Linux inmate can be as simple as: + + $ LOAD_ADDR=0x82e0080000 # example values for the amd seattle + $ DTB_ADDR=0xfe00000 + $ + $ jailhouse cell create linux-demo.cell + $ jailhouse cell load --name linux-inmate-demo \ + linux-loader.bin -a 0x0 \ + Image -a $LOAD_ADDR \ + kernel-inmate.dtb -a $DTB_ADDR \ + -s "kernel=$LOAD_ADDR dtb=$DTB_ADDR" -a 0x1000 + +Make sure LOAD_ADDR and DTB_ADDR are set to the (cell virtual) addresses, +where you want to load the kernel and device tree. This needs to be available +memory ranges in the non root cell configuration that is being used. + +Finally you can start the cell: + + $ jailhouse cell start linux-inmate-demo -- 2.8.0.rc3 -- You received this message because you are subscribed to the Google Groups "Jailhouse" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
