From: Andre Przywara <andre.przywara-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
To: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
boot-architecture-cunTk1MwBs8s++Sfvej+rw@public.gmane.org,
"xen-devel-GuqFBffKawuEi8DpZVb4nw@public.gmane.org"
<xen-devel-GuqFBffKawuEi8DpZVb4nw@public.gmane.org>,
"linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>
Cc: Julien Grall
<julien.grall-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
Ian Campbell
<Ian.Campbell-Sxgqhf6Nn4DQT0dZR+AlfA@public.gmane.org>
Subject: [PROPOSAL] ARM/FDT: passing multiple binaries to a kernel
Date: Tue, 03 Sep 2013 17:53:44 +0200 [thread overview]
Message-ID: <52260608.2030202@linaro.org> (raw)
Hi,
a normal Linux kernel currently supports reading the start and end
address of a single binary blob via the FDT's /chosen node.
This will be interpreted as the location of an initial RAM disk.
The Xen hypervisor itself is a kernel, but needs up to _two_ binaries
for proper operation: a Dom0 Linux kernel and it's associated initrd.
On x86 this is solved via the multiboot protocol used by the Grub
bootloader, which supports to pass an arbitrary number of binary modules
to any kernel.
Since in the ARM world we have the versatile device tree, we don't need
to implement the mulitboot protocol.
So I'd like to propose a new binding which denotes binary modules a
kernel can use at it's own discretion.
The need is triggered by the Xen hypervisor (which already uses a very
similar scheme), but the approach is deliberately chosen to be as
generic as possible to allow future uses (like passing firmware blobs
for devices or the like).
Credits for this go to Ian Campbell, who started something very similar
[1] for the Xen hypervisor. The intention of this proposal is to make
this generic and publicly documented.
Looking forward to any comments!
Thanks,
Andre.
[1]
http://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=docs/misc/arm/device-tree/booting.txt;h=94cd3f18a4e1317a35e1255bf5c6e1e091001d1a;hb=HEAD
----------------------------
* Multiple boot modules device tree bindings
Boot loaders wanting to pass multiple additional binaries to a kernel
shall add a node "module" for each binary blob under the /chosen node
with the following properties:
- compatible:
compatible = "boot,module";
A bootloader may add names to more specifically describe the module,
e.g. Xen may use "xen,dom0-kernel" or "xen,dom0-ramdisk".
If possible a kernel should be able to use modules even without a
descriptive naming, by enumerating them in order and using hard-coded
meanings for each module (e.g. first is kernel, second is initrd).
- reg: specifies the base physical address and size of a region in
memory where the bootloader loaded the respective binary data to.
- bootargs:
An optional property describing arguments to use for this module.
Could be a command line or configuration data.
Example:
/chosen {
#size-cells = <0x1>;
#address-cells = <0x1>;
module@0 {
compatible = "xen,linux-zimage", "xen,multiboot-module",
"boot,module";
reg = <0x80000000 0x003dcff8>;
bootargs = "console=hvc0 earlyprintk ro root=/dev/sda1 nosmp";
};
module@1 {
compatible = "xen,linux-initrd", "xen,multiboot-module",
"boot,module";
reg = <0x08000000 0x00123456>;
};
...
next reply other threads:[~2013-09-03 15:53 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-03 15:53 Andre Przywara [this message]
[not found] ` <52260608.2030202-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2013-09-03 22:00 ` [PROPOSAL] ARM/FDT: passing multiple binaries to a kernel Rob Herring
[not found] ` <CAL_JsqK9PjpScRO8561PhcyKkxhuL4pgMTCh2-UG_ubybJTcCw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-09-04 8:43 ` Andre Przywara
2013-09-04 8:55 ` Ian Campbell
[not found] ` <1378284955.17510.64.camel-ommiHX4a84BXesXXhkcM7miJhflN2719@public.gmane.org>
2013-09-04 9:14 ` Andre Przywara
[not found] ` <5226F2B3.10606-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2013-09-05 13:23 ` Rob Herring
[not found] ` <CAL_JsqKfcudKiTOr-MrHsq6NidG-5t5S0t08ELTSpOuc2LF4RQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-09-06 13:30 ` Andre Przywara
2013-09-04 8:44 ` Ian Campbell
[not found] ` <1378284256.17510.60.camel-ommiHX4a84BXesXXhkcM7miJhflN2719@public.gmane.org>
2013-09-04 16:41 ` Rob Herring
[not found] ` <CAL_Jsq+82xfNCD3LmNE6VD1mp4Vzbm-hPPaMjwg9+ab3moXP_w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-09-13 10:13 ` Grant Likely
[not found] ` <CACxGe6sOyNNEATsnRdu9=_nPE1q6V4MDaDKvk4QvJiSgq6jXmg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-09-13 11:22 ` Ian Campbell
[not found] ` <1379071333.19256.36.camel-ommiHX4a84BXesXXhkcM7miJhflN2719@public.gmane.org>
2013-09-15 12:17 ` Grant Likely
2013-09-14 1:40 ` Rob Herring
[not found] ` <CAL_JsqKnNHywcR21XhrjFyGs1DjZnbAFybraRKmxNmELLH-qPA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-09-15 12:23 ` Grant Likely
2013-09-14 4:06 ` Dennis Gilmore
2013-09-15 12:37 ` Grant Likely
[not found] ` <20130915123744.48AD1C42C2D-WNowdnHR2B42iJbIjFUEsiwD8/FfD2ys@public.gmane.org>
2013-09-16 17:01 ` Andre Przywara
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52260608.2030202@linaro.org \
--to=andre.przywara-qsej5fyqhm4dnm+yrofe0a@public.gmane.org \
--cc=Ian.Campbell-Sxgqhf6Nn4DQT0dZR+AlfA@public.gmane.org \
--cc=boot-architecture-cunTk1MwBs8s++Sfvej+rw@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=julien.grall-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=xen-devel-GuqFBffKawuEi8DpZVb4nw@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).