diff options
author | Toomas Soome <tsoome@FreeBSD.org> | 2019-12-02 21:08:59 +0000 |
---|---|---|
committer | Toomas Soome <tsoome@FreeBSD.org> | 2019-12-02 21:08:59 +0000 |
commit | 5b6081065444b784e0409335915e764f80b03742 (patch) | |
tree | 31d7e2d1249b2bfe6461e13b0826079bfc6b96ac | |
parent | 359d7273f5b665b5b6e76a1b40864a5a95c7e095 (diff) | |
download | src-5b6081065444b784e0409335915e764f80b03742.tar.gz src-5b6081065444b784e0409335915e764f80b03742.zip |
loader.efi: fix cd boot for cisco C220M3
Reported by: Chris Ross
MFC after: 1w
Notes
Notes:
svn path=/head/; revision=355308
-rw-r--r-- | stand/efi/libefi/efipart.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/stand/efi/libefi/efipart.c b/stand/efi/libefi/efipart.c index 7bfad3088a35..62dc3a413e7f 100644 --- a/stand/efi/libefi/efipart.c +++ b/stand/efi/libefi/efipart.c @@ -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); } |