}
// Enter the bootloader to be able to start flashing
-static int enter_bootloader(void)
+static int enter_bootloader(char *serial_port_name)
{
uint32_t state;
msleep(100);
CloseProxmark();
- fprintf(stderr,"Waiting for Proxmark to reappear on USB...");
+ fprintf(stderr,"Waiting for Proxmark to reappear on ");
+ fprintf(stderr,serial_port_name);
do {
sleep(1);
fprintf(stderr, ".");
}
// Go into flashing mode
-int flash_start_flashing(int enable_bl_writes)
+int flash_start_flashing(int enable_bl_writes,char *serial_port_name)
{
uint32_t state;
- if (enter_bootloader() < 0)
+ if (enter_bootloader(serial_port_name) < 0)
return -1;
if (get_proxmark_state(&state) < 0)
} flash_file_t;
int flash_load(flash_file_t *ctx, const char *name, int can_write_bl);
-int flash_start_flashing(int enable_bl_writes);
+int flash_start_flashing(int enable_bl_writes,char *serial_port_name);
int flash_write(flash_file_t *ctx);
void flash_free(flash_file_t *ctx);
int flash_stop_flashing(void);
fprintf(stderr, "Usage: %s <port> [-b] image.elf [image.elf...]\n\n", argv0);
fprintf(stderr, "\t-b\tEnable flashing of bootloader area (DANGEROUS)\n\n");
//Is the example below really true? /Martin
- fprintf(stderr, "Example:\n\t %s path/to/osimage.elf path/to/fpgaimage.elf\n", argv0);
- fprintf(stderr, "Example (Linux):\n\t %s /dev/ttyACM0 armsrc/obj/fullimage.elf\n", argv0);
- fprintf(stderr, "\nNote (Linux): if the flasher gets stuck in 'Waiting for Proxmark to reappear on USB', try deactivating modem-manager: 'sudo service modemmanager stop'\n\n");
-
+ fprintf(stderr, "Example:\n\n\t %s path/to/osimage.elf path/to/fpgaimage.elf\n", argv0);
+ fprintf(stderr, "\nExample (Linux):\n\n\t %s /dev/ttyACM0 armsrc/obj/fullimage.elf\n", argv0);
+ fprintf(stderr, "\nNote (Linux): if the flasher gets stuck in 'Waiting for Proxmark to reappear on <DEVICE>',\n");
+ fprintf(stderr, " you need to blacklist proxmark for modem-manager - see wiki for more details:\n");
+ fprintf(stderr, " http://code.google.com/p/proxmark3/wiki/Linux\n\n");
}
#define MAX_FILES 4
serial_port_name = argv[1];
- fprintf(stderr,"Waiting for Proxmark to appear on USB...");
+ fprintf(stderr,"Waiting for Proxmark to appear on ");
+ fprintf(stderr,serial_port_name);
do {
sleep(1);
fprintf(stderr, ".");
} while (!OpenProxmark(0));
fprintf(stderr," Found.\n");
- res = flash_start_flashing(can_write_bl);
+ res = flash_start_flashing(can_write_bl,serial_port_name);
if (res < 0)
return -1;