[SeaBIOS] [PATCH v2] boot: Fix boot order for SCSI target, lun > 9
Markus Armbruster
armbru at redhat.com
Fri Aug 15 08:39:19 CEST 2014
"Kevin O'Connor" <kevin at koconnor.net> writes:
> On Thu, Aug 14, 2014 at 10:18:34PM +0200, Markus Armbruster wrote:
>> We identify devices by their Open Firmware device paths. The path
>> component for the logical unit on a bus is incorrect:
>> bootprio_find_pci_device() formats target (a.k.a. SCSI ID) and lun in
>> decimal, while QEMU uses hexadecimal. Bootorder list entries with
>> target, lun > 9 aren't found (lucky case), or attributed to the wrong
>> logical unit (unlucky case).
>>
>> The relevant spec[*] agrees with QEMU (and OVMF, for that matter).
>> Change %d to %x.
>>
>> RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1096560
>>
>> [*] Open Firmware Recommended Practice: SCSI-3 Parallel Interface,
>> Version 1, section 3.1 Physical Address Formats and Representations
>> http://www.openfirmware.org/1275/practice/spi/spi1_0.ps
>
> Thanks. The patch looks okay to me. But, does bootprio_find_usb()
> also need to change?
You're right, there's a LUN hiding in that path. I'll send v3.
Aside: the USB port number is also inconsistent with QEMU. but in that
case, SeaBIOS is correct and QEMU is wrong. I'm going to fix it.
> I also wonder if the ":rom%d" stuff in bootprio_find_*_rom() should
> also be made hex just for consistency (though it seems unlikely a
> single rom would ever have more than 10 drives on it).
I don't know. QEMU never generates a ":NUMBER" suffix, and I haven't
found a specification for this device path.
More information about the SeaBIOS
mailing list