450e0f28a4
The single backtick markup in ReST is the "default role". Currently, Sphinx's default role is called "content". Sphinx suggests you can use the "Any" role instead to turn any single-backtick enclosed item into a cross-reference. This is useful for things like autodoc for Python docstrings, where it's often nicer to reference other types with `foo` instead of the more laborious :py:meth:`foo`. It's also useful in multi-domain cases to easily reference definitions from other Sphinx domains, such as referencing C code definitions from outside of kerneldoc comments. Before we do that, though, we'll need to turn all existing usages of the "content" role to inline verbatim markup wherever it does not correctly resolve into a cross-refernece by using double backticks instead. Signed-off-by: John Snow <jsnow@redhat.com> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com> Reviewed-by: Alexander Bulekov <alxndr@bu.edu> Message-Id: <20211004215238.1523082-2-jsnow@redhat.com>
55 lines
1.9 KiB
ReStructuredText
55 lines
1.9 KiB
ReStructuredText
..
|
|
Copyright (c) 2020, Linaro
|
|
|
|
Guest Loader
|
|
------------
|
|
|
|
The guest loader is similar to the ``generic-loader`` although it is
|
|
aimed at a particular use case of loading hypervisor guests. This is
|
|
useful for debugging hypervisors without having to jump through the
|
|
hoops of firmware and boot-loaders.
|
|
|
|
The guest loader does two things:
|
|
|
|
- load blobs (kernels and initial ram disks) into memory
|
|
- sets platform FDT data so hypervisors can find and boot them
|
|
|
|
This is what is typically done by a boot-loader like grub using it's
|
|
multi-boot capability. A typical example would look like:
|
|
|
|
.. parsed-literal::
|
|
|
|
|qemu_system| -kernel ~/xen.git/xen/xen \
|
|
-append "dom0_mem=1G,max:1G loglvl=all guest_loglvl=all" \
|
|
-device guest-loader,addr=0x42000000,kernel=Image,bootargs="root=/dev/sda2 ro console=hvc0 earlyprintk=xen" \
|
|
-device guest-loader,addr=0x47000000,initrd=rootfs.cpio
|
|
|
|
In the above example the Xen hypervisor is loaded by the -kernel
|
|
parameter and passed it's boot arguments via -append. The Dom0 guest
|
|
is loaded into the areas of memory. Each blob will get
|
|
``/chosen/module@<addr>`` entry in the FDT to indicate it's location and
|
|
size. Additional information can be passed with by using additional
|
|
arguments.
|
|
|
|
Currently the only supported machines which use FDT data to boot are
|
|
the ARM and RiscV ``virt`` machines.
|
|
|
|
Arguments
|
|
^^^^^^^^^
|
|
|
|
The full syntax of the guest-loader is::
|
|
|
|
-device guest-loader,addr=<addr>[,kernel=<file>,[bootargs=<args>]][,initrd=<file>]
|
|
|
|
``addr=<addr>``
|
|
This is mandatory and indicates the start address of the blob.
|
|
|
|
``kernel|initrd=<file>``
|
|
Indicates the filename of the kernel or initrd blob. Both blobs will
|
|
have the "multiboot,module" compatibility string as well as
|
|
"multiboot,kernel" or "multiboot,ramdisk" as appropriate.
|
|
|
|
``bootargs=<args>``
|
|
This is an optional field for kernel blobs which will pass command
|
|
like via the ``/chosen/module@<addr>/bootargs`` node.
|