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