mirror of https://github.com/xemu-project/xemu.git
hw/hppa: Export machine name, BTLBs, power-button address via fw_cfg
Provide necessary info to SeaBIOS-hppa. Signed-off-by: Helge Deller <deller@gmx.de>
This commit is contained in:
parent
ae759c96c3
commit
bcd4dd4c22
|
@ -118,11 +118,13 @@ static void fw_cfg_boot_set(void *opaque, const char *boot_device,
|
||||||
fw_cfg_modify_i16(opaque, FW_CFG_BOOT_DEVICE, boot_device[0]);
|
fw_cfg_modify_i16(opaque, FW_CFG_BOOT_DEVICE, boot_device[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static FWCfgState *create_fw_cfg(MachineState *ms)
|
static FWCfgState *create_fw_cfg(MachineState *ms, PCIBus *pci_bus)
|
||||||
{
|
{
|
||||||
FWCfgState *fw_cfg;
|
FWCfgState *fw_cfg;
|
||||||
uint64_t val;
|
uint64_t val;
|
||||||
const char qemu_version[] = QEMU_VERSION;
|
const char qemu_version[] = QEMU_VERSION;
|
||||||
|
MachineClass *mc = MACHINE_GET_CLASS(ms);
|
||||||
|
int len;
|
||||||
|
|
||||||
fw_cfg = fw_cfg_init_mem(FW_CFG_IO_BASE, FW_CFG_IO_BASE + 4);
|
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);
|
fw_cfg_add_i16(fw_cfg, FW_CFG_NB_CPUS, ms->smp.cpus);
|
||||||
|
@ -137,8 +139,20 @@ static FWCfgState *create_fw_cfg(MachineState *ms)
|
||||||
fw_cfg_add_file(fw_cfg, "/etc/cpu/tlb_entries",
|
fw_cfg_add_file(fw_cfg, "/etc/cpu/tlb_entries",
|
||||||
g_memdup(&val, sizeof(val)), sizeof(val));
|
g_memdup(&val, sizeof(val)), sizeof(val));
|
||||||
|
|
||||||
|
val = cpu_to_le64(HPPA_BTLB_ENTRIES);
|
||||||
|
fw_cfg_add_file(fw_cfg, "/etc/cpu/btlb_entries",
|
||||||
|
g_memdup(&val, sizeof(val)), sizeof(val));
|
||||||
|
|
||||||
|
len = strlen(mc->name) + 1;
|
||||||
|
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(HPA_POWER_BUTTON);
|
||||||
fw_cfg_add_file(fw_cfg, "/etc/power-button-addr",
|
fw_cfg_add_file(fw_cfg, "/etc/hppa/power-button-addr",
|
||||||
|
g_memdup(&val, sizeof(val)), sizeof(val));
|
||||||
|
|
||||||
|
val = cpu_to_le64(CPU_HPA + 24);
|
||||||
|
fw_cfg_add_file(fw_cfg, "/etc/hppa/DebugOutputPort",
|
||||||
g_memdup(&val, sizeof(val)), sizeof(val));
|
g_memdup(&val, sizeof(val)), sizeof(val));
|
||||||
|
|
||||||
fw_cfg_add_i16(fw_cfg, FW_CFG_BOOT_DEVICE, ms->boot_config.order[0]);
|
fw_cfg_add_i16(fw_cfg, FW_CFG_BOOT_DEVICE, ms->boot_config.order[0]);
|
||||||
|
@ -148,6 +162,8 @@ static FWCfgState *create_fw_cfg(MachineState *ms)
|
||||||
g_memdup(qemu_version, sizeof(qemu_version)),
|
g_memdup(qemu_version, sizeof(qemu_version)),
|
||||||
sizeof(qemu_version));
|
sizeof(qemu_version));
|
||||||
|
|
||||||
|
fw_cfg_add_extra_pci_roots(pci_bus, fw_cfg);
|
||||||
|
|
||||||
return fw_cfg;
|
return fw_cfg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -250,7 +266,7 @@ static void machine_hppa_init(MachineState *machine)
|
||||||
parallel_hds[0]);
|
parallel_hds[0]);
|
||||||
|
|
||||||
/* fw_cfg configuration interface */
|
/* fw_cfg configuration interface */
|
||||||
create_fw_cfg(machine);
|
create_fw_cfg(machine, pci_bus);
|
||||||
|
|
||||||
/* SCSI disk setup. */
|
/* SCSI disk setup. */
|
||||||
dev = DEVICE(pci_create_simple(pci_bus, -1, "lsi53c895a"));
|
dev = DEVICE(pci_create_simple(pci_bus, -1, "lsi53c895a"));
|
||||||
|
|
Loading…
Reference in New Issue