Lines Matching +full:dma +full:- +full:controller

26  * The controller is used in Sun4m systems in a slightly different
27 * way. There are changes in DOR register and DMA is not available.
33 #include "qemu/error-report.h"
38 #include "hw/qdev-properties.h"
39 #include "hw/qdev-properties-system.h"
42 #include "system/block-backend.h"
47 #include "qemu/main-loop.h"
51 #include "fdc-internal.h"
62 uint32_t dma; member
72 FDCtrl *s = &isa->state; in fdctrl_external_reset_isa()
79 fdctrl_init_drives(&ISA_FDC(fdc)->state.bus, fds); in isa_fdc_init_drives()
93 FDCtrl *fdctrl = &isa->state; in isabus_fdc_realize()
96 isa_register_portio_list(isadev, &isa->portio_list, in isabus_fdc_realize()
97 isa->iobase, fdc_portio_list, fdctrl, in isabus_fdc_realize()
100 fdctrl->irq = isa_bus_get_irq(bus, isa->irq); in isabus_fdc_realize()
101 fdctrl->dma_chann = isa->dma; in isabus_fdc_realize()
102 if (fdctrl->dma_chann != -1) { in isabus_fdc_realize()
104 fdctrl->dma = isa_bus_get_dma(bus, isa->dma); in isabus_fdc_realize()
105 if (!fdctrl->dma) { in isabus_fdc_realize()
106 error_setg(errp, "ISA controller does not support DMA"); in isabus_fdc_realize()
109 k = ISADMA_GET_CLASS(fdctrl->dma); in isabus_fdc_realize()
110 k->register_channel(fdctrl->dma, fdctrl->dma_chann, in isabus_fdc_realize()
114 qdev_set_legacy_instance_id(dev, isa->iobase, 2); in isabus_fdc_realize()
127 return isa->state.drives[i].drive; in isa_fdc_get_drive_type()
136 for (fdf = fd_formats; fdf->drive != FLOPPY_DRIVE_TYPE_NONE; fdf++) { in isa_fdc_get_drive_max_chs()
137 if (fdf->drive != type) { in isa_fdc_get_drive_max_chs()
140 if (*maxc < fdf->max_track) { in isa_fdc_get_drive_max_chs()
141 *maxc = fdf->max_track; in isa_fdc_get_drive_max_chs()
143 if (*maxh < fdf->max_head) { in isa_fdc_get_drive_max_chs()
144 *maxh = fdf->max_head; in isa_fdc_get_drive_max_chs()
146 if (*maxs < fdf->last_sect) { in isa_fdc_get_drive_max_chs()
147 *maxs = fdf->last_sect; in isa_fdc_get_drive_max_chs()
152 (*maxc)--; in isa_fdc_get_drive_max_chs()
201 fdc->ioport_id = iobase; in isa_fdc_set_iobase()
202 isa->iobase = iobase; in isa_fdc_set_iobase()
203 portio_list_set_address(&isa->portio_list, isa->iobase); in isa_fdc_set_iobase()
208 portio_list_set_enabled(&ISA_FDC(fdc)->portio_list, enabled); in isa_fdc_set_enabled()
245 0, 0, 0, 0, /* presence of floppy drives #0 - #3 */ in build_fdc_aml()
251 aml_io(AML_DECODE16, isa->iobase + 2, isa->iobase + 2, 0x00, 0x04)); in build_fdc_aml()
253 aml_io(AML_DECODE16, isa->iobase + 7, isa->iobase + 7, 0x00, 0x01)); in build_fdc_aml()
254 aml_append(crs, aml_irq_no_flags(isa->irq)); in build_fdc_aml()
256 aml_dma(AML_COMPATIBILITY, AML_NOTBUSMASTER, AML_TRANSFER8, isa->dma)); in build_fdc_aml()
289 DEFINE_PROP_UINT32("dma", FDCtrlISABus, dma, 2),
306 dc->desc = "virtual floppy controller"; in isabus_fdc_class_init()
307 dc->realize = isabus_fdc_realize; in isabus_fdc_class_init()
308 dc->fw_name = "fdc"; in isabus_fdc_class_init()
310 dc->vmsd = &vmstate_isa_fdc; in isabus_fdc_class_init()
311 adevc->build_dev_aml = build_fdc_aml; in isabus_fdc_class_init()
313 set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); in isabus_fdc_class_init()
320 device_add_bootindex_property(obj, &isa->bootindexA, in isabus_fdc_instance_init()
323 device_add_bootindex_property(obj, &isa->bootindexB, in isabus_fdc_instance_init()