[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/2][UPDATE] Add arg -drive to define new drive
From: |
Laurent Vivier |
Subject: |
Re: [Qemu-devel] [PATCH 2/2][UPDATE] Add arg -drive to define new drive with more features |
Date: |
Mon, 12 Nov 2007 17:53:07 +0100 |
Le lundi 12 novembre 2007 à 18:44 +0200, Blue Swirl a écrit :
> On 11/12/07, Laurent Vivier <address@hidden> 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
--
------------- address@hidden --------------
"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
Re: [Qemu-devel] [PATCH 1/2][UPDATE] remove unused parameters from QEMUMachineInitFunc, Blue Swirl, 2007/11/12