xref: /qemu/docs/specs/virt-ctlr.rst (revision 6e0c849275250ff9d1b3b2ae32f6a4b1247ed745)
10791bc02SLaurent VivierVirtual System Controller
20791bc02SLaurent Vivier=========================
30791bc02SLaurent Vivier
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.
70791bc02SLaurent Vivier
80791bc02SLaurent VivierThe specification can evolve, the current state is defined as below.
90791bc02SLaurent Vivier
100791bc02SLaurent VivierThis is a MMIO mapped device using 256 bytes.
110791bc02SLaurent Vivier
120791bc02SLaurent VivierTwo 32bit registers are defined:
130791bc02SLaurent Vivier
14*6e0c8492SPeter Maydellthe features register (read-only, address 0x00)
150791bc02SLaurent Vivier   This register allows the device to report features supported by the
160791bc02SLaurent Vivier   controller.
170791bc02SLaurent Vivier   The only feature supported for the moment is power control (0x01).
180791bc02SLaurent Vivier
19*6e0c8492SPeter Maydellthe command register (write-only, address 0x04)
200791bc02SLaurent Vivier   This register allows the kernel to send the commands to the hypervisor.
210791bc02SLaurent Vivier   The implemented commands are part of the power control feature and
220791bc02SLaurent Vivier   are reset (1), halt (2) and panic (3).
230791bc02SLaurent Vivier   A basic command, no-op (0), is always present and can be used to test the
240791bc02SLaurent Vivier   register access. This command has no effect.
25