@@ -225,7 +225,7 @@ static void q800_init(MachineState *machine)
225
225
hwaddr parameters_base ;
226
226
CPUState * cs ;
227
227
DeviceState * dev ;
228
- DeviceState * via_dev ;
228
+ DeviceState * via1_dev , * via2_dev ;
229
229
DeviceState * escc_orgate ;
230
230
SysBusESPState * sysbus_esp ;
231
231
ESPState * esp ;
@@ -270,28 +270,30 @@ static void q800_init(MachineState *machine)
270
270
object_property_set_link (OBJECT (glue ), "cpu" , OBJECT (cpu ), & error_abort );
271
271
sysbus_realize_and_unref (SYS_BUS_DEVICE (glue ), & error_fatal );
272
272
273
- /* VIA */
274
-
275
- via_dev = qdev_new (TYPE_MAC_VIA );
273
+ /* VIA 1 */
274
+ via1_dev = qdev_new (TYPE_MOS6522_Q800_VIA1 );
276
275
dinfo = drive_get (IF_MTD , 0 , 0 );
277
276
if (dinfo ) {
278
- qdev_prop_set_drive (via_dev , "drive" , blk_by_legacy_dinfo (dinfo ));
277
+ qdev_prop_set_drive (via1_dev , "drive" , blk_by_legacy_dinfo (dinfo ));
279
278
}
280
- sysbus = SYS_BUS_DEVICE (via_dev );
279
+ sysbus = SYS_BUS_DEVICE (via1_dev );
281
280
sysbus_realize_and_unref (sysbus , & error_fatal );
282
- sysbus_mmio_map (sysbus , 0 , VIA_BASE );
283
- qdev_connect_gpio_out_named (DEVICE (sysbus ), "irq" , 0 ,
284
- qdev_get_gpio_in (glue , 0 ));
285
- qdev_connect_gpio_out_named (DEVICE (sysbus ), "irq" , 1 ,
286
- qdev_get_gpio_in (glue , 1 ));
287
-
281
+ sysbus_mmio_map (sysbus , 1 , VIA_BASE );
282
+ sysbus_connect_irq (sysbus , 0 , qdev_get_gpio_in (glue , 0 ));
288
283
289
- adb_bus = qdev_get_child_bus (via_dev , "adb.0" );
284
+ adb_bus = qdev_get_child_bus (via1_dev , "adb.0" );
290
285
dev = qdev_new (TYPE_ADB_KEYBOARD );
291
286
qdev_realize_and_unref (dev , adb_bus , & error_fatal );
292
287
dev = qdev_new (TYPE_ADB_MOUSE );
293
288
qdev_realize_and_unref (dev , adb_bus , & error_fatal );
294
289
290
+ /* VIA 2 */
291
+ via2_dev = qdev_new (TYPE_MOS6522_Q800_VIA2 );
292
+ sysbus = SYS_BUS_DEVICE (via2_dev );
293
+ sysbus_realize_and_unref (sysbus , & error_fatal );
294
+ sysbus_mmio_map (sysbus , 1 , VIA_BASE + VIA_SIZE );
295
+ sysbus_connect_irq (sysbus , 0 , qdev_get_gpio_in (glue , 1 ));
296
+
295
297
/* MACSONIC */
296
298
297
299
if (nb_nics > 1 ) {
@@ -375,12 +377,10 @@ static void q800_init(MachineState *machine)
375
377
376
378
sysbus = SYS_BUS_DEVICE (dev );
377
379
sysbus_realize_and_unref (sysbus , & error_fatal );
378
- sysbus_connect_irq (sysbus , 0 , qdev_get_gpio_in_named (via_dev ,
379
- "via2-irq" ,
380
- VIA2_IRQ_SCSI_BIT ));
381
- sysbus_connect_irq (sysbus , 1 ,
382
- qdev_get_gpio_in_named (via_dev , "via2-irq" ,
383
- VIA2_IRQ_SCSI_DATA_BIT ));
380
+ sysbus_connect_irq (sysbus , 0 , qdev_get_gpio_in (via2_dev ,
381
+ VIA2_IRQ_SCSI_BIT ));
382
+ sysbus_connect_irq (sysbus , 1 , qdev_get_gpio_in (via2_dev ,
383
+ VIA2_IRQ_SCSI_DATA_BIT ));
384
384
sysbus_mmio_map (sysbus , 0 , ESP_BASE );
385
385
sysbus_mmio_map (sysbus , 1 , ESP_PDMA );
386
386
0 commit comments