xref: /linux/Documentation/devicetree/bindings/firmware/coreboot.txt (revision a976c2951d8f376112361830aa7762beff83a205)
1*88cfb1eeSJulius WernerCOREBOOT firmware information
2*88cfb1eeSJulius Werner
3*88cfb1eeSJulius WernerThe device tree node to communicate the location of coreboot's memory-resident
4*88cfb1eeSJulius Wernerbookkeeping structures to the kernel. Since coreboot itself cannot boot a
5*88cfb1eeSJulius Wernerdevice-tree-based kernel (yet), this node needs to be inserted by a
6*88cfb1eeSJulius Wernersecond-stage bootloader (a coreboot "payload").
7*88cfb1eeSJulius Werner
8*88cfb1eeSJulius WernerRequired properties:
9*88cfb1eeSJulius Werner - compatible: Should be "coreboot"
10*88cfb1eeSJulius Werner - reg: Address and length of the following two memory regions, in order:
11*88cfb1eeSJulius Werner	1.) The coreboot table. This is a list of variable-sized descriptors
12*88cfb1eeSJulius Werner	that contain various compile- and run-time generated firmware
13*88cfb1eeSJulius Werner	parameters. It is identified by the magic string "LBIO" in its first
14*88cfb1eeSJulius Werner	four bytes.
15*88cfb1eeSJulius Werner	See coreboot's src/commonlib/include/commonlib/coreboot_tables.h for
16*88cfb1eeSJulius Werner	details.
17*88cfb1eeSJulius Werner	2.) The CBMEM area. This is a downward-growing memory region used by
18*88cfb1eeSJulius Werner	coreboot to dynamically allocate data structures that remain resident.
19*88cfb1eeSJulius Werner	It may or may not include the coreboot table as one of its members. It
20*88cfb1eeSJulius Werner	is identified by a root node descriptor with the magic number
21*88cfb1eeSJulius Werner	0xc0389481 that resides in the topmost 8 bytes of the area.
22*88cfb1eeSJulius Werner	See coreboot's src/include/imd.h for details.
23*88cfb1eeSJulius Werner
24*88cfb1eeSJulius WernerExample:
25*88cfb1eeSJulius Werner	firmware {
26*88cfb1eeSJulius Werner		ranges;
27*88cfb1eeSJulius Werner
28*88cfb1eeSJulius Werner		coreboot {
29*88cfb1eeSJulius Werner			compatible = "coreboot";
30*88cfb1eeSJulius Werner			reg = <0xfdfea000 0x264>,
31*88cfb1eeSJulius Werner			      <0xfdfea000 0x16000>;
32*88cfb1eeSJulius Werner		}
33*88cfb1eeSJulius Werner	};
34