coreboot_util.sh: Simplify top-level menu, better reflect actual usage
Simplify the top-level menu to better reflect the way the script is actually used. The top-level menu items are now:
- Update firmware - most common operation, detects all configuration from host (except whether to use a prebuilt ROM or build from source), flash at the end for SeaBIOS or instruct to flash via Heads
- Switch to a different firmware - always uses the host device (e.g. Librem 14 / 11 / Mini), but asks for all other configuration options, always flash at the end
- Prepare firmware for manual flash - asks everything including device type, never flashes, usable even on non-Librem device
- Configure serial number
- Configure boot order
The intent is to guide novice users into "Update firmware" and have as little room for error as possible. Later options are each less commonly used.
This also reduces some confusion over things like "building from source" used to imply the SeaBIOS payload, now the payload is selected first and building from source is offered if SeaBIOS was selected.
There are a few smaller changes as well that resulted from the restructuring:
- Changing serial number is now possible on PureBoot (but does trigger tamper detection if active)
- Cleanly re-flashing PureBoot is possible without having to switch to SeaBIOS as an intermediate step (select "Switch..." and select PureBoot, will flash directly)
- Building from source no longer flashes if the ROM does not reproduce exactly (before it was an easily-overlooked warning; users without hardware recovery tools+knowledge should not flash untested ROMs)
Signed-off-by: Jonathon Hall jonathon.hall@puri.sm