162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/firmware/qemu,fw-cfg-mmio.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: QEMU Firmware Configuration
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Rob Herring <robh@kernel.org>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription: |
1362306a36Sopenharmony_ci  Various QEMU emulation / virtualization targets provide the following
1462306a36Sopenharmony_ci  Firmware Configuration interface on the "virt" machine type:
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci  - A write-only, 16-bit wide selector (or control) register,
1762306a36Sopenharmony_ci  - a read-write, 64-bit wide data register.
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci  QEMU exposes the control and data register to guests as memory mapped
2062306a36Sopenharmony_ci  registers; their location is communicated to the guest's UEFI firmware in the
2162306a36Sopenharmony_ci  DTB that QEMU places at the bottom of the guest's DRAM.
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci  The authoritative guest-side hardware interface documentation to the fw_cfg
2462306a36Sopenharmony_ci  device can be found in "docs/specs/fw_cfg.txt" in the QEMU source tree.
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ciproperties:
2862306a36Sopenharmony_ci  compatible:
2962306a36Sopenharmony_ci    const: qemu,fw-cfg-mmio
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci  reg:
3262306a36Sopenharmony_ci    maxItems: 1
3362306a36Sopenharmony_ci    description: |
3462306a36Sopenharmony_ci      * Bytes 0x0 to 0x7 cover the data register.
3562306a36Sopenharmony_ci      * Bytes 0x8 to 0x9 cover the selector register.
3662306a36Sopenharmony_ci      * Further registers may be appended to the region in case of future interface
3762306a36Sopenharmony_ci        revisions / feature bits.
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci  dma-coherent: true
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_cirequired:
4262306a36Sopenharmony_ci  - compatible
4362306a36Sopenharmony_ci  - reg
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ciadditionalProperties: false
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ciexamples:
4862306a36Sopenharmony_ci  - |
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci    fw-cfg@9020000 {
5162306a36Sopenharmony_ci        compatible = "qemu,fw-cfg-mmio";
5262306a36Sopenharmony_ci        reg = <0x9020000 0xa>;
5362306a36Sopenharmony_ci    };
5462306a36Sopenharmony_ci...
55