@@ -79,22 +79,37 @@ Depending on the execution mode, the following options are available:
7979This mode can be used to generate a single output key, which can be stored into an output file.
8080
8181```
82- usage: keymgr-dpe.py generate [-h] [-b HEXSTR] [-g {HW,SW}] -k HEXSTR [-o OUTPUT] [-R NAME] -s HEXSTR -t {AES,KMAC,OTBN,NONE}
82+ usage: keymgr-dpe.py [-h] -c CFG -j HJSON [-l SV] [-m VMEM] [-R RAW] [-r ROM]
83+ [-e BITS] [-z SIZE] [-v] [-d]
84+ {generate,execute,verify} ...
85+
86+ QEMU OT tool to generate Key Manager DPE keys.
87+
88+ positional arguments:
89+ {generate,execute,verify}
90+ Execution mode
91+ generate generate a key
92+ execute execute sequence
93+ verify verify execution log
8394
8495options:
8596 -h, --help show this help message and exit
86- -b, --swbindings HEXSTR
87- SW bindings, may be repeated
88- -g, --gen-out {HW,SW}
89- generation output (default: auto)
90- -k, --key-version HEXSTR
91- Key version
92- -o, --output OUTPUT output file with generated key
93- -R, --rust-const NAME
94- Rust constant name for the generated key
95- -s, --salt HEXSTR Salt
96- -t, --target {AES,KMAC,OTBN,NONE}
97- destination device
97+
98+ Files:
99+ -c, --config CFG input QEMU OT config file
100+ -j, --otp-map HJSON input OTP controller memory map file
101+ -l, --lifecycle SV input lifecycle system verilog file
102+ -m, --vmem VMEM input VMEM file
103+ -R, --raw RAW input QEMU OTP raw image file
104+ -r, --rom ROM input ROM image file, may be repeated
105+
106+ Parameters:
107+ -e, --ecc BITS ECC bit count (default: 6)
108+ -z, --rom-size SIZE ROM image size in bytes, may be repeated
109+
110+ Extras:
111+ -v, --verbose increase verbosity
112+ -d, --debug enable debug mode
98113```
99114
100115### Arguments
@@ -105,9 +120,17 @@ options:
105120 is automatically padded with zero bytes up to the maximum software binding size supported by the
106121 HW.
107122
123+ * ` -c ` specify a QEMU [ configuration file] ( otcfg.md ) from which to read all the cryptographic
124+ constants. See the [ ` cfggen.py ` ] ( cfggen.md ) tool to generate such a file.
125+
108126* ` -g ` specify the kind of generation to perform. If not specified, it is inferred from the ` -t `
109127 target option.
110128
129+ * ` -j ` specify the path to the HJSON OTP controller map file, usually named ` otp_ctrl_mmap.hjson ` .
130+
131+ * ` -l ` specify the life cycle system verilog file, usually named ` lc_ctrl_state_pkg.sv ` , that
132+ defines the encoding of the life cycle states.
133+
111134* ` -k ` the version of the key to generate
112135
113136* ` -o ` specify the output file path for the generated key
@@ -212,9 +235,10 @@ options:
212235# ## Arguments
213236
214237* `-l` specify the execution log to verify. The execution log is expected to contain the output of
215- a test that has run on the OpenTitan platform. It should emit a syntax identitical to the format
216- described in the [Execute options](# execute-options) section, _i.e._ an INI-like syntax. To distinguish INI
217- syntax from any other log output, each line of interest should be prefixed with a `T> ` marker.
238+ a test that has run on the OpenTitan platform. It should emit a syntax identical to the format
239+ described in the [Execute options](# execute-options) section, _i.e._ an INI-like syntax. To
240+ distinguish INI syntax from any other log output, each line of interest should be prefixed with a
241+ `T> ` marker.
218242
219243 [`pyot.py`](pyot.md) script may be used to generate the log file, see `--log-file` option or the
220244 `log_file` test parameter.
0 commit comments