xref: /openbmc/qemu/docs/specs/virt-ctlr.rst (revision d762bf97931b58839316b68a570eecc6143c9e3e)
1*6e0c8492SPeter MaydellVirtual System Controller
2*6e0c8492SPeter Maydell=========================
3*6e0c8492SPeter Maydell
4*6e0c8492SPeter MaydellThe ``virt-ctrl`` device is a simple interface defined for the pure
5*6e0c8492SPeter Maydellvirtual machine with no hardware reference implementation to allow the
6*6e0c8492SPeter Maydellguest kernel to send command to the host hypervisor.
7*6e0c8492SPeter Maydell
8*6e0c8492SPeter MaydellThe specification can evolve, the current state is defined as below.
9*6e0c8492SPeter Maydell
10*6e0c8492SPeter MaydellThis is a MMIO mapped device using 256 bytes.
11*6e0c8492SPeter Maydell
12*6e0c8492SPeter MaydellTwo 32bit registers are defined:
13*6e0c8492SPeter Maydell
14*6e0c8492SPeter Maydellthe features register (read-only, address 0x00)
15*6e0c8492SPeter Maydell   This register allows the device to report features supported by the
16*6e0c8492SPeter Maydell   controller.
17*6e0c8492SPeter Maydell   The only feature supported for the moment is power control (0x01).
18*6e0c8492SPeter Maydell
19*6e0c8492SPeter Maydellthe command register (write-only, address 0x04)
20*6e0c8492SPeter Maydell   This register allows the kernel to send the commands to the hypervisor.
21*6e0c8492SPeter Maydell   The implemented commands are part of the power control feature and
22*6e0c8492SPeter Maydell   are reset (1), halt (2) and panic (3).
23*6e0c8492SPeter Maydell   A basic command, no-op (0), is always present and can be used to test the
24*6e0c8492SPeter Maydell   register access. This command has no effect.
25