hw/block/fdc-isa: Implement relocation and enabling/disabling for TYPE_ISA_FDC
The real SuperI/O chips emulated by QEMU allow for relocating and enabling or disabling their SuperI/O functions via software. So far this is not implemented. Prepare for that by adding isa_fdc_set_{enabled,iobase}. Signed-off-by: Bernhard Beschow <shentey@gmail.com> Message-Id: <20240114123911.4877-8-shentey@gmail.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
f165cdf102
commit
8c4d239139
@ -192,6 +192,20 @@ static Aml *build_fdinfo_aml(int idx, FloppyDriveType type)
|
||||
return dev;
|
||||
}
|
||||
|
||||
void isa_fdc_set_iobase(ISADevice *fdc, hwaddr iobase)
|
||||
{
|
||||
FDCtrlISABus *isa = ISA_FDC(fdc);
|
||||
|
||||
fdc->ioport_id = iobase;
|
||||
isa->iobase = iobase;
|
||||
portio_list_set_address(&isa->portio_list, isa->iobase);
|
||||
}
|
||||
|
||||
void isa_fdc_set_enabled(ISADevice *fdc, bool enabled)
|
||||
{
|
||||
portio_list_set_enabled(&ISA_FDC(fdc)->portio_list, enabled);
|
||||
}
|
||||
|
||||
int cmos_get_fd_drive_type(FloppyDriveType fd0)
|
||||
{
|
||||
int val;
|
||||
|
@ -14,6 +14,9 @@ void fdctrl_init_sysbus(qemu_irq irq, hwaddr mmio_base, DriveInfo **fds);
|
||||
void sun4m_fdctrl_init(qemu_irq irq, hwaddr io_base,
|
||||
DriveInfo **fds, qemu_irq *fdc_tc);
|
||||
|
||||
void isa_fdc_set_iobase(ISADevice *fdc, hwaddr iobase);
|
||||
void isa_fdc_set_enabled(ISADevice *fdc, bool enabled);
|
||||
|
||||
FloppyDriveType isa_fdc_get_drive_type(ISADevice *fdc, int i);
|
||||
int cmos_get_fd_drive_type(FloppyDriveType fd0);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user