@samitouri / QOSamiQemu / commits / 9e59b112b6

hw/hppa: Add emulation for the 64-bit A400 server

The A400 machine is the very first 64-bit-only machines which uses the 64-bit PAT firmware and doesn't support 32-bit PDC any longer. Long-term goal is to support the MPE and HP-UX 11iv3 operating systems, which both require a machine with PAT firmware. Signed-off-by: Helge Deller <deller@gmx.de> Reviewed-by: Anton Johansson <anjo@rev.ng>

Helge Deller committed Jan 29, 2026 at 18:14 UTC 9e59b112b6c0e24831e1f28926df0bc917b14902
1 file changed +28
hw/hppa/machine.c
+28
@@ -729,6 +729,14 @@ static void machine_HP_C3700_init(MachineState *machine)
729 machine_HP_common_init_tail(machine, pci_bus, translate);
730 }
731
732 +/*
733 + * Create HP A400 server
734 + */
735 +static void machine_HP_A400_init(MachineState *machine)
736 +{
737 + machine_HP_C3700_init(machine);
738 +}
739 +
740 static void hppa_machine_reset(MachineState *ms, ResetType type)
741 {
742 unsigned int smp_cpus = ms->smp.cpus;
@@ -822,6 +830,22 @@ static void HP_C3700_machine_init_class_init(ObjectClass *oc, const void *data)
830 mc->default_ram_size = 1024 * MiB;
831 }
832
833 +static void HP_A400_machine_init_class_init(ObjectClass *oc, const void *data)
834 +{
835 + static const char * const valid_cpu_types[] = {
836 + TYPE_HPPA64_CPU,
837 + NULL
838 + };
839 + MachineClass *mc = MACHINE_CLASS(oc);
840 +
841 + mc->desc = "HP A400-44 workstation";
842 + mc->default_cpu_type = TYPE_HPPA64_CPU;
843 + mc->valid_cpu_types = valid_cpu_types;
844 + mc->init = machine_HP_A400_init;
845 + mc->max_cpus = HPPA_MAX_CPUS;
846 + mc->default_ram_size = 1024 * MiB;
847 +}
848 +
849 static void HP_715_machine_init_class_init(ObjectClass *oc, const void *data)
850 {
851 static const char * const valid_cpu_types[] = {
@@ -860,6 +884,10 @@ static const TypeInfo hppa_machine_types[] = {
884 .name = MACHINE_TYPE_NAME("C3700"),
885 .parent = TYPE_HPPA_COMMON_MACHINE,
886 .class_init = HP_C3700_machine_init_class_init,
887 + }, {
888 + .name = MACHINE_TYPE_NAME("A400"),
889 + .parent = TYPE_HPPA_COMMON_MACHINE,
890 + .class_init = HP_A400_machine_init_class_init,
891 }, {
892 .name = MACHINE_TYPE_NAME("715"),
893 .parent = TYPE_HPPA_COMMON_MACHINE,