Le lundi 12 novembre 2007 à 18:44 +0200, Blue Swirl a écrit : > On 11/12/07, Laurent Vivier <[EMAIL PROTECTED]> wrote: > > It also defines the default interface type to "scsi" for targets > > "realview", "SS-5", "SS-10", "versatilepb", "versatileab" > > to keep old behavior, where "-hda" is a SCSI disk. > > For maximal compatibility, I'd like the following mappings for SS-5, > SS-10, and SS-600MP: > -hda = SCSI ID 0 > -hdb = SCSI ID 1 > -hdc = -cdrom = SCSI ID 2 > -hdd = SCSI ID 3
Yes, there is mistake there. > There is no bus 1, only 0. Maybe a warning should be issued for bus=1. > I didn't find where this was implemented, so is the above in line with > the patch? See following lines: ... #define HD_ALIAS "file=%s,bus=%d,unit=%d,media=disk" ... if (!strcmp(machine->name, "realview") || !strcmp(machine->name, "SS-5") || !strcmp(machine->name, "SS-10") || !strcmp(machine->name, "versatilepb") || !strcmp(machine->name, "versatileab")) { interface = IF_SCSI; max_devs = MAX_SCSI_DEVS; } else { interface = IF_IDE; max_devs = MAX_IDE_DEVS; } ... case QEMU_OPTION_hdb: case QEMU_OPTION_hdc: case QEMU_OPTION_hdd: drive_add(HD_ALIAS, optarg, hd_index / MAX_IDE_DEVS, hd_index % MAX_IDE_DEVS); ... Of course this last line is wrong... > > Index: qemu/hw/sun4m.c > > > - if (hwdef->fd_base != (target_phys_addr_t)-1) > > - sun4m_fdctrl_init(slavio_irq[hwdef->fd_irq], hwdef->fd_base, > > fd_table); > > + if (hwdef->fd_base != (target_phys_addr_t)-1) { > > + for(i = 0; i < MAX_FD; i++) { > > + index = drive_get_index(IF_FLOPPY, 0, i); > > + if (index != -1) > > + fd[i] = drives_table[index].bdrv; > > + else > > + fd[i] = NULL; > > + } > > + > > + sun4m_fdctrl_init(slavio_irq[hwdef->fd_irq], hwdef->fd_base, fd); > > + } > > This is broken, there are zero or one floppy drives, never more. I just try to mimic original behavior. I'll correct this. > > Index: qemu/hw/sun4u.c > > > - floppy_controller = fdctrl_init(NULL/*6*/, 2, 0, 0x3f0, fd_table); > > + for(i = 0; i < MAX_FD; i++) { > > + index = drive_get_index(IF_FLOPPY, 0, i); > > + if (index != -1) > > + fd[i] = drives_table[index].bdrv; > > + else > > + fd[i] = NULL; > > + } > > + floppy_controller = fdctrl_init(NULL/*6*/, 2, 0, 0x3f0, fd); > > I think same applies here (0 to 1 drives), but as the hardware is > PC-like, technically it may be possible that someone could replace the > cables and insert additional floppy drives. ditto Laurent -- ------------- [EMAIL PROTECTED] -------------- "In short: just say NO TO DRUGS and maybe you won't end up like the Hurd people." -- Linus Torvald
signature.asc
Description: Ceci est une partie de message numériquement signée