id = 624 title = "powerpc: halt and reboot via firmware via cuda fail" state = "closed" created_at = "2021-09-16T18:24:52.917Z" closed_at = "2021-10-30T19:28:33.812Z" labels = ["target: ppc"] url = "https://gitlab.com/qemu-project/qemu/-/issues/624" host-os = "Ubuntu 20.04" host-arch = "x86_64" qemu-version = "version 6.0.0 (Debian 1:6.0+dfsg-2expubuntu1)" guest-os = "GRUB2 bootloader" guest-arch = "PowerPC" description = """Both shutdown and reboot cause errors preventing the action from occuring. With logging turned on as above, it can be seen that the issue is with CUDA. If the option `-M mac99,via=pmu` is given the action happens as expected. ``` # qemu-system-ppc -trace 'cuda_*' -d unimp,guest_errors -serial file:/dev/stdout -hda /tmp/grub-shell.CdAU68FI6P/grub.iso -boot c WARNING: Image format was not specified for '/tmp/grub-shell.CdAU68FI6P/grub.iso' and probing guessed raw. Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted. Specify the 'raw' format explicitly to remove the restrictions. cuda_delay_set_sr_int cuda_data_send send: 0x00 cuda_delay_set_sr_int cuda_data_send send: 0x00 cuda_delay_set_sr_int cuda_delay_set_sr_int cuda_packet_receive length 2 cuda_packet_receive_data [0] 0x00 cuda_packet_receive_data [1] 0x00 cuda_packet_send length 3 cuda_packet_send_data [0] 0x00 cuda_packet_send_data [1] 0x00 cuda_packet_send_data [2] 0x00 cuda_delay_set_sr_int cuda_data_recv recv: 0x00 cuda_delay_set_sr_int cuda_data_recv recv: 0x00 cuda_delay_set_sr_int cuda_data_recv recv: 0x00 cuda_delay_set_sr_int cuda_delay_set_sr_int cuda_data_send send: 0x00 cuda_delay_set_sr_int cuda_data_send send: 0x1f cuda_delay_set_sr_int cuda_delay_set_sr_int cuda_packet_receive length 2 cuda_packet_receive_data [0] 0x00 cuda_packet_receive_data [1] 0x1f cuda_packet_send length 3 cuda_packet_send_data [0] 0x00 cuda_packet_send_data [1] 0x02 cuda_packet_send_data [2] 0x1f cuda_delay_set_sr_int cuda_data_recv recv: 0x00 cuda_delay_set_sr_int cuda_data_recv recv: 0x02 cuda_delay_set_sr_int cuda_data_recv recv: 0x1f cuda_delay_set_sr_int cuda_delay_set_sr_int cuda_data_send send: 0x00 cuda_delay_set_sr_int cuda_data_send send: 0x2f cuda_delay_set_sr_int cuda_delay_set_sr_int cuda_packet_receive length 2 cuda_packet_receive_data [0] 0x00 cuda_packet_receive_data [1] 0x2f cuda_packet_send length 4 cuda_packet_send_data [0] 0x00 cuda_packet_send_data [1] 0x00 cuda_packet_send_data [2] 0x02 cuda_packet_send_data [3] 0x01 cuda_delay_set_sr_int cuda_data_recv recv: 0x00 cuda_delay_set_sr_int cuda_data_recv recv: 0x00 cuda_delay_set_sr_int cuda_data_recv recv: 0x02 cuda_delay_set_sr_int cuda_data_recv recv: 0x01 cuda_delay_set_sr_int cuda_delay_set_sr_int cuda_data_send send: 0x00 cuda_delay_set_sr_int cuda_data_send send: 0x2b cuda_delay_set_sr_int cuda_data_send send: 0x28 cuda_delay_set_sr_int cuda_data_send send: 0xfe cuda_delay_set_sr_int cuda_delay_set_sr_int cuda_packet_receive length 4 cuda_packet_receive_data [0] 0x00 cuda_packet_receive_data [1] 0x2b cuda_packet_receive_data [2] 0x28 cuda_packet_receive_data [3] 0xfe cuda_packet_send length 3 cuda_packet_send_data [0] 0x00 cuda_packet_send_data [1] 0x00 cuda_packet_send_data [2] 0x2b cuda_delay_set_sr_int cuda_data_recv recv: 0x00 cuda_delay_set_sr_int cuda_data_recv recv: 0x00 cuda_delay_set_sr_int cuda_data_recv recv: 0x2b cuda_delay_set_sr_int cuda_delay_set_sr_int cuda_data_send send: 0x00 cuda_delay_set_sr_int cuda_data_send send: 0x81 cuda_delay_set_sr_int cuda_delay_set_sr_int cuda_packet_receive length 2 cuda_packet_receive_data [0] 0x00 cuda_packet_receive_data [1] 0x81 cuda_packet_send length 3 cuda_packet_send_data [0] 0x00 cuda_packet_send_data [1] 0x00 cuda_packet_send_data [2] 0x81 cuda_delay_set_sr_int cuda_data_recv recv: 0x00 cuda_delay_set_sr_int cuda_data_recv recv: 0x00 cuda_delay_set_sr_int cuda_data_recv recv: 0x81 cuda_delay_set_sr_int cuda_delay_set_sr_int cuda_data_send send: 0x00 cuda_delay_set_sr_int cuda_data_send send: 0x2f cuda_delay_set_sr_int cuda_delay_set_sr_int cuda_packet_receive length 2 cuda_packet_receive_data [0] 0x00 cuda_packet_receive_data [1] 0x2f cuda_packet_send length 3 cuda_packet_send_data [0] 0x00 cuda_packet_send_data [1] 0x02 cuda_packet_send_data [2] 0x2f cuda_delay_set_sr_int cuda_data_recv recv: 0x00 cuda_delay_set_sr_int cuda_data_recv recv: 0x02 cuda_delay_set_sr_int cuda_data_recv recv: 0x2f cuda_delay_set_sr_int cuda_delay_set_sr_int cuda_data_send send: 0x00 cuda_delay_set_sr_int cuda_data_send send: 0x3f cuda_delay_set_sr_int cuda_delay_set_sr_int cuda_packet_receive length 2 cuda_packet_receive_data [0] 0x00 cuda_packet_receive_data [1] 0x3f cuda_packet_send length 4 cuda_packet_send_data [0] 0x00 cuda_packet_send_data [1] 0x00 cuda_packet_send_data [2] 0x03 cuda_packet_send_data [3] 0x02 cuda_delay_set_sr_int cuda_data_recv recv: 0x00 cuda_delay_set_sr_int cuda_data_recv recv: 0x00 cuda_delay_set_sr_int cuda_data_recv recv: 0x03 cuda_delay_set_sr_int cuda_data_recv recv: 0x02 cuda_delay_set_sr_int cuda_delay_set_sr_int cuda_data_send send: 0x00 cuda_delay_set_sr_int cuda_data_send send: 0x3b cuda_delay_set_sr_int cuda_data_send send: 0x29 cuda_delay_set_sr_int cuda_data_send send: 0xfe cuda_delay_set_sr_int cuda_delay_set_sr_int cuda_packet_receive length 4 cuda_packet_receive_data [0] 0x00 cuda_packet_receive_data [1] 0x3b cuda_packet_receive_data [2] 0x29 cuda_packet_receive_data [3] 0xfe cuda_packet_send length 3 cuda_packet_send_data [0] 0x00 cuda_packet_send_data [1] 0x00 cuda_packet_send_data [2] 0x3b cuda_delay_set_sr_int cuda_data_recv recv: 0x00 cuda_delay_set_sr_int cuda_data_recv recv: 0x00 cuda_delay_set_sr_int cuda_data_recv recv: 0x3b cuda_delay_set_sr_int cuda_delay_set_sr_int cuda_data_send send: 0x00 cuda_delay_set_sr_int cuda_data_send send: 0x91 cuda_delay_set_sr_int cuda_delay_set_sr_int cuda_packet_receive length 2 cuda_packet_receive_data [0] 0x00 cuda_packet_receive_data [1] 0x91 cuda_packet_send length 3 cuda_packet_send_data [0] 0x00 cuda_packet_send_data [1] 0x00 cuda_packet_send_data [2] 0x91 cuda_delay_set_sr_int cuda_data_recv recv: 0x00 cuda_delay_set_sr_int cuda_data_recv recv: 0x00 cuda_delay_set_sr_int cuda_data_recv recv: 0x91 cuda_delay_set_sr_int cuda_delay_set_sr_int cuda_data_send send: 0x00 cuda_delay_set_sr_int cuda_data_send send: 0x3f cuda_delay_set_sr_int cuda_delay_set_sr_int cuda_packet_receive length 2 cuda_packet_receive_data [0] 0x00 cuda_packet_receive_data [1] 0x3f cuda_packet_send length 3 cuda_packet_send_data [0] 0x00 cuda_packet_send_data [1] 0x02 cuda_packet_send_data [2] 0x3f cuda_delay_set_sr_int cuda_data_recv recv: 0x00 cuda_delay_set_sr_int cuda_data_recv recv: 0x02 cuda_delay_set_sr_int cuda_data_recv recv: 0x3f cuda_delay_set_sr_int cuda_delay_set_sr_int cuda_data_send send: 0x00 cuda_delay_set_sr_int cuda_data_send send: 0x4f cuda_delay_set_sr_int cuda_delay_set_sr_int cuda_packet_receive length 2 cuda_packet_receive_data [0] 0x00 cuda_packet_receive_data [1] 0x4f cuda_packet_send length 3 cuda_packet_send_data [0] 0x00 cuda_packet_send_data [1] 0x02 cuda_packet_send_data [2] 0x4f cuda_delay_set_sr_int cuda_data_recv recv: 0x00 cuda_delay_set_sr_int cuda_data_recv recv: 0x02 cuda_delay_set_sr_int cuda_data_recv recv: 0x4f cuda_delay_set_sr_int cuda_delay_set_sr_int cuda_data_send send: 0x00 cuda_delay_set_sr_int cuda_data_send send: 0x5f cuda_delay_set_sr_int cuda_delay_set_sr_int cuda_packet_receive length 2 cuda_packet_receive_data [0] 0x00 cuda_packet_receive_data [1] 0x5f cuda_packet_send length 3 cuda_packet_send_data [0] 0x00 cuda_packet_send_data [1] 0x02 cuda_packet_send_data [2] 0x5f cuda_delay_set_sr_int cuda_data_recv recv: 0x00 cuda_delay_set_sr_int cuda_data_recv recv: 0x02 cuda_delay_set_sr_int cuda_data_recv recv: 0x5f cuda_delay_set_sr_int cuda_delay_set_sr_int cuda_data_send send: 0x00 cuda_delay_set_sr_int cuda_data_send send: 0x7f cuda_delay_set_sr_int cuda_delay_set_sr_int cuda_packet_receive length 2 cuda_packet_receive_data [0] 0x00 cuda_packet_receive_data [1] 0x7f cuda_packet_send length 3 cuda_packet_send_data [0] 0x00 cuda_packet_send_data [1] 0x02 cuda_packet_send_data [2] 0x7f cuda_delay_set_sr_int cuda_data_recv recv: 0x00 cuda_delay_set_sr_int cuda_data_recv recv: 0x02 cuda_delay_set_sr_int cuda_data_recv recv: 0x7f cuda_delay_set_sr_int cuda_delay_set_sr_int >> ============================================================= >> OpenBIOS 1.1 [Aug 12 2021 13:35] >> Configuration device id QEMU version 1 machine id 2 >> CPUs: 1 >> Memory: 128M >> UUID: 00000000-0000-0000-0000-000000000000 >> CPU type PowerPC,750 milliseconds isn't unique. >> switching to new context: >> call-method block-size failed with error ffffffdf >> call-method block-size failed with error ffffffdf cuda_data_send send: 0x01 cuda_delay_set_sr_int cuda_data_send send: 0x0a cuda_delay_set_sr_int cuda_data_send send: 0xfa cuda_delay_set_sr_int cuda_delay_set_sr_int cuda_packet_receive length 3 cuda_packet_receive_data [0] 0x01 cuda_packet_receive_data [1] 0x0a cuda_packet_receive_data [2] 0xfa cuda_receive_packet_cmd handling command POWERDOWN CUDA: POWERDOWN: wrong parameters 2 cuda_packet_send length 4 cuda_packet_send_data [0] 0x02 cuda_packet_send_data [1] 0x05 cuda_packet_send_data [2] 0x01 cuda_packet_send_data [3] 0x0a cuda_delay_set_sr_int cuda_data_recv recv: 0x02 cuda_delay_set_sr_int cuda_data_recv recv: 0x05 cuda_delay_set_sr_int cuda_data_recv recv: 0x01 cuda_delay_set_sr_int cuda_data_recv recv: 0x0a cuda_delay_set_sr_int cuda_delay_set_sr_int >> interpret shut-down failed with error ffffffed >> interpret poweroff failed with error ffffffed ```""" reproduce = """1. Download attached iso file: [grub.iso.xz](/uploads/dea8f2bde4d90b9928f54bb9b73d76e9/grub.iso.xz) 2. Decompress iso 3. Run qemu as specified above""" additional = """"""