# HG changeset patch # User Mychaela Falconia # Date 1694216870 0 # Node ID af801ab43a333f0a20114fcd06fd6eeb99841ea2 # Parent 43b8e88dae02ff868940acd7d5db074c0f1006b8 fteeprom-erase: convert to new local libs diff -r 43b8e88dae02 -r af801ab43a33 fteeprom/Makefile --- a/fteeprom/Makefile Fri Sep 08 22:40:14 2023 +0000 +++ b/fteeprom/Makefile Fri Sep 08 23:47:50 2023 +0000 @@ -22,8 +22,8 @@ ftee-mkblank: ftee-mkblank.c ${CC} ${CFLAGS} -o $@ $@.c -fteeprom-erase: fteeprom-erase.c - ${CC} ${CFLAGS} -o $@ $@.c -lftdi +fteeprom-erase: fteeprom-erase.o ${LIBS} + ${CC} ${CFLAGS} -o $@ $@.o ${LIBS} -lusb fteeprom-prog: fteeprom-prog.o ${LIBS} ${CC} ${CFLAGS} -o $@ $@.o ${LIBS} -lusb diff -r 43b8e88dae02 -r af801ab43a33 fteeprom/fteeprom-erase.c --- a/fteeprom/fteeprom-erase.c Fri Sep 08 22:40:14 2023 +0000 +++ b/fteeprom/fteeprom-erase.c Fri Sep 08 23:47:50 2023 +0000 @@ -1,27 +1,41 @@ +/* + * This program connects to an FTDI chip via libusb and commands that FTDI + * chip to erase its EEPROM in one fell swoop. This operation is known + * to work on FT2232C/D chips with 5V-powered EEPROMs, but is NOT appropriate + * for FT232R. This operation is also not recommended for external EEPROMs + * powered with 3.3V, as typically used with FT2232H. + * + * The present version has been converted to use our local libraries + * (libftmini and libuwrap) instead of libftdi - thus the external dependency + * is only libusb. + */ + #include #include #include #include -#include +#include +#include "../libuwrap/find_dev.h" +#include "../libuwrap/open_close.h" +#include "../libftmini/eeprom_func.h" main(argc, argv) char **argv; { - struct ftdi_context ftdi; + struct usb_device *dev; + usb_dev_handle *usbh; if (argc != 2) { fprintf(stderr, "usage: %s device-selector\n"); exit(1); } - ftdi_init(&ftdi); - if (ftdi_usb_open_string(&ftdi, argv[1]) < 0) { - fprintf(stderr, "FTDI USB open failed: %s\n", ftdi.error_str); + dev = find_usbdev_by_desc_string(argv[1]); + if (!dev) { + fprintf(stderr, "error: specified USB device not found\n"); exit(1); } - if (ftdi_erase_eeprom(&ftdi) < 0) { - fprintf(stderr, "EEPROM write error: %s\n", ftdi.error_str); - exit(1); - } - ftdi_usb_close(&ftdi); + usbh = usbwrap_open_dev(dev, 1); + ftmini_erase_eeprom(usbh); + usbwrap_close_dev(usbh); exit(0); }