[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Stable-8.2.1 33/38] hw/hppa: Move software power button address back in
From: |
Michael Tokarev |
Subject: |
[Stable-8.2.1 33/38] hw/hppa: Move software power button address back into PDC |
Date: |
Thu, 18 Jan 2024 10:53:00 +0300 |
From: Helge Deller <deller@gmx.de>
The various operating systems (e.g. Linux, NetBSD) have issues
mapping the power button when it's stored in page zero.
NetBSD even crashes, because it fails to map that page and then
accesses unmapped memory.
Since we now have a consistent memory mapping of PDC in 32-bit
and 64-bit address space (the lower 32-bits of the address are in
sync) the power button can be moved back to PDC space.
This patch fixes the power button on Linux, NetBSD and HP-UX.
Signed-off-by: Helge Deller <deller@gmx.de>
Tested-by: Bruno Haible <bruno@clisp.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
(cherry picked from commit ed35afcb331a972210816435d6b1b5de17fc7d4f)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
diff --git a/hw/hppa/machine.c b/hw/hppa/machine.c
index 54ca2fd91a..9e611620cc 100644
--- a/hw/hppa/machine.c
+++ b/hw/hppa/machine.c
@@ -36,8 +36,8 @@
#define MIN_SEABIOS_HPPA_VERSION 12 /* require at least this fw version */
-/* Power button address at &PAGE0->pad[4] */
-#define HPA_POWER_BUTTON (0x40 + 4 * sizeof(uint32_t))
+#define HPA_POWER_BUTTON (FIRMWARE_END - 0x10)
+static hwaddr soft_power_reg;
#define enable_lasi_lan() 0
@@ -45,7 +45,6 @@ static DeviceState *lasi_dev;
static void hppa_powerdown_req(Notifier *n, void *opaque)
{
- hwaddr soft_power_reg = HPA_POWER_BUTTON;
uint32_t val;
val = ldl_be_phys(&address_space_memory, soft_power_reg);
@@ -221,7 +220,7 @@ static FWCfgState *create_fw_cfg(MachineState *ms, PCIBus
*pci_bus,
fw_cfg_add_file(fw_cfg, "/etc/hppa/machine",
g_memdup(mc->name, len), len);
- val = cpu_to_le64(HPA_POWER_BUTTON);
+ val = cpu_to_le64(soft_power_reg);
fw_cfg_add_file(fw_cfg, "/etc/hppa/power-button-addr",
g_memdup(&val, sizeof(val)), sizeof(val));
@@ -295,6 +294,8 @@ static TranslateFn
*machine_HP_common_init_cpus(MachineState *machine)
ram_max = 0xf0000000; /* 3.75 GB (32-bit CPU) */
}
+ soft_power_reg = translate(NULL, HPA_POWER_BUTTON);
+
for (unsigned int i = 0; i < smp_cpus; i++) {
g_autofree char *name = g_strdup_printf("cpu%u-io-eir", i);
--
2.39.2
- [Stable-8.2.1 23/38] tests/acpi: update expected data files, (continued)
- [Stable-8.2.1 23/38] tests/acpi: update expected data files, Michael Tokarev, 2024/01/18
- [Stable-8.2.1 24/38] tests/acpi: disallow tests/data/acpi/virt/SSDT.memhp changes, Michael Tokarev, 2024/01/18
- [Stable-8.2.1 26/38] target/s390x: Fix LAE setting a wrong access register, Michael Tokarev, 2024/01/18
- [Stable-8.2.1 25/38] tests/qtest/virtio-ccw: Fix device presence checking, Michael Tokarev, 2024/01/18
- [Stable-8.2.1 27/38] .gitlab-ci.d/buildtest.yml: Work around htags bug when environment is large, Michael Tokarev, 2024/01/18
- [Stable-8.2.1 28/38] readthodocs: fully specify a build environment, Michael Tokarev, 2024/01/18
- [Stable-8.2.1 29/38] hw/hppa/machine: Allow up to 3840 MB total memory, Michael Tokarev, 2024/01/18
- [Stable-8.2.1 30/38] hw/hppa/machine: Disable default devices with --nodefaults option, Michael Tokarev, 2024/01/18
- [Stable-8.2.1 32/38] target/hppa: Fix PDC address translation on PA2.0 with PSW.W=0, Michael Tokarev, 2024/01/18
- [Stable-8.2.1 31/38] hw/pci-host/astro: Add missing astro & elroy registers for NetBSD, Michael Tokarev, 2024/01/18
- [Stable-8.2.1 33/38] hw/hppa: Move software power button address back into PDC,
Michael Tokarev <=
- [Stable-8.2.1 34/38] target/hppa: Avoid accessing %gr0 when raising exception, Michael Tokarev, 2024/01/18
- [Stable-8.2.1 36/38] target/hppa: Fix IOR and ISR on unaligned access trap, Michael Tokarev, 2024/01/18
- [Stable-8.2.1 37/38] target/hppa: Fix IOR and ISR on error in probe, Michael Tokarev, 2024/01/18
- [Stable-8.2.1 38/38] target/hppa: Update SeaBIOS-hppa to version 15, Michael Tokarev, 2024/01/18
- [Stable-8.2.1 35/38] target/hppa: Export function hppa_set_ior_and_isr(), Michael Tokarev, 2024/01/18