#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);
@@ -191,7 +190,7 @@ static void fw_cfg_boot_set(void *opaque, const char
*boot_device,
}
static FWCfgState *create_fw_cfg(MachineState *ms, PCIBus *pci_bus,
- hwaddr addr)
+ hwaddr addr, hwaddr pwr_button_addr)
{
FWCfgState *fw_cfg;
uint64_t val;
@@ -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(pwr_button_addr);
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);
@@ -407,7 +408,8 @@ static void machine_HP_common_init_tail(MachineState
*machine, PCIBus *pci_bus,
qemu_register_powerdown_notifier(&hppa_system_powerdown_notifier);
/* fw_cfg configuration interface */
- create_fw_cfg(machine, pci_bus, translate(NULL, FW_CFG_IO_BASE));
+ create_fw_cfg(machine, pci_bus, translate(NULL, FW_CFG_IO_BASE),
+ translate(NULL, HPA_POWER_BUTTON));
/* Load firmware. Given that this is not "real" firmware,
but one explicitly written for the emulation, we might as