loader.efi: fix cd boot for cisco C220M3

Reported by:	Chris Ross
MFC after:	1w
This commit is contained in:
tsoome 2019-12-02 21:08:59 +00:00
parent 1f9f3f63fd
commit 68594c069b

View File

@ -283,6 +283,16 @@ efipart_ignore_device(EFI_HANDLE h, EFI_BLOCK_IO *blkio,
* Therefore, if this node is USB, or this node is Unit (LUN) and
* direct parent is USB and we have no media, we will ignore this
* device.
*
* Variation of the same situation, but with SCSI devices:
* PciRoot(0x0)/Pci(0x1a,0x0)/USB(0x1,0)/USB(0x3,0x0)/SCSI(0x0,0x1)
* PciRoot(0x0)/Pci(0x1a,0x0)/USB(0x1,0)/USB(0x3,0x0)/SCSI(0x0,0x2)
* PciRoot(0x0)/Pci(0x1a,0x0)/USB(0x1,0)/USB(0x3,0x0)/SCSI(0x0,0x3)
* PciRoot(0x0)/Pci(0x1a,0x0)/USB(0x1,0)/USB(0x3,0x0)/SCSI(0x0,0x3)/CD..
* PciRoot(0x0)/Pci(0x1a,0x0)/USB(0x1,0)/USB(0x3,0x0)/SCSI(0x0,0x3)/CD..
* PciRoot(0x0)/Pci(0x1a,0x0)/USB(0x1,0)/USB(0x3,0x0)/SCSI(0x0,0x4)
*
* Here above the SCSI luns 1,2 and 4 have no media.
*/
/* Do not ignore device with media. */
@ -324,6 +334,13 @@ efipart_ignore_device(EFI_HANDLE h, EFI_BLOCK_IO *blkio,
efi_close_devpath(h);
return (true);
}
/* no media, parent is USB and devicepath is SCSI. */
if (parent_is_usb &&
DevicePathType(node) == MESSAGING_DEVICE_PATH &&
DevicePathSubType(node) == MSG_SCSI_DP) {
efi_close_devpath(h);
return (true);
}
}
return (false);
}