Commit a526a31cb4e02ecdf81c26c3f2f97db4a6089418
1 parent
18be8d77
Add more machine definitions
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4020 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
3 changed files
with
297 additions
and
0 deletions
hw/boards.h
... | ... | @@ -53,6 +53,8 @@ extern QEMUMachine r2d_machine; |
53 | 53 | |
54 | 54 | /* sun4m.c */ |
55 | 55 | extern QEMUMachine ss5_machine, ss10_machine, ss600mp_machine, ss20_machine; |
56 | +extern QEMUMachine voyager_machine, ss_lx_machine, ss4_machine, scls_machine; | |
57 | +extern QEMUMachine sbook_machine; | |
56 | 58 | extern QEMUMachine ss2_machine; |
57 | 59 | extern QEMUMachine ss1000_machine, ss2000_machine; |
58 | 60 | ... | ... |
hw/sun4m.c
... | ... | @@ -891,6 +891,216 @@ static const struct hwdef hwdefs[] = { |
891 | 891 | .max_mem = 0x10000000, |
892 | 892 | .default_cpu_model = "Cypress CY7C601", |
893 | 893 | }, |
894 | + /* Voyager */ | |
895 | + { | |
896 | + .iommu_base = 0x10000000, | |
897 | + .tcx_base = 0x50000000, | |
898 | + .cs_base = -1, | |
899 | + .slavio_base = 0x70000000, | |
900 | + .ms_kb_base = 0x71000000, | |
901 | + .serial_base = 0x71100000, | |
902 | + .nvram_base = 0x71200000, | |
903 | + .fd_base = 0x71400000, | |
904 | + .counter_base = 0x71d00000, | |
905 | + .intctl_base = 0x71e00000, | |
906 | + .idreg_base = 0x78000000, | |
907 | + .dma_base = 0x78400000, | |
908 | + .esp_base = 0x78800000, | |
909 | + .le_base = 0x78c00000, | |
910 | + .apc_base = 0x71300000, // pmc | |
911 | + .aux1_base = 0x71900000, | |
912 | + .aux2_base = 0x71910000, | |
913 | + .ecc_base = -1, | |
914 | + .sun4c_intctl_base = -1, | |
915 | + .sun4c_counter_base = -1, | |
916 | + .vram_size = 0x00100000, | |
917 | + .nvram_size = 0x2000, | |
918 | + .esp_irq = 18, | |
919 | + .le_irq = 16, | |
920 | + .clock_irq = 7, | |
921 | + .clock1_irq = 19, | |
922 | + .ms_kb_irq = 14, | |
923 | + .ser_irq = 15, | |
924 | + .fd_irq = 22, | |
925 | + .me_irq = 30, | |
926 | + .cs_irq = -1, | |
927 | + .machine_id = 0x80, | |
928 | + .iommu_version = 0x05000000, | |
929 | + .intbit_to_level = { | |
930 | + 2, 3, 5, 7, 9, 11, 0, 14, 3, 5, 7, 9, 11, 13, 12, 12, | |
931 | + 6, 0, 4, 10, 8, 0, 11, 0, 0, 0, 0, 0, 15, 0, 15, 0, | |
932 | + }, | |
933 | + .max_mem = 0x10000000, | |
934 | + .default_cpu_model = "Fujitsu MB86904", | |
935 | + }, | |
936 | + /* LX */ | |
937 | + { | |
938 | + .iommu_base = 0x10000000, | |
939 | + .tcx_base = 0x50000000, | |
940 | + .cs_base = -1, | |
941 | + .slavio_base = 0x70000000, | |
942 | + .ms_kb_base = 0x71000000, | |
943 | + .serial_base = 0x71100000, | |
944 | + .nvram_base = 0x71200000, | |
945 | + .fd_base = 0x71400000, | |
946 | + .counter_base = 0x71d00000, | |
947 | + .intctl_base = 0x71e00000, | |
948 | + .idreg_base = 0x78000000, | |
949 | + .dma_base = 0x78400000, | |
950 | + .esp_base = 0x78800000, | |
951 | + .le_base = 0x78c00000, | |
952 | + .apc_base = -1, | |
953 | + .aux1_base = 0x71900000, | |
954 | + .aux2_base = 0x71910000, | |
955 | + .ecc_base = -1, | |
956 | + .sun4c_intctl_base = -1, | |
957 | + .sun4c_counter_base = -1, | |
958 | + .vram_size = 0x00100000, | |
959 | + .nvram_size = 0x2000, | |
960 | + .esp_irq = 18, | |
961 | + .le_irq = 16, | |
962 | + .clock_irq = 7, | |
963 | + .clock1_irq = 19, | |
964 | + .ms_kb_irq = 14, | |
965 | + .ser_irq = 15, | |
966 | + .fd_irq = 22, | |
967 | + .me_irq = 30, | |
968 | + .cs_irq = -1, | |
969 | + .machine_id = 0x80, | |
970 | + .iommu_version = 0x04000000, | |
971 | + .intbit_to_level = { | |
972 | + 2, 3, 5, 7, 9, 11, 0, 14, 3, 5, 7, 9, 11, 13, 12, 12, | |
973 | + 6, 0, 4, 10, 8, 0, 11, 0, 0, 0, 0, 0, 15, 0, 15, 0, | |
974 | + }, | |
975 | + .max_mem = 0x10000000, | |
976 | + .default_cpu_model = "TI MicroSparc I", | |
977 | + }, | |
978 | + /* SS-4 */ | |
979 | + { | |
980 | + .iommu_base = 0x10000000, | |
981 | + .tcx_base = 0x50000000, | |
982 | + .cs_base = 0x6c000000, | |
983 | + .slavio_base = 0x70000000, | |
984 | + .ms_kb_base = 0x71000000, | |
985 | + .serial_base = 0x71100000, | |
986 | + .nvram_base = 0x71200000, | |
987 | + .fd_base = 0x71400000, | |
988 | + .counter_base = 0x71d00000, | |
989 | + .intctl_base = 0x71e00000, | |
990 | + .idreg_base = 0x78000000, | |
991 | + .dma_base = 0x78400000, | |
992 | + .esp_base = 0x78800000, | |
993 | + .le_base = 0x78c00000, | |
994 | + .apc_base = 0x6a000000, | |
995 | + .aux1_base = 0x71900000, | |
996 | + .aux2_base = 0x71910000, | |
997 | + .ecc_base = -1, | |
998 | + .sun4c_intctl_base = -1, | |
999 | + .sun4c_counter_base = -1, | |
1000 | + .vram_size = 0x00100000, | |
1001 | + .nvram_size = 0x2000, | |
1002 | + .esp_irq = 18, | |
1003 | + .le_irq = 16, | |
1004 | + .clock_irq = 7, | |
1005 | + .clock1_irq = 19, | |
1006 | + .ms_kb_irq = 14, | |
1007 | + .ser_irq = 15, | |
1008 | + .fd_irq = 22, | |
1009 | + .me_irq = 30, | |
1010 | + .cs_irq = 5, | |
1011 | + .machine_id = 0x80, | |
1012 | + .iommu_version = 0x05000000, | |
1013 | + .intbit_to_level = { | |
1014 | + 2, 3, 5, 7, 9, 11, 0, 14, 3, 5, 7, 9, 11, 13, 12, 12, | |
1015 | + 6, 0, 4, 10, 8, 0, 11, 0, 0, 0, 0, 0, 15, 0, 15, 0, | |
1016 | + }, | |
1017 | + .max_mem = 0x10000000, | |
1018 | + .default_cpu_model = "Fujitsu MB86904", | |
1019 | + }, | |
1020 | + /* SPARCClassic */ | |
1021 | + { | |
1022 | + .iommu_base = 0x10000000, | |
1023 | + .tcx_base = 0x50000000, | |
1024 | + .cs_base = -1, | |
1025 | + .slavio_base = 0x70000000, | |
1026 | + .ms_kb_base = 0x71000000, | |
1027 | + .serial_base = 0x71100000, | |
1028 | + .nvram_base = 0x71200000, | |
1029 | + .fd_base = 0x71400000, | |
1030 | + .counter_base = 0x71d00000, | |
1031 | + .intctl_base = 0x71e00000, | |
1032 | + .idreg_base = 0x78000000, | |
1033 | + .dma_base = 0x78400000, | |
1034 | + .esp_base = 0x78800000, | |
1035 | + .le_base = 0x78c00000, | |
1036 | + .apc_base = 0x6a000000, | |
1037 | + .aux1_base = 0x71900000, | |
1038 | + .aux2_base = 0x71910000, | |
1039 | + .ecc_base = -1, | |
1040 | + .sun4c_intctl_base = -1, | |
1041 | + .sun4c_counter_base = -1, | |
1042 | + .vram_size = 0x00100000, | |
1043 | + .nvram_size = 0x2000, | |
1044 | + .esp_irq = 18, | |
1045 | + .le_irq = 16, | |
1046 | + .clock_irq = 7, | |
1047 | + .clock1_irq = 19, | |
1048 | + .ms_kb_irq = 14, | |
1049 | + .ser_irq = 15, | |
1050 | + .fd_irq = 22, | |
1051 | + .me_irq = 30, | |
1052 | + .cs_irq = -1, | |
1053 | + .machine_id = 0x80, | |
1054 | + .iommu_version = 0x05000000, | |
1055 | + .intbit_to_level = { | |
1056 | + 2, 3, 5, 7, 9, 11, 0, 14, 3, 5, 7, 9, 11, 13, 12, 12, | |
1057 | + 6, 0, 4, 10, 8, 0, 11, 0, 0, 0, 0, 0, 15, 0, 15, 0, | |
1058 | + }, | |
1059 | + .max_mem = 0x10000000, | |
1060 | + .default_cpu_model = "TI MicroSparc I", | |
1061 | + }, | |
1062 | + /* SPARCbook */ | |
1063 | + { | |
1064 | + .iommu_base = 0x10000000, | |
1065 | + .tcx_base = 0x50000000, // XXX | |
1066 | + .cs_base = -1, | |
1067 | + .slavio_base = 0x70000000, | |
1068 | + .ms_kb_base = 0x71000000, | |
1069 | + .serial_base = 0x71100000, | |
1070 | + .nvram_base = 0x71200000, | |
1071 | + .fd_base = 0x71400000, | |
1072 | + .counter_base = 0x71d00000, | |
1073 | + .intctl_base = 0x71e00000, | |
1074 | + .idreg_base = 0x78000000, | |
1075 | + .dma_base = 0x78400000, | |
1076 | + .esp_base = 0x78800000, | |
1077 | + .le_base = 0x78c00000, | |
1078 | + .apc_base = 0x6a000000, | |
1079 | + .aux1_base = 0x71900000, | |
1080 | + .aux2_base = 0x71910000, | |
1081 | + .ecc_base = -1, | |
1082 | + .sun4c_intctl_base = -1, | |
1083 | + .sun4c_counter_base = -1, | |
1084 | + .vram_size = 0x00100000, | |
1085 | + .nvram_size = 0x2000, | |
1086 | + .esp_irq = 18, | |
1087 | + .le_irq = 16, | |
1088 | + .clock_irq = 7, | |
1089 | + .clock1_irq = 19, | |
1090 | + .ms_kb_irq = 14, | |
1091 | + .ser_irq = 15, | |
1092 | + .fd_irq = 22, | |
1093 | + .me_irq = 30, | |
1094 | + .cs_irq = -1, | |
1095 | + .machine_id = 0x80, | |
1096 | + .iommu_version = 0x05000000, | |
1097 | + .intbit_to_level = { | |
1098 | + 2, 3, 5, 7, 9, 11, 0, 14, 3, 5, 7, 9, 11, 13, 12, 12, | |
1099 | + 6, 0, 4, 10, 8, 0, 11, 0, 0, 0, 0, 0, 15, 0, 15, 0, | |
1100 | + }, | |
1101 | + .max_mem = 0x10000000, | |
1102 | + .default_cpu_model = "TI MicroSparc I", | |
1103 | + }, | |
894 | 1104 | }; |
895 | 1105 | |
896 | 1106 | /* SPARCstation 5 hardware initialisation */ |
... | ... | @@ -943,6 +1153,56 @@ static void ss2_init(int RAM_size, int vga_ram_size, |
943 | 1153 | kernel_cmdline, initrd_filename, cpu_model); |
944 | 1154 | } |
945 | 1155 | |
1156 | +/* SPARCstation Voyager hardware initialisation */ | |
1157 | +static void vger_init(int RAM_size, int vga_ram_size, | |
1158 | + const char *boot_device, DisplayState *ds, | |
1159 | + const char *kernel_filename, const char *kernel_cmdline, | |
1160 | + const char *initrd_filename, const char *cpu_model) | |
1161 | +{ | |
1162 | + sun4m_hw_init(&hwdefs[5], RAM_size, boot_device, ds, kernel_filename, | |
1163 | + kernel_cmdline, initrd_filename, cpu_model); | |
1164 | +} | |
1165 | + | |
1166 | +/* SPARCstation LX hardware initialisation */ | |
1167 | +static void ss_lx_init(int RAM_size, int vga_ram_size, | |
1168 | + const char *boot_device, DisplayState *ds, | |
1169 | + const char *kernel_filename, const char *kernel_cmdline, | |
1170 | + const char *initrd_filename, const char *cpu_model) | |
1171 | +{ | |
1172 | + sun4m_hw_init(&hwdefs[6], RAM_size, boot_device, ds, kernel_filename, | |
1173 | + kernel_cmdline, initrd_filename, cpu_model); | |
1174 | +} | |
1175 | + | |
1176 | +/* SPARCstation 4 hardware initialisation */ | |
1177 | +static void ss4_init(int RAM_size, int vga_ram_size, | |
1178 | + const char *boot_device, DisplayState *ds, | |
1179 | + const char *kernel_filename, const char *kernel_cmdline, | |
1180 | + const char *initrd_filename, const char *cpu_model) | |
1181 | +{ | |
1182 | + sun4m_hw_init(&hwdefs[7], RAM_size, boot_device, ds, kernel_filename, | |
1183 | + kernel_cmdline, initrd_filename, cpu_model); | |
1184 | +} | |
1185 | + | |
1186 | +/* SPARCClassic hardware initialisation */ | |
1187 | +static void scls_init(int RAM_size, int vga_ram_size, | |
1188 | + const char *boot_device, DisplayState *ds, | |
1189 | + const char *kernel_filename, const char *kernel_cmdline, | |
1190 | + const char *initrd_filename, const char *cpu_model) | |
1191 | +{ | |
1192 | + sun4m_hw_init(&hwdefs[8], RAM_size, boot_device, ds, kernel_filename, | |
1193 | + kernel_cmdline, initrd_filename, cpu_model); | |
1194 | +} | |
1195 | + | |
1196 | +/* SPARCbook hardware initialisation */ | |
1197 | +static void sbook_init(int RAM_size, int vga_ram_size, | |
1198 | + const char *boot_device, DisplayState *ds, | |
1199 | + const char *kernel_filename, const char *kernel_cmdline, | |
1200 | + const char *initrd_filename, const char *cpu_model) | |
1201 | +{ | |
1202 | + sun4m_hw_init(&hwdefs[9], RAM_size, boot_device, ds, kernel_filename, | |
1203 | + kernel_cmdline, initrd_filename, cpu_model); | |
1204 | +} | |
1205 | + | |
946 | 1206 | QEMUMachine ss5_machine = { |
947 | 1207 | "SS-5", |
948 | 1208 | "Sun4m platform, SPARCstation 5", |
... | ... | @@ -973,6 +1233,36 @@ QEMUMachine ss2_machine = { |
973 | 1233 | ss2_init, |
974 | 1234 | }; |
975 | 1235 | |
1236 | +QEMUMachine voyager_machine = { | |
1237 | + "Voyager", | |
1238 | + "Sun4m platform, SPARCstation Voyager", | |
1239 | + vger_init, | |
1240 | +}; | |
1241 | + | |
1242 | +QEMUMachine ss_lx_machine = { | |
1243 | + "LX", | |
1244 | + "Sun4m platform, SPARCstation LX", | |
1245 | + ss_lx_init, | |
1246 | +}; | |
1247 | + | |
1248 | +QEMUMachine ss4_machine = { | |
1249 | + "SS-4", | |
1250 | + "Sun4m platform, SPARCstation 4", | |
1251 | + ss4_init, | |
1252 | +}; | |
1253 | + | |
1254 | +QEMUMachine scls_machine = { | |
1255 | + "SPARCClassic", | |
1256 | + "Sun4m platform, SPARCClassic", | |
1257 | + scls_init, | |
1258 | +}; | |
1259 | + | |
1260 | +QEMUMachine sbook_machine = { | |
1261 | + "SPARCbook", | |
1262 | + "Sun4m platform, SPARCbook", | |
1263 | + sbook_init, | |
1264 | +}; | |
1265 | + | |
976 | 1266 | static const struct sun4d_hwdef sun4d_hwdefs[] = { |
977 | 1267 | /* SS-1000 */ |
978 | 1268 | { | ... | ... |
vl.c
... | ... | @@ -7988,6 +7988,11 @@ static void register_machines(void) |
7988 | 7988 | qemu_register_machine(&ss600mp_machine); |
7989 | 7989 | qemu_register_machine(&ss20_machine); |
7990 | 7990 | qemu_register_machine(&ss2_machine); |
7991 | + qemu_register_machine(&voyager_machine); | |
7992 | + qemu_register_machine(&ss_lx_machine); | |
7993 | + qemu_register_machine(&ss4_machine); | |
7994 | + qemu_register_machine(&scls_machine); | |
7995 | + qemu_register_machine(&sbook_machine); | |
7991 | 7996 | qemu_register_machine(&ss1000_machine); |
7992 | 7997 | qemu_register_machine(&ss2000_machine); |
7993 | 7998 | #endif | ... | ... |