xref: /freebsd/sys/contrib/device-tree/Bindings/firmware/qemu,fw-cfg-mmio.yaml (revision 8bab661a3316d8bd9b9fbd11a3b4371b91507bd2)
1c9ccf3a3SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0
2c9ccf3a3SEmmanuel Vadot%YAML 1.2
3c9ccf3a3SEmmanuel Vadot---
4c9ccf3a3SEmmanuel Vadot$id: http://devicetree.org/schemas/firmware/qemu,fw-cfg-mmio.yaml#
5c9ccf3a3SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c9ccf3a3SEmmanuel Vadot
7*8bab661aSEmmanuel Vadottitle: QEMU Firmware Configuration
8c9ccf3a3SEmmanuel Vadot
9c9ccf3a3SEmmanuel Vadotmaintainers:
10c9ccf3a3SEmmanuel Vadot  - Rob Herring <robh@kernel.org>
11c9ccf3a3SEmmanuel Vadot
12c9ccf3a3SEmmanuel Vadotdescription: |
13c9ccf3a3SEmmanuel Vadot  Various QEMU emulation / virtualization targets provide the following
14c9ccf3a3SEmmanuel Vadot  Firmware Configuration interface on the "virt" machine type:
15c9ccf3a3SEmmanuel Vadot
16c9ccf3a3SEmmanuel Vadot  - A write-only, 16-bit wide selector (or control) register,
17c9ccf3a3SEmmanuel Vadot  - a read-write, 64-bit wide data register.
18c9ccf3a3SEmmanuel Vadot
19c9ccf3a3SEmmanuel Vadot  QEMU exposes the control and data register to guests as memory mapped
20c9ccf3a3SEmmanuel Vadot  registers; their location is communicated to the guest's UEFI firmware in the
21c9ccf3a3SEmmanuel Vadot  DTB that QEMU places at the bottom of the guest's DRAM.
22c9ccf3a3SEmmanuel Vadot
23c9ccf3a3SEmmanuel Vadot  The authoritative guest-side hardware interface documentation to the fw_cfg
24c9ccf3a3SEmmanuel Vadot  device can be found in "docs/specs/fw_cfg.txt" in the QEMU source tree.
25c9ccf3a3SEmmanuel Vadot
26c9ccf3a3SEmmanuel Vadot
27c9ccf3a3SEmmanuel Vadotproperties:
28c9ccf3a3SEmmanuel Vadot  compatible:
29c9ccf3a3SEmmanuel Vadot    const: qemu,fw-cfg-mmio
30c9ccf3a3SEmmanuel Vadot
31c9ccf3a3SEmmanuel Vadot  reg:
32c9ccf3a3SEmmanuel Vadot    maxItems: 1
33c9ccf3a3SEmmanuel Vadot    description: |
34c9ccf3a3SEmmanuel Vadot      * Bytes 0x0 to 0x7 cover the data register.
35c9ccf3a3SEmmanuel Vadot      * Bytes 0x8 to 0x9 cover the selector register.
36c9ccf3a3SEmmanuel Vadot      * Further registers may be appended to the region in case of future interface
37c9ccf3a3SEmmanuel Vadot        revisions / feature bits.
38c9ccf3a3SEmmanuel Vadot
39c9ccf3a3SEmmanuel Vadot  dma-coherent: true
40c9ccf3a3SEmmanuel Vadot
41c9ccf3a3SEmmanuel Vadotrequired:
42c9ccf3a3SEmmanuel Vadot  - compatible
43c9ccf3a3SEmmanuel Vadot  - reg
44c9ccf3a3SEmmanuel Vadot
45c9ccf3a3SEmmanuel VadotadditionalProperties: false
46c9ccf3a3SEmmanuel Vadot
47c9ccf3a3SEmmanuel Vadotexamples:
48c9ccf3a3SEmmanuel Vadot  - |
49c9ccf3a3SEmmanuel Vadot
50c9ccf3a3SEmmanuel Vadot    fw-cfg@9020000 {
51c9ccf3a3SEmmanuel Vadot        compatible = "qemu,fw-cfg-mmio";
52c9ccf3a3SEmmanuel Vadot        reg = <0x9020000 0xa>;
53c9ccf3a3SEmmanuel Vadot    };
54c9ccf3a3SEmmanuel Vadot...
55