# HG changeset patch # User Jerry Jelinek # Date 1575636061 0 # Node ID 7f3d96b2b0d93593f95db931242c4dd9c8b9ef45 # Parent cc4ba761e88ff68f24a14c471021557e1e28328f# Parent 11b76e2d458a46d7b8bd9ac7c9ee429df5991bf7 [illumos-gate merge] commit bb4b7f47acc2c683b79216e79167725745ca353b 12049 loader: ReadKeyStrokeEx may return partial keystrokes commit 9d0a7db04e3ca196c0efd6a99b66a2a7d42085e8 12044 loader.efi: fix cd boot for cisco C220M3 commit 500bef5604d6ac79e8c8ed41fe6401ce64a6b52e 11994 format: fix print of accessible sectors, also print first and last usable sector diff -r cc4ba761e88f -r 7f3d96b2b0d9 usr/src/boot/Makefile.version --- a/usr/src/boot/Makefile.version Fri Dec 06 10:30:24 2019 +0000 +++ b/usr/src/boot/Makefile.version Fri Dec 06 12:41:01 2019 +0000 @@ -33,4 +33,4 @@ # Use date like formatting here, YYYY.MM.DD.XX, without leading zeroes. # The version is processed from left to right, the version number can only # be increased. -BOOT_VERSION = $(LOADER_VERSION)-2019.11.26.1 +BOOT_VERSION = $(LOADER_VERSION)-2019.12.03.1 diff -r cc4ba761e88f -r 7f3d96b2b0d9 usr/src/boot/sys/boot/efi/libefi/efi_console.c --- a/usr/src/boot/sys/boot/efi/libefi/efi_console.c Fri Dec 06 10:30:24 2019 +0000 +++ b/usr/src/boot/sys/boot/efi/libefi/efi_console.c Fri Dec 06 12:41:01 2019 +0000 @@ -674,10 +674,11 @@ kp->UnicodeChar++; } } + if (kp->ScanCode == 0 && kp->UnicodeChar == 0) + return (false); + keybuf_inschar(kp); + return (true); } - - keybuf_inschar(kp); - return (true); } return (false); } diff -r cc4ba761e88f -r 7f3d96b2b0d9 usr/src/boot/sys/boot/efi/libefi/efipart.c --- a/usr/src/boot/sys/boot/efi/libefi/efipart.c Fri Dec 06 10:30:24 2019 +0000 +++ b/usr/src/boot/sys/boot/efi/libefi/efipart.c Fri Dec 06 12:41:01 2019 +0000 @@ -269,6 +269,16 @@ * 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. */ @@ -300,15 +310,21 @@ parent_is_usb = true; free(parent); - /* no media, parent is usb and devicepath is lun. */ node = efi_devpath_last_node(devpath); if (node == NULL) return (false); if (parent_is_usb && - DevicePathType(node) == MESSAGING_DEVICE_PATH && - DevicePathSubType(node) == MSG_DEVICE_LOGICAL_UNIT_DP) { - efi_close_devpath(h); - return (true); + DevicePathType(node) == MESSAGING_DEVICE_PATH) { + /* + * no media, parent is USB and devicepath is + * LUN or SCSI. + */ + if (DevicePathSubType(node) == + MSG_DEVICE_LOGICAL_UNIT_DP || + DevicePathSubType(node) == MSG_SCSI_DP) { + efi_close_devpath(h); + return (true); + } } } return (false); diff -r cc4ba761e88f -r 7f3d96b2b0d9 usr/src/cmd/format/menu_command.c --- a/usr/src/cmd/format/menu_command.c Fri Dec 06 10:30:24 2019 +0000 +++ b/usr/src/cmd/format/menu_command.c Fri Dec 06 12:41:01 2019 +0000 @@ -2097,6 +2097,12 @@ fmt_print("bytes/sector = %d\n", cur_blksz); fmt_print("sectors = %llu\n", cur_parts->etoc->efi_last_lba + 1); fmt_print("accessible sectors = %llu\n", + cur_parts->etoc->efi_last_u_lba - + cur_parts->etoc->efi_first_u_lba - + efi_reserved_sectors(cur_parts->etoc) + 1); + fmt_print("first usable sector = %llu\n", + cur_parts->etoc->efi_first_u_lba); + fmt_print("last usable sector = %llu\n", cur_parts->etoc->efi_last_u_lba); print_map(&tmp_pinfo);