New flash tool, needs to be ported to Windows.

+ [f]ast is gone, current mode will be autodetected
+ uses hands-free firmware update if supported by the bootrom (to be committed)
+ uses new bootrom safety features against accidental misflashes (to be committed)
+ supports S19 files with base address 0x0 or base address 0x100000
+ supports old bootroms which expect 0x0 and new bootroms which expect 0x100000 (to be committed)
+ new argument style: first argument is comma-separated (no spaces!) list of partition names, remaining arguments are file names
  os and fpga may be abbreviated, bootrom must be given in full
  Examples:   ./flasher os ../armsrc/obj/osimage.s19
              ./flasher bootrom,o,f ../bootrom/obj/bootrom.s19 ../armsrc/obj/osimage.s19 ../armsrc/obj/fpgaimage.s19
This commit is contained in:
henryk@ploetzli.ch 2009-09-01 14:35:13 +00:00
parent d5d42c0a4b
commit a5b1ba2023
2 changed files with 240 additions and 59 deletions

View file

@ -25,6 +25,7 @@ typedef struct {
#define CMD_FINISH_WRITE 0x0003
#define CMD_HARDWARE_RESET 0x0004
#define CMD_START_FLASH 0x0005
#define CMD_NACK 0x00fe
#define CMD_ACK 0x00ff
// For general mucking around
@ -75,4 +76,14 @@ typedef struct {
// For direct FPGA control
#define CMD_FPGA_MAJOR_MODE_OFF 0x0500
// CMD_DEVICE_INFO response packet has flags in ext1, flag definitions:
#define DEVICE_INFO_FLAG_BOOTROM_PRESENT (1<<0) /* Whether a bootloader that understands the common_area is present */
#define DEVICE_INFO_FLAG_OSIMAGE_PRESENT (1<<1) /* Whether a osimage that understands the common_area is present */
#define DEVICE_INFO_FLAG_CURRENT_MODE_BOOTROM (1<<2) /* Set if the bootloader is currently executing */
#define DEVICE_INFO_FLAG_CURRENT_MODE_OS (1<<3) /* Set if the OS is currently executing */
#define DEVICE_INFO_FLAG_UNDERSTANDS_START_FLASH (1<<4) /* Set if this device understands the extend start flash command */
// CMD_START_FLASH may have three arguments: start of area to flash, end of area to flash, optional magic defined below
#define START_FLASH_MAGIC 0x54494f44 /* The bootrom will not allow to overwrite itself unless this magic is given as third parameter */
#endif