mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-14 18:48:13 -07:00
New bootrom
+ Add common area at end of RAM to communicate between main os and bootrom + Lower stack end to make room for common area + Implement CMD_DEVICE_INFO in both OS and bootrom to give information about the current state and supported features + Allow hands-free firmware update: When CMD_START_FLASH is received over USB in OS mode, the device will reset and enter the bootrom Pressing the button in hands-free update mode takes precedence: releasing the button will immediately abort firmware update and perform a reset. Do not press the button. + Require each flash sequence to be preceded by a CMD_START_FLASH to set up the boundaries for the following flash sequence Not compatible with linux flasher before SVN revision 200 Currently no compatible flasher for Windows. WINDOWS USERS: DO NOT UPDATE YOUR BOOTROM YET + Protect bootrom flash area unless magic unlock sequence is given in CMD_START_FLASH
This commit is contained in:
parent
a5b1ba2023
commit
8fcbf652da
8 changed files with 202 additions and 49 deletions
|
@ -70,4 +70,18 @@ struct version_information {
|
|||
char buildtime[30]; /* string with the build time */
|
||||
} __attribute__((packed));
|
||||
|
||||
#define COMMON_AREA_MAGIC 0x43334d50
|
||||
#define COMMON_AREA_COMMAND_NONE 0
|
||||
#define COMMON_AREA_COMMAND_ENTER_FLASH_MODE 1
|
||||
struct common_area {
|
||||
int magic; /* Magic sequence, to distinguish against random uninitialized memory */
|
||||
char version; /* Must be 1 */
|
||||
char command;
|
||||
struct {
|
||||
unsigned int bootrom_present:1; /* Set when a bootrom that is capable of parsing the common area is present */
|
||||
unsigned int osimage_present:1; /* Set when a osimage that is capable of parsing the common area is present */
|
||||
} __attribute__((packed)) flags;
|
||||
int arg1, arg2;
|
||||
} __attribute__((packed));
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue