The 3BCh I/O address was used by "Parallel Ports which were incorporated on to Video Cards" and "has now reappeared as an option for Parallel Ports integrated onto motherboards, upon which their configuration can be changed using BIOS."
The real PALcode is expected to configure the Super I/O and disable the parallel port, to allow the 3c0-3cf range to be assigned to the Cirrus VGA. This fixes an issue introduced in a4cb773928e where the SIO bind the parallel port in the address range used by the VGA device, resulting in overlap: (qemu) info mtree address-space: memory 0000000000000000-ffffffffffffffff (prio 0, i/o): system 00000801fc000000-00000801fdffffff (prio 0, i/o): pci0-io ... 00000801fc0003b4-00000801fc0003b5 (prio 0, i/o): vga 00000801fc0003ba-00000801fc0003ba (prio 0, i/o): vga 00000801fc0003bc-00000801fc0003c3 (prio 0, i/o): parallel ^^^ ^^^^^^^^ 00000801fc0003c0-00000801fc0003cf (prio 0, i/o): vga ^^^ 00000801fc0003d4-00000801fc0003d5 (prio 0, i/o): vga 00000801fc0003da-00000801fc0003da (prio 0, i/o): vga ... Reported-by: Emilio G. Cota <c...@braap.org> Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> --- hw/alpha/dp264.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hw/alpha/dp264.c b/hw/alpha/dp264.c index 80b987f7fb..87504add8e 100644 --- a/hw/alpha/dp264.c +++ b/hw/alpha/dp264.c @@ -58,6 +58,7 @@ static void clipper_init(MachineState *machine) AlphaCPU *cpus[4]; PCIBus *pci_bus; ISABus *isa_bus; + DeviceState *superio; qemu_irq rtc_irq; long size, i; char *palcode_filename; @@ -95,7 +96,10 @@ static void clipper_init(MachineState *machine) isa_create_simple(isa_bus, "i82374"); /* Super I/O */ - isa_create_simple(isa_bus, TYPE_SMC37C669_SUPERIO); + superio = DEVICE(isa_create(isa_bus, TYPE_SMC37C669_SUPERIO)); + /* Real PALcode configures the Super I/O and disable the parallel port */ + qdev_prop_set_bit(superio, "parallel", false); + qdev_init_nofail(superio); /* IDE disk setup. */ { -- 2.17.1