mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-26 01:18:28 +00:00
add firmware format documentation
This commit is contained in:
parent
6a3cf02396
commit
4b9d3bffc6
46
docs/bootloader.md
Normal file
46
docs/bootloader.md
Normal file
@ -0,0 +1,46 @@
|
||||
#TREZOR OS Bootloader
|
||||
|
||||
##Firmware file format
|
||||
|
||||
TREZOR OS firmware file consists of 3 parts:
|
||||
|
||||
1. vendor header
|
||||
2. firmware header
|
||||
3. firmware code
|
||||
|
||||
###Vendor Header
|
||||
|
||||
| offset | length | name | description |
|
||||
|-------:|-------:|------|-------------|
|
||||
| 0x0000 | 4 | magic | firmware magic `TRZV` |
|
||||
| 0x0004 | 4 | hlen | length of the vendor header (big endian) |
|
||||
| 0x0008 | 1 | vsig_m | number of signatures needed to run the firmware from this vendor |
|
||||
| 0x0009 | 1 | vsig_n | number of pubkeys vendor wants to use for signing |
|
||||
| 0x000A | 1 | vstr_len | vendor string length |
|
||||
| 0x000B | ? | vstr | vendor string |
|
||||
| ? | ? | vimg | vendor image (in [TOIf format](toif.md)) |
|
||||
| ? | 32 | vpub1 | vendor pubkey 1 |
|
||||
| ... | ... | ... | ... |
|
||||
| ? | 32 | vpubn | vendor pubkey n |
|
||||
| ? | 64 | slsig1 | SatoshiLabs signature 1 |
|
||||
| ? | 64 | slsig2 | SatoshiLabs signature 2 |
|
||||
| ? | 64 | slsig3 | SatoshiLabs signature 3 |
|
||||
|
||||
###Firmware Header
|
||||
|
||||
| offset | length | name | description |
|
||||
|-------:|-------:|------|-------------|
|
||||
| 0x0000 | 4 | magic | firmware magic `TRZF` |
|
||||
| 0x0004 | 4 | hlen | length of the firmware header |
|
||||
| 0x0008 | 4 | codelen | length of the firmware code |
|
||||
| 0x000C | 1 | vmajor | version (major) |
|
||||
| 0x000D | 1 | vminor | version (minor) |
|
||||
| 0x000E | 1 | vpatch | version (patch) |
|
||||
| 0x000F | 1 | vbuild | version (build) |
|
||||
| 0x0010 | 1 | vidx1 | vendor signature index 1 |
|
||||
| 0x0011 | 32 | vsig1 | vendor signature 1 |
|
||||
| 0x0043 | 1 | vidx2 | vendor signature index 2 |
|
||||
| 0x0044 | 32 | vsig2 | vendor signature 2 |
|
||||
| ... | ... | ... | ... |
|
||||
| ? | 1 | vidxn | vendor signature index n |
|
||||
| ? | 32 | vsign | vendor signature n |
|
Loading…
Reference in New Issue
Block a user