Hi, > > $ virsh qemu-monitor-command fedora-org-q35.base --hmp "info mtree" | grep > > fdc > > 00000000000003f1-00000000000003f5 (prio 0, RW): fdc > > 00000000000003f7-00000000000003f7 (prio 0, RW): fdc > > > > ... looks fishy too. Shouldn't that be 0x3f2-0x3f6 for the first range? > > I think 0x3f0-0x3f5 based on this: > > hw/block/fdc.c: FD_REG_SRA = 0x00, > hw/block/fdc.c: FD_REG_SRB = 0x01, > hw/block/fdc.c: FD_REG_DOR = 0x02, > hw/block/fdc.c: FD_REG_TDR = 0x03, > hw/block/fdc.c: FD_REG_MSR = 0x04, > hw/block/fdc.c: FD_REG_DSR = 0x04, > hw/block/fdc.c: FD_REG_FIFO = 0x05, > hw/block/fdc.c: FD_REG_DIR = 0x07, > hw/block/fdc.c: FD_REG_CCR = 0x07, > > So: > > diff --git a/hw/block/fdc.c b/hw/block/fdc.c > index d8a8edd..c761291 100644 > --- a/hw/block/fdc.c > +++ b/hw/block/fdc.c > @@ -2186,7 +2186,7 @@ static void fdctrl_realize_common(FDCtrl *fdctrl, Error > **errp) > } > > static const MemoryRegionPortio fdc_portio_list[] = { > - { 1, 5, 1, .read = fdctrl_read, .write = fdctrl_write }, > + { 0, 6, 1, .read = fdctrl_read, .write = fdctrl_write }, > { 7, 1, 1, .read = fdctrl_read, .write = fdctrl_write }, > PORTIO_END_OF_LIST(), > };
The io ranges for FDC0 in hw/i386/acpi-dsdt-isa.dsl are not consistent with that though. If 0x3f0 is correct (which seems to be the case from a brief look) this needs to be fixed up. cheers, Gerd