1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-11-18 05:28:40 +00:00
trezor-firmware/core/embed/firmware/header.S

50 lines
1.6 KiB
ArmAsm
Raw Normal View History

2017-10-11 21:37:28 +00:00
.syntax unified
#include "version.h"
2017-10-11 21:37:28 +00:00
.section .header, "a"
.type g_header, %object
.size g_header, .-g_header
// Firmware header for both Trezor One and Trezor T.
// Trezor One must have bootloader version >= 1.8.0 (before that version the hdrlen used to be reset vector)
2020-05-11 13:43:43 +00:00
g_header:
.byte 'T','R','Z','F' // magic
.word g_header_end - g_header // hdrlen
.word 0 // expiry
.word _codelen // codelen
.byte VERSION_MAJOR // vmajor
.byte VERSION_MINOR // vminor
.byte VERSION_PATCH // vpatch
.byte VERSION_BUILD // vbuild
.byte FIX_VERSION_MAJOR // fix_vmajor
.byte FIX_VERSION_MINOR // fix_vminor
.byte FIX_VERSION_PATCH // fix_vpatch
.byte FIX_VERSION_BUILD // fix_vbuild
. = . + 8 // reserved
. = . + 512 // hash1 ... hash16
2020-06-06 17:26:47 +00:00
#if TREZOR_MODEL == T
// model T header specifics
. = . + 415 // reserved
.byte 0 // sigmask
. = . + 64 // sig
2020-06-06 17:26:47 +00:00
#elif TREZOR_MODEL == 1
// model 1 header specifics
2020-05-11 13:43:43 +00:00
. = . + 64 // sig1
. = . + 64 // sig2
. = . + 64 // sig3
.byte 0 // sigindex1
.byte 0 // sigindex2
.byte 0 // sigindex3
. = . + 220 // reserved
. = . + 65 // reserved
2020-06-06 17:26:47 +00:00
#else
#error Unknown Trezor model
#endif
2020-05-11 13:43:43 +00:00
g_header_end: