Add option to read ROM layout from IFD

Add an option --ifd to read the ROM layout from an Intel Firmware
Descriptor (IFD). Works the same as the -l option, if given, -i
specifies the images to update.

v2: o Rebased on libflashrom, use libflashrom interface.
    o Use functions from ich_descriptors.c.

v3: o Move ich_descriptors.o to LIB_OBJS, thus build it independent
      of arch and programmers.
    o Bail out if we aren't compiled for little endian.
    o Update flashrom.8.tmpl.

v4: o Incorporated David's comments.
    o Removed single-character `-d` option.

v5: Changed region names to match the output of `ifdtool --layout ...`

Change-Id: Ifafff2bf6d5c5e62283416b3269723f81fdc0fa3
Signed-off-by: Nico Huber <nico.huber@secunet.com>
Reviewed-on: https://review.coreboot.org/17953
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
diff --git a/flashrom.c b/flashrom.c
index 325a0c1..503a199 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -2168,9 +2168,9 @@
 	return 0;
 }
 
-static int prepare_flash_access(struct flashctx *const flash,
-				const bool read_it, const bool write_it,
-				const bool erase_it, const bool verify_it)
+int prepare_flash_access(struct flashctx *const flash,
+			 const bool read_it, const bool write_it,
+			 const bool erase_it, const bool verify_it)
 {
 	if (chip_safety_check(flash, flash->flags.force, read_it, write_it, erase_it, verify_it)) {
 		msg_cerr("Aborting.\n");
@@ -2193,7 +2193,7 @@
 	return 0;
 }
 
-static void finalize_flash_access(struct flashctx *const flash)
+void finalize_flash_access(struct flashctx *const flash)
 {
 	unmap_flash(flash);
 }