xref: /freebsd/sys/contrib/device-tree/Bindings/arm/fw-cfg.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot* QEMU Firmware Configuration bindings for ARM
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotQEMU's arm-softmmu and aarch64-softmmu emulation / virtualization targets
4*c66ec88fSEmmanuel Vadotprovide the following Firmware Configuration interface on the "virt" machine
5*c66ec88fSEmmanuel Vadottype:
6*c66ec88fSEmmanuel Vadot
7*c66ec88fSEmmanuel Vadot- A write-only, 16-bit wide selector (or control) register,
8*c66ec88fSEmmanuel Vadot- a read-write, 64-bit wide data register.
9*c66ec88fSEmmanuel Vadot
10*c66ec88fSEmmanuel VadotQEMU exposes the control and data register to ARM guests as memory mapped
11*c66ec88fSEmmanuel Vadotregisters; their location is communicated to the guest's UEFI firmware in the
12*c66ec88fSEmmanuel VadotDTB that QEMU places at the bottom of the guest's DRAM.
13*c66ec88fSEmmanuel Vadot
14*c66ec88fSEmmanuel VadotThe authoritative guest-side hardware interface documentation to the fw_cfg
15*c66ec88fSEmmanuel Vadotdevice can be found in "docs/specs/fw_cfg.txt" in the QEMU source tree.
16*c66ec88fSEmmanuel Vadot
17*c66ec88fSEmmanuel Vadot
18*c66ec88fSEmmanuel VadotRequired properties:
19*c66ec88fSEmmanuel Vadot
20*c66ec88fSEmmanuel Vadot- compatible: "qemu,fw-cfg-mmio".
21*c66ec88fSEmmanuel Vadot
22*c66ec88fSEmmanuel Vadot- reg: the MMIO region used by the device.
23*c66ec88fSEmmanuel Vadot  * Bytes 0x0 to 0x7 cover the data register.
24*c66ec88fSEmmanuel Vadot  * Bytes 0x8 to 0x9 cover the selector register.
25*c66ec88fSEmmanuel Vadot  * Further registers may be appended to the region in case of future interface
26*c66ec88fSEmmanuel Vadot    revisions / feature bits.
27*c66ec88fSEmmanuel Vadot
28*c66ec88fSEmmanuel VadotExample:
29*c66ec88fSEmmanuel Vadot
30*c66ec88fSEmmanuel Vadot/ {
31*c66ec88fSEmmanuel Vadot	#size-cells = <0x2>;
32*c66ec88fSEmmanuel Vadot	#address-cells = <0x2>;
33*c66ec88fSEmmanuel Vadot
34*c66ec88fSEmmanuel Vadot	fw-cfg@9020000 {
35*c66ec88fSEmmanuel Vadot		compatible = "qemu,fw-cfg-mmio";
36*c66ec88fSEmmanuel Vadot		reg = <0x0 0x9020000 0x0 0xa>;
37*c66ec88fSEmmanuel Vadot	};
38*c66ec88fSEmmanuel Vadot};
39