From 08d56aa7a7df69e80aa0a1fd6e847aa1adde5f9c Mon Sep 17 00:00:00 2001 From: Gwendal Grignou Date: Thu, 13 Oct 2016 13:18:37 -0700 Subject: [PATCH] cgpt: Add support for NVMe find: A p is added betwen device name and partition whenever the last character of a device is a number, as written in disk_name() in kernel block/partition-generic.c file. debug_vboot: Add regex for nvme device. BUG=chromium:655192 BRANCH=none TEST=Check that when a machine boots from NVMe, chromeos-setgoodkernel set "successful" field properly. Run " dev_debug_vboot --cleanup", check the NVMe device kernel partitions are verified. Change-Id: I6a9342c95500fa582f51f06e48c1ff90684c2a27 Signed-off-by: Gwendal Grignou Reviewed-on: https://chromium-review.googlesource.com/398338 Reviewed-by: Mike Frysinger --- cgpt/cgpt_find.c | 10 +++++++++- utility/dev_debug_vboot | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/cgpt/cgpt_find.c b/cgpt/cgpt_find.c index c099a9c479..c35aade2be 100644 --- a/cgpt/cgpt_find.c +++ b/cgpt/cgpt_find.c @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include #include #include #include @@ -74,7 +75,14 @@ static int match_content(CgptFindParams *params, struct drive *drive, static void showmatch(CgptFindParams *params, char *filename, int partnum, GptEntry *entry) { char * format = "%s%d\n"; - if (strncmp("/dev/mmcblk", filename, 11) == 0) + + /* + * Follow convention from disk_name() in kernel block/partition-generic.c + * code: + * If the last digit of the device name is a number, add a 'p' between the + * device name and the partition number. + */ + if (isdigit(filename[strlen(filename) - 1])) format = "%sp%d\n"; if (params->numeric) { diff --git a/utility/dev_debug_vboot b/utility/dev_debug_vboot index 890bfe1ff0..51ca8c5318 100755 --- a/utility/dev_debug_vboot +++ b/utility/dev_debug_vboot @@ -274,7 +274,7 @@ log crossystem --all log rootdev -s log ls -aCF /root log ls -aCF /mnt/stateful_partition -devs=$(awk '/(mmcblk[0-9])$|(sd[a-z])$/ {print "/dev/"$4}' /proc/partitions) +devs=$(awk '/(mmcblk[0-9])$|(sd[a-z])$|(nvme[0-9]+n[0-9]+)$/ {print "/dev/"$4}' /proc/partitions) for d in $devs; do log cgpt show $d done