Commit c9b1ae2cfd25e3ad88c6ef61d18eaefd177a5e49
1 parent
f87fc09b
Add to machine structure a flag to use SCSI drives instead of IDE: fixes SS-20
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5339 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
5 changed files
with
27 additions
and
16 deletions
hw/boards.h
@@ -17,6 +17,7 @@ typedef struct QEMUMachine { | @@ -17,6 +17,7 @@ typedef struct QEMUMachine { | ||
17 | #define RAMSIZE_FIXED (1 << 0) | 17 | #define RAMSIZE_FIXED (1 << 0) |
18 | ram_addr_t ram_require; | 18 | ram_addr_t ram_require; |
19 | int nodisk_ok; | 19 | int nodisk_ok; |
20 | + int use_scsi; | ||
20 | struct QEMUMachine *next; | 21 | struct QEMUMachine *next; |
21 | } QEMUMachine; | 22 | } QEMUMachine; |
22 | 23 |
hw/realview.c
@@ -197,8 +197,9 @@ static void realview_init(ram_addr_t ram_size, int vga_ram_size, | @@ -197,8 +197,9 @@ static void realview_init(ram_addr_t ram_size, int vga_ram_size, | ||
197 | } | 197 | } |
198 | 198 | ||
199 | QEMUMachine realview_machine = { | 199 | QEMUMachine realview_machine = { |
200 | - "realview", | ||
201 | - "ARM RealView Emulation Baseboard (ARM926EJ-S)", | ||
202 | - realview_init, | ||
203 | - 0x1000 | 200 | + .name = "realview", |
201 | + .desc = "ARM RealView Emulation Baseboard (ARM926EJ-S)", | ||
202 | + .init = realview_init, | ||
203 | + .ram_require = 0x1000, | ||
204 | + .use_scsi = 1, | ||
204 | }; | 205 | }; |
hw/sun4m.c
@@ -1292,6 +1292,7 @@ QEMUMachine ss5_machine = { | @@ -1292,6 +1292,7 @@ QEMUMachine ss5_machine = { | ||
1292 | .init = ss5_init, | 1292 | .init = ss5_init, |
1293 | .ram_require = PROM_SIZE_MAX + TCX_SIZE, | 1293 | .ram_require = PROM_SIZE_MAX + TCX_SIZE, |
1294 | .nodisk_ok = 1, | 1294 | .nodisk_ok = 1, |
1295 | + .use_scsi = 1, | ||
1295 | }; | 1296 | }; |
1296 | 1297 | ||
1297 | QEMUMachine ss10_machine = { | 1298 | QEMUMachine ss10_machine = { |
@@ -1300,6 +1301,7 @@ QEMUMachine ss10_machine = { | @@ -1300,6 +1301,7 @@ QEMUMachine ss10_machine = { | ||
1300 | .init = ss10_init, | 1301 | .init = ss10_init, |
1301 | .ram_require = PROM_SIZE_MAX + TCX_SIZE, | 1302 | .ram_require = PROM_SIZE_MAX + TCX_SIZE, |
1302 | .nodisk_ok = 1, | 1303 | .nodisk_ok = 1, |
1304 | + .use_scsi = 1, | ||
1303 | }; | 1305 | }; |
1304 | 1306 | ||
1305 | QEMUMachine ss600mp_machine = { | 1307 | QEMUMachine ss600mp_machine = { |
@@ -1308,6 +1310,7 @@ QEMUMachine ss600mp_machine = { | @@ -1308,6 +1310,7 @@ QEMUMachine ss600mp_machine = { | ||
1308 | .init = ss600mp_init, | 1310 | .init = ss600mp_init, |
1309 | .ram_require = PROM_SIZE_MAX + TCX_SIZE, | 1311 | .ram_require = PROM_SIZE_MAX + TCX_SIZE, |
1310 | .nodisk_ok = 1, | 1312 | .nodisk_ok = 1, |
1313 | + .use_scsi = 1, | ||
1311 | }; | 1314 | }; |
1312 | 1315 | ||
1313 | QEMUMachine ss20_machine = { | 1316 | QEMUMachine ss20_machine = { |
@@ -1316,6 +1319,7 @@ QEMUMachine ss20_machine = { | @@ -1316,6 +1319,7 @@ QEMUMachine ss20_machine = { | ||
1316 | .init = ss20_init, | 1319 | .init = ss20_init, |
1317 | .ram_require = PROM_SIZE_MAX + TCX_SIZE, | 1320 | .ram_require = PROM_SIZE_MAX + TCX_SIZE, |
1318 | .nodisk_ok = 1, | 1321 | .nodisk_ok = 1, |
1322 | + .use_scsi = 1, | ||
1319 | }; | 1323 | }; |
1320 | 1324 | ||
1321 | QEMUMachine ss2_machine = { | 1325 | QEMUMachine ss2_machine = { |
@@ -1324,6 +1328,7 @@ QEMUMachine ss2_machine = { | @@ -1324,6 +1328,7 @@ QEMUMachine ss2_machine = { | ||
1324 | .init = ss2_init, | 1328 | .init = ss2_init, |
1325 | .ram_require = PROM_SIZE_MAX + TCX_SIZE, | 1329 | .ram_require = PROM_SIZE_MAX + TCX_SIZE, |
1326 | .nodisk_ok = 1, | 1330 | .nodisk_ok = 1, |
1331 | + .use_scsi = 1, | ||
1327 | }; | 1332 | }; |
1328 | 1333 | ||
1329 | QEMUMachine voyager_machine = { | 1334 | QEMUMachine voyager_machine = { |
@@ -1332,6 +1337,7 @@ QEMUMachine voyager_machine = { | @@ -1332,6 +1337,7 @@ QEMUMachine voyager_machine = { | ||
1332 | .init = vger_init, | 1337 | .init = vger_init, |
1333 | .ram_require = PROM_SIZE_MAX + TCX_SIZE, | 1338 | .ram_require = PROM_SIZE_MAX + TCX_SIZE, |
1334 | .nodisk_ok = 1, | 1339 | .nodisk_ok = 1, |
1340 | + .use_scsi = 1, | ||
1335 | }; | 1341 | }; |
1336 | 1342 | ||
1337 | QEMUMachine ss_lx_machine = { | 1343 | QEMUMachine ss_lx_machine = { |
@@ -1340,6 +1346,7 @@ QEMUMachine ss_lx_machine = { | @@ -1340,6 +1346,7 @@ QEMUMachine ss_lx_machine = { | ||
1340 | .init = ss_lx_init, | 1346 | .init = ss_lx_init, |
1341 | .ram_require = PROM_SIZE_MAX + TCX_SIZE, | 1347 | .ram_require = PROM_SIZE_MAX + TCX_SIZE, |
1342 | .nodisk_ok = 1, | 1348 | .nodisk_ok = 1, |
1349 | + .use_scsi = 1, | ||
1343 | }; | 1350 | }; |
1344 | 1351 | ||
1345 | QEMUMachine ss4_machine = { | 1352 | QEMUMachine ss4_machine = { |
@@ -1348,6 +1355,7 @@ QEMUMachine ss4_machine = { | @@ -1348,6 +1355,7 @@ QEMUMachine ss4_machine = { | ||
1348 | .init = ss4_init, | 1355 | .init = ss4_init, |
1349 | .ram_require = PROM_SIZE_MAX + TCX_SIZE, | 1356 | .ram_require = PROM_SIZE_MAX + TCX_SIZE, |
1350 | .nodisk_ok = 1, | 1357 | .nodisk_ok = 1, |
1358 | + .use_scsi = 1, | ||
1351 | }; | 1359 | }; |
1352 | 1360 | ||
1353 | QEMUMachine scls_machine = { | 1361 | QEMUMachine scls_machine = { |
@@ -1356,6 +1364,7 @@ QEMUMachine scls_machine = { | @@ -1356,6 +1364,7 @@ QEMUMachine scls_machine = { | ||
1356 | .init = scls_init, | 1364 | .init = scls_init, |
1357 | .ram_require = PROM_SIZE_MAX + TCX_SIZE, | 1365 | .ram_require = PROM_SIZE_MAX + TCX_SIZE, |
1358 | .nodisk_ok = 1, | 1366 | .nodisk_ok = 1, |
1367 | + .use_scsi = 1, | ||
1359 | }; | 1368 | }; |
1360 | 1369 | ||
1361 | QEMUMachine sbook_machine = { | 1370 | QEMUMachine sbook_machine = { |
@@ -1364,6 +1373,7 @@ QEMUMachine sbook_machine = { | @@ -1364,6 +1373,7 @@ QEMUMachine sbook_machine = { | ||
1364 | .init = sbook_init, | 1373 | .init = sbook_init, |
1365 | .ram_require = PROM_SIZE_MAX + TCX_SIZE, | 1374 | .ram_require = PROM_SIZE_MAX + TCX_SIZE, |
1366 | .nodisk_ok = 1, | 1375 | .nodisk_ok = 1, |
1376 | + .use_scsi = 1, | ||
1367 | }; | 1377 | }; |
1368 | 1378 | ||
1369 | static const struct sun4d_hwdef sun4d_hwdefs[] = { | 1379 | static const struct sun4d_hwdef sun4d_hwdefs[] = { |
@@ -1611,6 +1621,7 @@ QEMUMachine ss1000_machine = { | @@ -1611,6 +1621,7 @@ QEMUMachine ss1000_machine = { | ||
1611 | .init = ss1000_init, | 1621 | .init = ss1000_init, |
1612 | .ram_require = PROM_SIZE_MAX + TCX_SIZE, | 1622 | .ram_require = PROM_SIZE_MAX + TCX_SIZE, |
1613 | .nodisk_ok = 1, | 1623 | .nodisk_ok = 1, |
1624 | + .use_scsi = 1, | ||
1614 | }; | 1625 | }; |
1615 | 1626 | ||
1616 | QEMUMachine ss2000_machine = { | 1627 | QEMUMachine ss2000_machine = { |
@@ -1619,4 +1630,5 @@ QEMUMachine ss2000_machine = { | @@ -1619,4 +1630,5 @@ QEMUMachine ss2000_machine = { | ||
1619 | .init = ss2000_init, | 1630 | .init = ss2000_init, |
1620 | .ram_require = PROM_SIZE_MAX + TCX_SIZE, | 1631 | .ram_require = PROM_SIZE_MAX + TCX_SIZE, |
1621 | .nodisk_ok = 1, | 1632 | .nodisk_ok = 1, |
1633 | + .use_scsi = 1, | ||
1622 | }; | 1634 | }; |
hw/versatilepb.c
@@ -316,13 +316,15 @@ static void vab_init(ram_addr_t ram_size, int vga_ram_size, | @@ -316,13 +316,15 @@ static void vab_init(ram_addr_t ram_size, int vga_ram_size, | ||
316 | } | 316 | } |
317 | 317 | ||
318 | QEMUMachine versatilepb_machine = { | 318 | QEMUMachine versatilepb_machine = { |
319 | - "versatilepb", | ||
320 | - "ARM Versatile/PB (ARM926EJ-S)", | ||
321 | - vpb_init, | 319 | + .name = "versatilepb", |
320 | + .desc = "ARM Versatile/PB (ARM926EJ-S)", | ||
321 | + .init = vpb_init, | ||
322 | + .use_scsi = 1, | ||
322 | }; | 323 | }; |
323 | 324 | ||
324 | QEMUMachine versatileab_machine = { | 325 | QEMUMachine versatileab_machine = { |
325 | - "versatileab", | ||
326 | - "ARM Versatile/AB (ARM926EJ-S)", | ||
327 | - vab_init, | 326 | + .name = "versatileab", |
327 | + .desc = "ARM Versatile/AB (ARM926EJ-S)", | ||
328 | + .init = vab_init, | ||
329 | + .use_scsi = 1, | ||
328 | }; | 330 | }; |
vl.c
@@ -5461,12 +5461,7 @@ static int drive_init(struct drive_opt *arg, int snapshot, | @@ -5461,12 +5461,7 @@ static int drive_init(struct drive_opt *arg, int snapshot, | ||
5461 | index = -1; | 5461 | index = -1; |
5462 | cache = 1; | 5462 | cache = 1; |
5463 | 5463 | ||
5464 | - if (!strcmp(machine->name, "realview") || | ||
5465 | - !strcmp(machine->name, "SS-5") || | ||
5466 | - !strcmp(machine->name, "SS-10") || | ||
5467 | - !strcmp(machine->name, "SS-600MP") || | ||
5468 | - !strcmp(machine->name, "versatilepb") || | ||
5469 | - !strcmp(machine->name, "versatileab")) { | 5464 | + if (machine->use_scsi) { |
5470 | type = IF_SCSI; | 5465 | type = IF_SCSI; |
5471 | max_devs = MAX_SCSI_DEVS; | 5466 | max_devs = MAX_SCSI_DEVS; |
5472 | pstrcpy(devname, sizeof(devname), "scsi"); | 5467 | pstrcpy(devname, sizeof(devname), "scsi"); |