Difference between revisions of "Per region file arguments"

From flashrom
Jump to: navigation, search
(Handle top/bottom placement)
(Files not matching the region's size)
Line 53: Line 53:
 
is specified, in which case the uncovered part would be padded with the
 
is specified, in which case the uncovered part would be padded with the
 
flash chip's erased state (usually 0xff).
 
flash chip's erased state (usually 0xff).
 +
 +
==== Additonal rules ====
 +
 +
* Beside `:`, `[` and `]` wouldn't be allowed in region names.

Revision as of 12:42, 25 November 2018

Current chromium impl.

Current chromium flashrom implements the syntax like this:

   [-i <region>[:<file>]]... -r|-w|-v [<filename>]

Where <filename> can be given anywhere on the command line (non-positional).

Rules:

  • if no <filename> is given, all -i arguments must specify a <file>
  • For reading:
    • if any -i region:<file> is given along with <filename>, read all included regions into <filename> and all included regions with a <file> specified into the respective file
  • For writing and verifying:
    • if any -i region:<file> is given along with <filename>, the data of -i region:<file> takes precedence
    • regions with files given with -i region:<file> must not overlap

More details: https://www.chromium.org/chromium-os/packages/cros-flashrom#TOC-Partial-Reads-and-Writes

More explicit alternative

   [-i <region>]... (-r|-w|-v [<region>:]<filename>)...

Easier to implement, no optional arguments, no non-positional arguments.

Rules for sanity:

  • combinations of -r/-w/-v are not allowed
  • -r/-w/-v <filename> (i.e. without a <region>) may only be specified once
  • if no -r/-w/-v <filename> (i.e. without a <region>) is specified, no -i arguments may be given either

optionally, stricter

Never mix <region>:<file> with the old -i syntax in one invocation:

   ([-i <region>]... (-r|-w|-v <filename>) | (-r|-w|-v <region>:<filename>)...)

Files not matching the region's size

Both syntaxes can be extended for files that are smaller than the region:

   <region>[<filename>

would denote that the file's contents should be placed at the start/bottom of the region,

   <region>]<filename>

that the file's contents should be placed at the end/top of the region. By default the uncovered part of the region should be kept as is, unless

   --pad

is specified, in which case the uncovered part would be padded with the flash chip's erased state (usually 0xff).

Additonal rules

  • Beside `:`, `[` and `]` wouldn't be allowed in region names.