Hi,
> That's true for the default case, but for the pseries machine, there is
> already code that changes the boot path for virtual usb-storage devices,
> see the function spapr_get_fw_dev_path() :
>
> ... else if (usb) {
> /*
> * We use SRP luns of the form 01000000 | (usb-port << 16) | lun
> * in the top 32 bits of the 64-bit LUN
> */
> unsigned usb_port = atoi(usb->port->path);
> unsigned id = 0x1000000 | (usb_port << 16) | d->lun;
> return g_strdup_printf("%s@%"PRIX64, qdev_fw_name(dev),
> (uint64_t)id << 32);
> }
Hmm, I thought the point of using standard open firmware paths was that
we don't need hacks like this. Looks like things are not *that*
standardized then if some archs need extra tweaks ...
But if that is needed for pseries *anyway* it doesn't hurt to do the
same for usb-host.
> > If usb-host (and usb-redir too btw) create paths identical to the ones
> > created by usb-storage. Existing firmware should cope just fine
> > (assuming bootindex for usb-storage works).
>
> Which firmware can deal with these original device paths with "channel@0"
> in it? Certainly not SLOF. Maybe OpenBIOS? Does OpenBIOS support USB storage
> devices?
seabios does, and I expect ovmf too (didn't test though).
cheers,
Gerd