xref: /aosp_15_r20/external/vboot_reference/futility/docs/cmd_gbb_utility.md (revision 8617a60d3594060b7ecbd21bc622a7c14f3cf2bc)
1% FUTILITY(1) Version 1.0 | Futility GBB Documentation
2
3NAME
4====
5
6**futility gbb** - allows for the printing and manipulation of GBB flag state.
7
8SYNOPSIS
9========
10
11- **futility gbb** \[**\--help**]
12- **futility gbb** \[**-g**|**--get**] \[GET mode options] \[image_file]
13- **futility gbb** \[**-s**|**--set**] \[SET mode options] \[image_file] \[output_file]
14- **futility gbb** \[**-c**|**--create**] \[CREATE mode options]
15- **futility gbb** \[**-g**|**-s**] \[**\--flash**] \[GET|SET mode options] \[FLASH options]
16
17DESCRIPTION
18===========
19
20The GBB sub-command allows for the printing and manipulation of the GBB flag state.
21
22Options
23-------
24
25\--help
26
27:   Prints brief usage information.
28
29-g, \--get
30
31:   Puts the GBB command into GET mode. (default)
32
33-s, \--set
34
35:   Puts the GBB command into SET mode.
36
37-c, \--create=hwid_size,rootkey_size,bmpfv_size,recoverykey_size
38
39:   Puts the GBB command into CREATE mode. Create a GBB blob by given size list.
40
41GET Mode Options
42----------------
43
44Get (read) from image_file or flash, with following options:
45
46\--flash
47
48:   Read from and write to flash, ignore file arguments.
49
50### Report Fields
51
52The following options are available for reporting different types of information
53from image_file or flash. The default is returning hwid. There could be multiple
54fields to be reported at one time.
55
56\--hwid
57
58:   Report hardware id (default).
59
60        hardware_id: EXAMPLE
61
62\--flags
63
64:   Report header flags.
65
66        flags: 0x00000000
67
68\--digest
69
70:  Report digest of hwid (>= v1.2)
71
72        digest: DIGEST_STRING
73
74-e, \--explicit
75
76:   Report header flags by name. This implies **\--flags**.
77
78        flags: 0x00000000
79        VB2_GBB_FLAG_FLAG_A
80        VB2_GBB_FLAG_FLAG_B
81
82### File Names to Export
83
84-k, \--rootkey=FILE
85
86:   File name to export Root Key.
87
88-b, \--bmpfv=FILE
89
90:   File name to export Bitmap FV.
91
92-r, \--recoverykey=FILE
93
94:   File name to export Recovery Key.
95
96SET Mode Options
97----------------
98
99Set (write) to flash or file, with following options:
100
101\--flash
102
103:   Read from and write to flash, ignore file arguments.
104
105-o, \--output=FILE
106
107:   New file name for ouptput.
108
109If no output file is specified, futility gbb will write back to image_file.
110
111### Values to be Changed
112
113There could be multiple values to be changed at one time.
114
115\--hwid=HWID
116
117:   The new hardware id to be changed.
118
119\--flags=FLAGS
120
121:   The new (numeric) flags value or +/- diff value.
122
123### New File Names of Output
124
125-k, \--rootkey=FILE
126
127:   File name of new Root Key.
128
129-b, \--bmpfv=FILE
130
131:   File name of new Bitmap FV.
132
133 -r  \--recoverykey=FILE
134
135 :  File name of new Recovery Key.
136
137FLASH Options
138-------------
139
140In GET and SET mode, the following options modify the behaviour of flashing.
141Presence of any of these implies \--flash.
142
143-p, \--programmer=PRG
144
145:   Change AP (host) flashrom programmer
146
147\--ccd_without_servod
148
149:   Flash via Case Closed Debugging (CCD) without servod (similar to
150    `--fast --force --wp=0 -p=raiden_debug_spi`). Note this
151    may be unsafe on some boards, and using `--servo` is preferred whenever
152    possible.
153
154\--emulate=FILE
155
156:   Emulate system firmware using file
157
158\--servo
159
160:   Flash using Servo (v2, v4, micro, ...)
161
162\--servo_port=PRT
163
164:   Override servod port, implies \--servo
165
166EXAMPLES
167========
168
169Get information from $FILE
170
171        futility gbb --get $FILE
172        futility gbb --get --hwid $FILE
173        futility gbb --get --flags $FILE
174        futility gbb --get --digest $FILE
175        futility gbb --get --hwid --flags --digest $FILE
176
177Get the names of GBB flags
178
179        futility gbb --get -e $FILE
180
181Get information from host flash
182
183        futility gbb --get --flash
184        futility gbb --get --hwid --flash
185        futility gbb --get --flags --flash
186        futility gbb --get --digest --flash
187
188Get information from flash using servo
189
190        futility gbb --get --servo
191        futility gbb --get --flash --servo
192
193Export the rootkey from $FILE to $ROOTKEY_FILE
194
195        futility gbb --rootkey=$ROOTKEY_FILE $FILE
196
197Set values from $FILE and overwrite it
198
199        futility gbb --set --flags=$FLAGS $FILE
200        futility gbb --set --hwid=$HWID $FILE
201        futility gbb --set --flags=$FLAGS $FILE --hwid=$HWID $FILE
202
203Set values from $FILE to $OUT_FILE
204
205        futility gbb --set --flags=$FLAGS $FILE $OUT_FILE
206        futility gbb --set --flags=$FLAGS $FILE -o $OUT_FILE
207
208Read from flash and write back new values using host flash
209
210        futility gbb --set --flags=$FLAGS --flash
211
212Read from servo and write back new values using servo
213
214        futility gbb --set --flags=$FLAGS --servo
215
216Create a GBB blob
217
218        futility gbb --create $HWIDSIZE,$ROOTKEYSIZE,$BMPFVSIZE,$RECOVERYKEYSIZE
219