Kevin,
Rethinking this change (where we construct the device path from outside and call boot_prio_find()), this is pretty tricky to implement since we need to take care of csm_bootprio_ata() and csm_bootprio_pci() which do not work with device path. In addition, bootprio_find_fdc_device bootprio_find_pci_rom bootprio_find_named_rom bootprio_find_usb Will not require this change and this will just result in too much refactoring.
Maybe simply introduce build_scsi_path() and build_ata_path() functions and then, for instance, make booprio_find_scsi_device() and boot_lchs_find_scsi_device() call the same build_scsi_path() function, resulting in less code duplication.
Sam
On 22 Jun 2019, at 20:33, Sam Eiderman shmuel.eiderman@oracle.com wrote:
On 22 Jun 2019, at 18:27, Kevin O'Connor kevin@koconnor.net wrote:
On Sat, Jun 22, 2019 at 11:51:48AM +0300, Sam Eiderman wrote:
But maybe someone wants bootorder but doesn’t want to override legacy disk translations…
I’m thinking of maybe adding
if (!CONFIG_BOOTORDER || !CONFIG_BIOS_GEOMETRY) return NULL;
That's fine - though it's (!CONFIG_BOOTORDER && !CONFIG_BIOS_GEOMETRY).
Yes of course, my bad
FYI, I think BIOS_GEOMETRY is a little confusing - maybe CUSTOM_DISK_GEOMETRY.
The thing is that disk geometry is actually (physical geometry, reported by the disk controller) and here bios geometry stands for the geometry reported from bios int13. Also “bios geometry” === “logical geometry” === “lchs”. So following previous discussion with Gerd, maybe CONFIG_HOST_BIOS_GEOMETRY is better?
Sam
-Kevin