diff options
| author | Richard Henderson <richard.henderson@linaro.org> | 2023-06-25 08:58:49 +0200 |
|---|---|---|
| committer | Richard Henderson <richard.henderson@linaro.org> | 2023-06-25 08:58:49 +0200 |
| commit | 79dbd910c9ea6ca38f8e1b2616b1e5e885b85bd3 (patch) | |
| tree | fa26f7c2445de426a41b0d59eee4bce2d169431a | |
| parent | fa7dd27bc3db5cc8a6224aeae6d368ab1553cda9 (diff) | |
| parent | 34ec3aea54368a92b62a55c656335885ba8c65ef (diff) | |
| download | focaccia-qemu-79dbd910c9ea6ca38f8e1b2616b1e5e885b85bd3.tar.gz focaccia-qemu-79dbd910c9ea6ca38f8e1b2616b1e5e885b85bd3.zip | |
Merge tag 'hppa-boot-reboot-fixes-pull-request' of https://github.com/hdeller/qemu-hppa into staging
target/hppa: Fix boot and reboot for SMP machines Fix some SMP-related boot and reboot issues with HP-UX and Linux by correctly initializing the CPU PSW bits, disabling data and instruction translations and unhalting the CPU in the qemu hppa_machine_reset() function. To work correctly some fixes are needed in the SeaBIOS-hppa firmware too, which is why this series updates it to version 8 which includes those fixes and enhancements: Fixes - boot of HP-UX with SMP, and - reboot of Linux and HP-UX with SMP Enhancements: - show qemu version in boot menu - adds exit menu entry in boot menu to quit emulation - allow to trace PCD_CHASSIS codes more specifically Signed-off-by: Helge Deller <deller@gmx.de> # -----BEGIN PGP SIGNATURE----- # # iHUEABYKAB0WIQS86RI+GtKfB8BJu973ErUQojoPXwUCZJbYWAAKCRD3ErUQojoP # X6ExAQCmOXqwJw3SjSE/+hvphJ2mMTJe3i6dU3AWOGlACxxVzAEA7dKSU4d8EtRj # NZpGKB9NE9eWwQFGJVbVgFeikap44gs= # =8zCK # -----END PGP SIGNATURE----- # gpg: Signature made Sat 24 Jun 2023 01:49:44 PM CEST # gpg: using EDDSA key BCE9123E1AD29F07C049BBDEF712B510A23A0F5F # gpg: Good signature from "Helge Deller <deller@gmx.de>" [unknown] # gpg: aka "Helge Deller <deller@kernel.org>" [unknown] # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 4544 8228 2CD9 10DB EF3D 25F8 3E5F 3D04 A7A2 4603 # Subkey fingerprint: BCE9 123E 1AD2 9F07 C049 BBDE F712 B510 A23A 0F5F * tag 'hppa-boot-reboot-fixes-pull-request' of https://github.com/hdeller/qemu-hppa: target/hppa: Update to SeaBIOS-hppa version 8 target/hppa: Provide qemu version via fw_cfg to firmware target/hppa: Fix OS reboot issues Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
| -rw-r--r-- | hw/hppa/machine.c | 15 | ||||
| -rw-r--r-- | pc-bios/hppa-firmware.img | bin | 719376 -> 720216 bytes | |||
| m--------- | roms/seabios-hppa | 0 |
3 files changed, 13 insertions, 2 deletions
diff --git a/hw/hppa/machine.c b/hw/hppa/machine.c index b00a91ecfe..866e11d208 100644 --- a/hw/hppa/machine.c +++ b/hw/hppa/machine.c @@ -122,6 +122,7 @@ static FWCfgState *create_fw_cfg(MachineState *ms) { FWCfgState *fw_cfg; uint64_t val; + const char qemu_version[] = QEMU_VERSION; fw_cfg = fw_cfg_init_mem(FW_CFG_IO_BASE, FW_CFG_IO_BASE + 4); fw_cfg_add_i16(fw_cfg, FW_CFG_NB_CPUS, ms->smp.cpus); @@ -147,6 +148,10 @@ static FWCfgState *create_fw_cfg(MachineState *ms) fw_cfg_add_i16(fw_cfg, FW_CFG_BOOT_DEVICE, ms->boot_config.order[0]); qemu_register_boot_set(fw_cfg_boot_set, fw_cfg); + fw_cfg_add_file(fw_cfg, "/etc/qemu-version", + g_memdup(qemu_version, sizeof(qemu_version)), + sizeof(qemu_version)); + return fw_cfg; } @@ -418,10 +423,16 @@ static void hppa_machine_reset(MachineState *ms, ShutdownCause reason) /* Start all CPUs at the firmware entry point. * Monarch CPU will initialize firmware, secondary CPUs - * will enter a small idle look and wait for rendevouz. */ + * will enter a small idle loop and wait for rendevouz. */ for (i = 0; i < smp_cpus; i++) { - cpu_set_pc(CPU(cpu[i]), firmware_entry); + CPUState *cs = CPU(cpu[i]); + + cpu_set_pc(cs, firmware_entry); + cpu[i]->env.psw = PSW_Q; cpu[i]->env.gr[5] = CPU_HPA + i * 0x1000; + + cs->exception_index = -1; + cs->halted = 0; } /* already initialized by machine_hppa_init()? */ diff --git a/pc-bios/hppa-firmware.img b/pc-bios/hppa-firmware.img index e7660b0458..0fa3808f16 100644 --- a/pc-bios/hppa-firmware.img +++ b/pc-bios/hppa-firmware.img Binary files differdiff --git a/roms/seabios-hppa b/roms/seabios-hppa -Subproject 1cfbe76ff625fce9ed5991f7e13d80ffec900f4 +Subproject 673d2595d4f773cc266cbf8dbaf2f475a6adb94 |