mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-14 10:37:23 -07:00
New flasher, much more paranoid and much more correct.
Knows how to merge segments to solve the "data overwrites last text block" issue. Removed "partition" stuff. Now it just flashes any elf file you pass, though there's still a -b option required to explicitly enable flashing the bootloader.
This commit is contained in:
parent
98bf65a640
commit
8fe1a992c7
3 changed files with 502 additions and 270 deletions
|
@ -10,22 +10,26 @@
|
|||
#define __FLASH_H__
|
||||
|
||||
#include <stdint.h>
|
||||
#include "elf.h"
|
||||
|
||||
struct partition {
|
||||
int start;
|
||||
int end;
|
||||
int precious;
|
||||
const char *name;
|
||||
};
|
||||
typedef struct {
|
||||
void *data;
|
||||
uint32_t start;
|
||||
uint32_t length;
|
||||
} flash_seg_t;
|
||||
|
||||
void FlushPrevious(int translate);
|
||||
void GotByte(uint32_t where, uint8_t which, int start_addr, int end_addr, int translate);
|
||||
unsigned int EnterFlashState(void);
|
||||
int PrepareFlash(struct partition *p, const char *filename, unsigned int state);
|
||||
int find_next_area(const char *str, int *offset, int *length);
|
||||
typedef struct {
|
||||
const char *filename;
|
||||
int can_write_bl;
|
||||
int num_segs;
|
||||
flash_seg_t *segments;
|
||||
} flash_file_t;
|
||||
|
||||
#define PHYSICAL_FLASH_START 0x100000
|
||||
void do_flash(char **argv);
|
||||
int flash_load(flash_file_t *ctx, const char *name, int can_write_bl);
|
||||
int flash_start_flashing(int enable_bl_writes);
|
||||
int flash_write(flash_file_t *ctx);
|
||||
void flash_free(flash_file_t *ctx);
|
||||
int flash_stop_flashing(void);
|
||||
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue