fprintf(stderr, "Syntax: %s [...options...] <config-file>\n", program);
fprintf(stderr, "Valid Options:\n");
fprintf(stderr, "--device <description> Specify device to open by description string. One of:\n");
- fprintf(stderr, " d:<devicenode>\n");
+ fprintf(stderr, " d:<device node>\n");
fprintf(stderr, " i:<vendor>:<product>\n");
fprintf(stderr, " i:<vendor>:<product>:<index>\n");
fprintf(stderr, " s:<vendor>:<product>:<serial>\n");
fprintf(stderr, "--build-eeprom Build eeprom image\n");
fprintf(stderr, "--erase-eeprom Erase eeprom\n");
fprintf(stderr, "--flash-eeprom Flash eeprom\n");
+ fprintf(stderr, "--verbose Print more information\n");
}
int main(int argc, char *argv[])
{
CFG_INT("vendor_id", 0, 0),
CFG_INT("product_id", 0, 0),
+ CFG_INT("release_number", -1, 0),
CFG_BOOL("self_powered", cfg_true, 0),
CFG_BOOL("remote_wakeup", cfg_true, 0),
CFG_BOOL("in_is_isochronous", cfg_false, 0),
int i;
FILE *fp;
+ int verbose=0;
+
struct ftdi_context *ftdi = NULL;
printf("\nFTDI eeprom generator v%s\n", EEPROM_VERSION_STRING);
{
command = COMMAND_BUILD;
}
+ else if (!strcmp(argv[i], "--verbose"))
+ {
+ verbose = 1;
+ }
else
{
usage(argv[0]);
if (command == COMMAND_READ)
{
- ftdi_eeprom_decode(ftdi, 0 /* debug: 1 */);
+ ftdi_eeprom_decode(ftdi, verbose);
eeprom_buf = malloc(my_eeprom_size);
ftdi_get_eeprom_buf(ftdi, eeprom_buf, my_eeprom_size);
eeprom_set_value(ftdi, VENDOR_ID, cfg_getint(cfg, "vendor_id"));
eeprom_set_value(ftdi, PRODUCT_ID, cfg_getint(cfg, "product_id"));
+ if (cfg_getint(cfg, "release_number") != -1) {
+ eeprom_set_value(ftdi, RELEASE_NUMBER, cfg_getint(cfg, "release_number"));
+ }
+
eeprom_set_value(ftdi, SELF_POWERED, cfg_getbool(cfg, "self_powered"));
eeprom_set_value(ftdi, REMOTE_WAKEUP, cfg_getbool(cfg, "remote_wakeup"));
eeprom_set_value(ftdi, MAX_POWER, cfg_getint(cfg, "max_power"));