[Skiboot] [PATCH] pflash: Display volatile flag

Adriana Kobylak anoo at linux.vnet.ibm.com
Thu Oct 12 07:04:57 AEDT 2017


The volatile flag was added to the pnor image to
indicate partitions that are cleared during a host
power off. Display this flag from the pflash command.

Change-Id: I6ff810cd869b199fe983fa82c399938c4d82d5b3
Signed-off-by: Adriana Kobylak <anoo at linux.vnet.ibm.com>
---
 external/pflash/pflash.c                      | 12 +++++++-----
 external/pflash/test/files/06-miscprint.ffs   |  1 +
 external/pflash/test/results/01-info.out      | 13 +++++++------
 external/pflash/test/results/06-miscprint.out |  9 +++++++++
 4 files changed, 24 insertions(+), 11 deletions(-)

diff --git a/external/pflash/pflash.c b/external/pflash/pflash.c
index 5b1be3c..d6b2b8e 100644
--- a/external/pflash/pflash.c
+++ b/external/pflash/pflash.c
@@ -115,12 +115,13 @@ static uint32_t print_ffs_info(struct ffs_handle *ffsh, uint32_t toc)
 		    goto out;
 		}
 
-		l = asprintf(&flags, "[%c%c%c%c%c]",
+		l = asprintf(&flags, "[%c%c%c%c%c%c]",
 				has_ecc(ent) ? 'E' : '-',
 				has_flag(ent, FFS_MISCFLAGS_PRESERVED) ? 'P' : '-',
 				has_flag(ent, FFS_MISCFLAGS_READONLY) ? 'R' : '-',
 				has_flag(ent, FFS_MISCFLAGS_BACKUP) ? 'B' : '-',
-				has_flag(ent, FFS_MISCFLAGS_REPROVISION) ? 'F' : '-');
+				has_flag(ent, FFS_MISCFLAGS_REPROVISION) ? 'F' : '-',
+				has_flag(ent, FFS_MISCFLAGS_VOLATILE) ? 'V' : '-');
 		if (l < 0)
 			goto out;
 
@@ -169,7 +170,7 @@ static void print_flash_info(struct flash_details *flash)
 	printf("Name          = %s\n", flash->name);
 	printf("Total size    = %" PRIu64 "MB\t Flags E:ECC, P:PRESERVED, R:READONLY\n",
 			flash->total_size >> 20);
-	printf("Erase granule = %2d%-13sB:BACKUP, F:REPROVISION\n",
+	printf("Erase granule = %2d%-13sB:BACKUP, F:REPROVISION, V:VOLATILE\n",
 			flash->erase_granule >> 10, "KB");
 
 	if (bmc_flash)
@@ -576,12 +577,13 @@ static void print_partition_detail(struct ffs_handle *ffsh, uint32_t part_id)
 
 	printf("Flags:\n");
 
-	l = asprintf(&flags, "%s%s%s%s%s", has_ecc(ent) ? "ECC [E]\n" : "",
+	l = asprintf(&flags, "%s%s%s%s%s%s", has_ecc(ent) ? "ECC [E]\n" : "",
 			has_flag(ent, FFS_MISCFLAGS_PRESERVED) ? "PRESERVED [P]\n" : "",
 			has_flag(ent, FFS_MISCFLAGS_READONLY) ? "READONLY [R]\n" : "",
 			has_flag(ent, FFS_MISCFLAGS_BACKUP) ? "BACKUP [B]\n" : "",
 			has_flag(ent, FFS_MISCFLAGS_REPROVISION) ?
-					"REPROVISION [F]\n" : "");
+					"REPROVISION [F]\n" : "",
+			has_flag(ent, FFS_MISCFLAGS_VOLATILE) ? "VOLATILE [V]\n" : "");
 	if (l < 0) {
 		fprintf(stderr, "Memory allocation failure printing flags!\n");
 		goto out;
diff --git a/external/pflash/test/files/06-miscprint.ffs b/external/pflash/test/files/06-miscprint.ffs
index 8f916f3..a0bd944 100644
--- a/external/pflash/test/files/06-miscprint.ffs
+++ b/external/pflash/test/files/06-miscprint.ffs
@@ -2,3 +2,4 @@ PRESERVED,0x00300,0x100,P,/dev/zero
 READONLY,0x000400,0x100,R,/dev/zero
 REPROVISION,0x500,0x100,F,/dev/zero
 BACKUP,0x00000600,0x100,B,/dev/zero
+VOLATILE,0x00000700,0x100,V,/dev/zero
diff --git a/external/pflash/test/results/01-info.out b/external/pflash/test/results/01-info.out
index 43baf31..ba4c6fa 100644
--- a/external/pflash/test/results/01-info.out
+++ b/external/pflash/test/results/01-info.out
@@ -2,12 +2,13 @@ Flash info:
 -----------
 Name          = FILE
 Total size    = 0MB	 Flags E:ECC, P:PRESERVED, R:READONLY
-Erase granule =  0KB           B:BACKUP, F:REPROVISION
+Erase granule =  0KB           B:BACKUP, F:REPROVISION, V:VOLATILE
 
 TOC at 0x00000000 Partitions:
 -----------
-ID=00            part 0x00000000..0x00000300 (actual=0x00000300) [-----]
-ID=01             ONE 0x00000300..0x00000400 (actual=0x00000100) [E----]
-ID=02             TWO 0x00000400..0x00000500 (actual=0x00000100) [E---F]
-ID=03           THREE 0x00000500..0x00000600 (actual=0x00000100) [E---F]
-ID=04            FOUR 0x00000600..0x00000700 (actual=0x00000100) [E---F]
+ID=00            part 0x00000000..0x00000300 (actual=0x00000300) [------]
+ID=01             ONE 0x00000300..0x00000400 (actual=0x00000100) [E-----]
+ID=02             TWO 0x00000400..0x00000500 (actual=0x00000100) [E---F-]
+ID=03           THREE 0x00000500..0x00000600 (actual=0x00000100) [E---F-]
+ID=04            FOUR 0x00000600..0x00000700 (actual=0x00000100) [E---F-]
+ID=05            FIVE 0x00000700..0x00000800 (actual=0x00000100) [-----V]
diff --git a/external/pflash/test/results/06-miscprint.out b/external/pflash/test/results/06-miscprint.out
index e90976d..58aeaf9 100644
--- a/external/pflash/test/results/06-miscprint.out
+++ b/external/pflash/test/results/06-miscprint.out
@@ -34,3 +34,12 @@ Start       End         Actual
 
 Flags:
 BACKUP [B]
+Detailed partition information
+Name:
+VOLATILE (ID=05)
+
+Start       End         Actual    
+0x00000700  0x00000800  0x00000100
+
+Flags:
+VOLATILE [V]
-- 
2.7.4



More information about the Skiboot mailing list