34
34
#include "qemu/log.h"
35
35
36
36
/*
37
- * VIAs: There are two in every machine,
37
+ * VIAs: There are two in every machine
38
38
*/
39
39
40
- #define VIA_SIZE (0x2000)
41
-
42
40
/*
43
41
* Not all of these are true post MacII I think.
44
42
* CSA: probably the ones CHRP marks as 'unused' change purposes
@@ -945,52 +943,6 @@ static const MemoryRegionOps mos6522_q800_via2_ops = {
945
943
},
946
944
};
947
945
948
- static void mac_via_realize (DeviceState * dev , Error * * errp )
949
- {
950
- MacVIAState * m = MAC_VIA (dev );
951
- MOS6522State * ms ;
952
-
953
- /* Pass through mos6522 output IRQs */
954
- ms = MOS6522 (& m -> mos6522_via1 );
955
- object_property_add_alias (OBJECT (dev ), "irq[0]" , OBJECT (ms ),
956
- SYSBUS_DEVICE_GPIO_IRQ "[0]" );
957
- ms = MOS6522 (& m -> mos6522_via2 );
958
- object_property_add_alias (OBJECT (dev ), "irq[1]" , OBJECT (ms ),
959
- SYSBUS_DEVICE_GPIO_IRQ "[0]" );
960
-
961
- sysbus_realize (SYS_BUS_DEVICE (& m -> mos6522_via1 ), & error_abort );
962
- sysbus_realize (SYS_BUS_DEVICE (& m -> mos6522_via2 ), & error_abort );
963
-
964
- /* Pass through mos6522 input IRQs */
965
- qdev_pass_gpios (DEVICE (& m -> mos6522_via1 ), dev , "via1-irq" );
966
- qdev_pass_gpios (DEVICE (& m -> mos6522_via2 ), dev , "via2-irq" );
967
- }
968
-
969
- static void mac_via_init (Object * obj )
970
- {
971
- SysBusDevice * sbd = SYS_BUS_DEVICE (obj );
972
- MacVIAState * m = MAC_VIA (obj );
973
-
974
- /* MMIO */
975
- memory_region_init (& m -> mmio , obj , "mac-via" , 2 * VIA_SIZE );
976
- sysbus_init_mmio (sbd , & m -> mmio );
977
-
978
- memory_region_init_io (& m -> via1mem , obj , & mos6522_q800_via1_ops ,
979
- & m -> mos6522_via1 , "via1" , VIA_SIZE );
980
- memory_region_add_subregion (& m -> mmio , 0x0 , & m -> via1mem );
981
-
982
- memory_region_init_io (& m -> via2mem , obj , & mos6522_q800_via2_ops ,
983
- & m -> mos6522_via2 , "via2" , VIA_SIZE );
984
- memory_region_add_subregion (& m -> mmio , VIA_SIZE , & m -> via2mem );
985
-
986
- /* Init VIAs 1 and 2 */
987
- object_initialize_child (obj , "via1" , & m -> mos6522_via1 ,
988
- TYPE_MOS6522_Q800_VIA1 );
989
-
990
- object_initialize_child (obj , "via2" , & m -> mos6522_via2 ,
991
- TYPE_MOS6522_Q800_VIA2 );
992
- }
993
-
994
946
static void via1_postload_update_cb (void * opaque , bool running , RunState state )
995
947
{
996
948
MOS6522Q800VIA1State * v1s = MOS6522_Q800_VIA1 (opaque );
@@ -1013,21 +965,6 @@ static int via1_post_load(void *opaque, int version_id)
1013
965
return 0 ;
1014
966
}
1015
967
1016
- static void mac_via_class_init (ObjectClass * oc , void * data )
1017
- {
1018
- DeviceClass * dc = DEVICE_CLASS (oc );
1019
-
1020
- dc -> realize = mac_via_realize ;
1021
- }
1022
-
1023
- static TypeInfo mac_via_info = {
1024
- .name = TYPE_MAC_VIA ,
1025
- .parent = TYPE_SYS_BUS_DEVICE ,
1026
- .instance_size = sizeof (MacVIAState ),
1027
- .instance_init = mac_via_init ,
1028
- .class_init = mac_via_class_init ,
1029
- };
1030
-
1031
968
/* VIA 1 */
1032
969
static void mos6522_q800_via1_reset (DeviceState * dev )
1033
970
{
@@ -1095,6 +1032,11 @@ static void mos6522_q800_via1_realize(DeviceState *dev, Error **errp)
1095
1032
static void mos6522_q800_via1_init (Object * obj )
1096
1033
{
1097
1034
MOS6522Q800VIA1State * v1s = MOS6522_Q800_VIA1 (obj );
1035
+ SysBusDevice * sbd = SYS_BUS_DEVICE (v1s );
1036
+
1037
+ memory_region_init_io (& v1s -> via_mem , obj , & mos6522_q800_via1_ops , v1s ,
1038
+ "via1" , VIA_SIZE );
1039
+ sysbus_init_mmio (sbd , & v1s -> via_mem );
1098
1040
1099
1041
/* ADB */
1100
1042
qbus_create_inplace ((BusState * )& v1s -> adb_bus , sizeof (v1s -> adb_bus ),
@@ -1187,6 +1129,13 @@ static void mos6522_q800_via2_reset(DeviceState *dev)
1187
1129
1188
1130
static void mos6522_q800_via2_init (Object * obj )
1189
1131
{
1132
+ MOS6522Q800VIA2State * v2s = MOS6522_Q800_VIA2 (obj );
1133
+ SysBusDevice * sbd = SYS_BUS_DEVICE (v2s );
1134
+
1135
+ memory_region_init_io (& v2s -> via_mem , obj , & mos6522_q800_via2_ops , v2s ,
1136
+ "via2" , VIA_SIZE );
1137
+ sysbus_init_mmio (sbd , & v2s -> via_mem );
1138
+
1190
1139
qdev_init_gpio_in_named (DEVICE (obj ), via2_irq_request , "via2-irq" ,
1191
1140
VIA2_IRQ_NB );
1192
1141
}
@@ -1224,7 +1173,6 @@ static void mac_via_register_types(void)
1224
1173
{
1225
1174
type_register_static (& mos6522_q800_via1_type_info );
1226
1175
type_register_static (& mos6522_q800_via2_type_info );
1227
- type_register_static (& mac_via_info );
1228
1176
}
1229
1177
1230
1178
type_init (mac_via_register_types );
0 commit comments