[Skiboot] [RFC PATCH 06/13] external/ffspart: Remove side, order and backup options
Cyril Bur
cyril.bur at au1.ibm.com
Tue Aug 29 16:24:59 AEST 2017
These options are currently flakey in libflash/libffs so there isn't
much point to being able to use them in ffspart.
Future reworks planned for libflash/libffs will render these options
redundant anyway.
Signed-off-by: Cyril Bur <cyril.bur at au1.ibm.com>
---
external/ffspart/ffspart.c | 87 ++--------------------
external/ffspart/test/results/00-usage.out | 5 --
external/ffspart/test/tests/01-param-sanity | 6 +-
external/ffspart/test/tests/02-param-sides | 6 +-
external/ffspart/test/tests/03.1-tiny-pnor-backup | 4 +
.../ffspart/test/tests/05.1-hdr-overlap-backup | 6 +-
6 files changed, 24 insertions(+), 90 deletions(-)
diff --git a/external/ffspart/ffspart.c b/external/ffspart/ffspart.c
index 73c02c40..bd223c78 100644
--- a/external/ffspart/ffspart.c
+++ b/external/ffspart/ffspart.c
@@ -52,11 +52,6 @@
#define MAX_LINE 100
#define SEPARATOR ','
-enum order {
- ORDER_ADB,
- ORDER_ABD
-};
-
/* Full version number (possibly includes gitid). */
extern const char version[];
@@ -76,23 +71,16 @@ static void print_help(const char *pname)
printf("\t\tNumber of blocks on the flash\n\n");
printf("\t-i, --input=file\n");
printf("\t\tFile containing the required partition data\n\n");
- printf("\t-o, --order=( ADB | ABD )\n");
- printf("\t\tOrdering of the TOC, Data and Backup TOC. Currently only ADB (default)\n");
- printf("\t\tis supported\n");
printf("\t-p, --pnor=file\n");
printf("\t\tOutput file to write data\n\n");
- printf("\t-t, --sides=( 1 | 2 )\n");
- printf("\t\tNumber of sides to the flash (Default: 1)\n");
}
int main(int argc, char *argv[])
{
const char *pname = argv[0];
struct blocklevel_device *bl = NULL;
- unsigned int sides = 1;
uint32_t block_size = 0, block_count = 0;
- enum order order = ORDER_ADB;
- bool bad_input = false, backup_part = false;
+ bool bad_input = false;
char *pnor = NULL, *input = NULL;
struct ffs_hdr *new_hdr;
FILE *in_file;
@@ -101,25 +89,19 @@ int main(int argc, char *argv[])
while(1) {
struct option long_opts[] = {
- {"backup", no_argument, NULL, 'b'},
{"block_size", required_argument, NULL, 's'},
{"block_count", required_argument, NULL, 'c'},
{"debug", no_argument, NULL, 'g'},
{"input", required_argument, NULL, 'i'},
- {"order", required_argument, NULL, 'o'},
{"pnor", required_argument, NULL, 'p'},
- {"tocs", required_argument, NULL, 't'},
{NULL, 0, 0, 0}
};
int c, oidx = 0;
- c = getopt_long(argc, argv, "bc:gi:o:p:s:t:", long_opts, &oidx);
+ c = getopt_long(argc, argv, "c:gi:p:s:", long_opts, &oidx);
if (c == EOF)
break;
switch(c) {
- case 'b':
- backup_part = true;
- break;
case 'c':
block_count = strtoul(optarg, NULL, 0);
break;
@@ -129,52 +111,27 @@ int main(int argc, char *argv[])
case 'i':
input = strdup(optarg);
break;
- case 'o':
- if (strncmp(optarg, "ABD", 3) == 0)
- order = ORDER_ABD;
- else if (strncmp(optarg, "ADB", 3) == 0)
- order = ORDER_ADB;
- else
- bad_input = true;
- break;
case 'p':
pnor = strdup(optarg);
break;
case 's':
block_size = strtoul(optarg, NULL, 0);
break;
- case 't':
- sides = strtoul(optarg, NULL, 0);
- break;
default:
exit(1);
}
}
- if (sides == 0)
- sides = 1;
-
- if (sides > 2) {
- fprintf(stderr, "Greater than two sides is not supported\n");
- bad_input = true;
- }
-
if (!block_size || !block_count || !input || !pnor)
bad_input = true;
- /* TODO Check assumption that sides divide the flash in half. */
- if (block_count % sides) {
- fprintf(stderr, "Invalid block_count %u for sides %u\n", block_count, sides);
- bad_input = true;
- }
-
- if (bad_input || order == ORDER_ABD) {
+ if (bad_input) {
print_help(pname);
rc = 1;
goto out;
}
- rc = ffs_hdr_new(block_size, block_count / sides, &new_hdr);
+ rc = ffs_hdr_new(block_size, block_count, &new_hdr);
if (rc) {
if (rc == FFS_ERR_BAD_SIZE) {
/* Well this check is a tad redudant now */
@@ -185,14 +142,6 @@ int main(int argc, char *argv[])
goto out;
}
- if (sides == 2) {
- rc = ffs_hdr_add_side(new_hdr);
- if (rc) {
- fprintf(stderr, "Couldn't add side to header\n");
- goto out_free_hdr;
- }
- }
-
in_file = fopen(input, "r");
if (!in_file) {
rc = errno;
@@ -221,7 +170,6 @@ int main(int argc, char *argv[])
struct ffs_entry_user user = { 0 };
char *pos, *old_pos;
char *name, *endptr;
- int side = -1;
uint32_t pbase, psize, pactual = 0;
/* Inline comments in input file */
@@ -303,20 +251,6 @@ int main(int argc, char *argv[])
case 'B':
user.miscflags |= FFS_MISCFLAGS_BACKUP;
break;
- case '0':
- case '1':
- case '2':
- /*
- * There should only be one side specified, fail if
- * we've already seen a side
- */
- if (side != -1) {
- rc = -1;
- goto out_close_bl;
- } else {
- side = *pos - '0';
- }
- break;
default:
fprintf(stderr, "Unknown flag '%c'\n", *pos);
rc = -1;
@@ -325,9 +259,6 @@ int main(int argc, char *argv[])
pos++;
}
- if (side == -1) /* Default to 0 */
- side = 0;
-
printf("Adding '%s' 0x%08x, 0x%08x\n", name, pbase, psize);
rc = ffs_entry_new(name, pbase, psize, &new_entry);
if (rc) {
@@ -342,7 +273,7 @@ int main(int argc, char *argv[])
goto out_while;
}
- rc = ffs_entry_add(new_hdr, new_entry, side);
+ rc = ffs_entry_add(new_hdr, new_entry, 0);
if (rc) {
fprintf(stderr, "Couldn't add entry '%s' 0x%08x for 0x%08x\n",
name, pbase, psize);
@@ -411,14 +342,6 @@ out_while:
goto out_close_bl;
}
- if (backup_part) {
- rc = ffs_hdr_create_backup(new_hdr);
- if (rc) {
- fprintf(stderr, "Failed to create backup part\n");
- goto out_close_bl;
- }
- }
-
rc = ffs_hdr_finalise(bl, new_hdr);
if (rc)
fprintf(stderr, "Failed to write out TOC values\n");
diff --git a/external/ffspart/test/results/00-usage.out b/external/ffspart/test/results/00-usage.out
index 19eedc74..3ad0441d 100644
--- a/external/ffspart/test/results/00-usage.out
+++ b/external/ffspart/test/results/00-usage.out
@@ -11,11 +11,6 @@ Usage: ./ffspart [options] -s size -c num -i layout_file -p pnor_file ...
-i, --input=file
File containing the required partition data
- -o, --order=( ADB | ABD )
- Ordering of the TOC, Data and Backup TOC. Currently only ADB (default)
- is supported
-p, --pnor=file
Output file to write data
- -t, --sides=( 1 | 2 )
- Number of sides to the flash (Default: 1)
diff --git a/external/ffspart/test/tests/01-param-sanity b/external/ffspart/test/tests/01-param-sanity
index 9e28c45d..28acf511 100644
--- a/external/ffspart/test/tests/01-param-sanity
+++ b/external/ffspart/test/tests/01-param-sanity
@@ -1,6 +1,10 @@
#! /bin/sh
-run_binary "./ffspart" "-t 3 -s 1 -c 3 -i /dev/null -p /dev/null"
+#This test has become a little redundant now.
+#TODO Do more sanity checking
+return 0
+
+run_binary "./ffspart" "-s 1 -c 3 -i /dev/null -p /dev/null"
if [ "$?" -ne 1 ] ; then
fail_test
fi
diff --git a/external/ffspart/test/tests/02-param-sides b/external/ffspart/test/tests/02-param-sides
index cd7984b8..17a2461e 100644
--- a/external/ffspart/test/tests/02-param-sides
+++ b/external/ffspart/test/tests/02-param-sides
@@ -1,6 +1,10 @@
#! /bin/sh
-run_binary "./ffspart" "-t 2 -s 1 -c 1 -i /dev/null -p /dev/null"
+#The parameter has been removed
+#TODO Something clever with this test
+return 0
+
+run_binary "./ffspart" "-s 1 -c 1 -i /dev/null -p /dev/null"
if [ "$?" -ne 1 ] ; then
fail_test
fi
diff --git a/external/ffspart/test/tests/03.1-tiny-pnor-backup b/external/ffspart/test/tests/03.1-tiny-pnor-backup
index 3065c864..8fa8d4e4 100644
--- a/external/ffspart/test/tests/03.1-tiny-pnor-backup
+++ b/external/ffspart/test/tests/03.1-tiny-pnor-backup
@@ -1,5 +1,9 @@
#! /bin/sh
+#The backup partition flag is gone
+#disable this test temporarily
+return 0
+
touch $DATA_DIR/$CUR_TEST.gen
run_binary "./ffspart" "-b -s 0x100 -c 15 -i $DATA_DIR/$CUR_TEST.in -p $DATA_DIR/$CUR_TEST.gen"
diff --git a/external/ffspart/test/tests/05.1-hdr-overlap-backup b/external/ffspart/test/tests/05.1-hdr-overlap-backup
index 5814ffff..0cbd9fa4 100644
--- a/external/ffspart/test/tests/05.1-hdr-overlap-backup
+++ b/external/ffspart/test/tests/05.1-hdr-overlap-backup
@@ -1,8 +1,12 @@
#! /bin/sh
+#The backup partition flag is gone
+#disable this test temporarily
+return 0
+
touch $DATA_DIR/$CUR_TEST.gen
-run_binary "./ffspart" "-b -s 0x100 -c 10 -i $DATA_DIR/$CUR_TEST.in -p $DATA_DIR/$CUR_TEST.gen"
+run_binary "./ffspart" "-s 0x100 -c 10 -i $DATA_DIR/$CUR_TEST.in -p $DATA_DIR/$CUR_TEST.gen"
#expect this error code, which is FFS_ERR_BAD_PART_BASE becase we're
#going to have too many partitions for header to fit before the first
#partition
--
2.14.1
More information about the Skiboot
mailing list