Revision 751c6a17 hw/ppc405_boards.c
b/hw/ppc405_boards.c | ||
---|---|---|
188 | 188 |
int linux_boot; |
189 | 189 |
int fl_idx, fl_sectors, len; |
190 | 190 |
int ppc_boot_device = boot_device[0]; |
191 |
int index;
|
|
191 |
DriveInfo *dinfo;
|
|
192 | 192 |
|
193 | 193 |
/* XXX: fix this */ |
194 | 194 |
ram_bases[0] = qemu_ram_alloc(0x08000000); |
... | ... | |
215 | 215 |
#endif |
216 | 216 |
fl_idx = 0; |
217 | 217 |
#ifdef USE_FLASH_BIOS |
218 |
index = drive_get_index(IF_PFLASH, 0, fl_idx);
|
|
219 |
if (index != -1) {
|
|
220 |
bios_size = bdrv_getlength(drives_table[index].bdrv);
|
|
218 |
dinfo = drive_get(IF_PFLASH, 0, fl_idx);
|
|
219 |
if (dinfo) {
|
|
220 |
bios_size = bdrv_getlength(dinfo->bdrv);
|
|
221 | 221 |
bios_offset = qemu_ram_alloc(bios_size); |
222 | 222 |
fl_sectors = (bios_size + 65535) >> 16; |
223 | 223 |
#ifdef DEBUG_BOARD_INIT |
224 | 224 |
printf("Register parallel flash %d size " ADDRX " at offset %08lx " |
225 | 225 |
" addr " ADDRX " '%s' %d\n", |
226 | 226 |
fl_idx, bios_size, bios_offset, -bios_size, |
227 |
bdrv_get_device_name(drives_table[index].bdrv), fl_sectors);
|
|
227 |
bdrv_get_device_name(dinfo->bdrv), fl_sectors);
|
|
228 | 228 |
#endif |
229 | 229 |
pflash_cfi02_register((uint32_t)(-bios_size), bios_offset, |
230 |
drives_table[index].bdrv, 65536, fl_sectors, 1,
|
|
230 |
dinfo->bdrv, 65536, fl_sectors, 1,
|
|
231 | 231 |
2, 0x0001, 0x22DA, 0x0000, 0x0000, 0x555, 0x2AA); |
232 | 232 |
fl_idx++; |
233 | 233 |
} else |
... | ... | |
509 | 509 |
int linux_boot; |
510 | 510 |
int fl_idx, fl_sectors; |
511 | 511 |
int ppc_boot_device = boot_device[0]; |
512 |
int index;
|
|
512 |
DriveInfo *dinfo;
|
|
513 | 513 |
|
514 | 514 |
/* RAM is soldered to the board so the size cannot be changed */ |
515 | 515 |
ram_bases[0] = qemu_ram_alloc(0x04000000); |
... | ... | |
528 | 528 |
#endif |
529 | 529 |
fl_idx = 0; |
530 | 530 |
#if defined(USE_FLASH_BIOS) |
531 |
index = drive_get_index(IF_PFLASH, 0, fl_idx);
|
|
532 |
if (index != -1) {
|
|
533 |
bios_size = bdrv_getlength(drives_table[index].bdrv);
|
|
531 |
dinfo = drive_get(IF_PFLASH, 0, fl_idx);
|
|
532 |
if (dinfo) {
|
|
533 |
bios_size = bdrv_getlength(dinfo->bdrv);
|
|
534 | 534 |
/* XXX: should check that size is 2MB */ |
535 | 535 |
// bios_size = 2 * 1024 * 1024; |
536 | 536 |
fl_sectors = (bios_size + 65535) >> 16; |
... | ... | |
539 | 539 |
printf("Register parallel flash %d size " ADDRX " at offset %08lx " |
540 | 540 |
" addr " ADDRX " '%s' %d\n", |
541 | 541 |
fl_idx, bios_size, bios_offset, -bios_size, |
542 |
bdrv_get_device_name(drives_table[index].bdrv), fl_sectors);
|
|
542 |
bdrv_get_device_name(dinfo->bdrv), fl_sectors);
|
|
543 | 543 |
#endif |
544 | 544 |
pflash_cfi02_register((uint32_t)(-bios_size), bios_offset, |
545 |
drives_table[index].bdrv, 65536, fl_sectors, 1,
|
|
545 |
dinfo->bdrv, 65536, fl_sectors, 1,
|
|
546 | 546 |
4, 0x0001, 0x22DA, 0x0000, 0x0000, 0x555, 0x2AA); |
547 | 547 |
fl_idx++; |
548 | 548 |
} else |
... | ... | |
570 | 570 |
bios_size, bios_offset | IO_MEM_ROM); |
571 | 571 |
} |
572 | 572 |
/* Register Linux flash */ |
573 |
index = drive_get_index(IF_PFLASH, 0, fl_idx);
|
|
574 |
if (index != -1) {
|
|
575 |
bios_size = bdrv_getlength(drives_table[index].bdrv);
|
|
573 |
dinfo = drive_get(IF_PFLASH, 0, fl_idx);
|
|
574 |
if (dinfo) {
|
|
575 |
bios_size = bdrv_getlength(dinfo->bdrv);
|
|
576 | 576 |
/* XXX: should check that size is 32MB */ |
577 | 577 |
bios_size = 32 * 1024 * 1024; |
578 | 578 |
fl_sectors = (bios_size + 65535) >> 16; |
... | ... | |
580 | 580 |
printf("Register parallel flash %d size " ADDRX " at offset %08lx " |
581 | 581 |
" addr " ADDRX " '%s'\n", |
582 | 582 |
fl_idx, bios_size, bios_offset, (target_ulong)0xfc000000, |
583 |
bdrv_get_device_name(drives_table[index].bdrv));
|
|
583 |
bdrv_get_device_name(dinfo->bdrv));
|
|
584 | 584 |
#endif |
585 | 585 |
bios_offset = qemu_ram_alloc(bios_size); |
586 | 586 |
pflash_cfi02_register(0xfc000000, bios_offset, |
587 |
drives_table[index].bdrv, 65536, fl_sectors, 1,
|
|
587 |
dinfo->bdrv, 65536, fl_sectors, 1,
|
|
588 | 588 |
4, 0x0001, 0x22DA, 0x0000, 0x0000, 0x555, 0x2AA); |
589 | 589 |
fl_idx++; |
590 | 590 |
} |
Also available in: Unified diff