[PATCH 44/50] Documentation: add instructions for ARM64 Linux loader

5 views
Skip to first unread message

Jan Kiszka

unread,
Oct 18, 2016, 4:09:30 AM10/18/16
to jailho...@googlegroups.com, Antonios Motakis, Claudio Fontana, Dmitry Voytik, Marc Zyngier, Mark Rutland
From: Antonios Motakis <antonios...@huawei.com>

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 <antonios...@huawei.com>
Signed-off-by: Jan Kiszka <jan.k...@siemens.com>
---
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.1.4

Reply all
Reply to author
Forward
0 new messages