FreeCalypso > hg > freecalypso-hwlab
annotate doc/FTDI-EEPROM-tools @ 45:1f3a4115375f
doc/FTDI-EEPROM-tools: article started
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 22 Apr 2019 19:32:31 +0000 |
parents | |
children | b2e9a6f3c833 |
rev | line source |
---|---|
45
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 Mother Mychaela has developed a set of Linux command line tools for manipulating |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 configuration EEPROMs that are attached to FT2232x devices and accessed in-band |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 via USB. This document describes these tools. |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 Supported FTDI chips and EEPROMs |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 ================================ |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 The present tools work with 93C46, 93C56 and 93C66 EEPROMs attached behind |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 FT2232x dual-channel UART/FIFO/MPSSE/etc chips, both FT2232C/D and FT2232H. |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 We can read these EEPROMs for examination or backup, and we can program them |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 with new bits, either restoring a previously saved backup or creating a new |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 from-scratch configuration. These EEPROM configurations (which we can save, |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 restore or create from scratch) set the USB VID:PID and the textual strings |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 naming the manufacturer, the product model and an optional serial number, |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 select whether each FT2232x channel will come up in the default UART mode or |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 one of the other EEPROM-configurable modes (245 FIFO, CPU-style FIFO or fast |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 opto-isolated serial), and allow a few other obscure chip settings to be |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 tweaked. |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 Some work has also been done toward the goal of being able to program the |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 internal EEPROM in FT232R chips (a very popular single-channel USB to UART |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 converter needing no external components), but this work has not been finished |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 yet, and the present tools should NOT be used to attempt an EEPROM write on |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 that chip - the risking of bricking the chip is too high. |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 More generally, our fteeprom-read tool should be able to read out the EEPROM |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 content from just about any FTDI chip including FT232R, whereas our |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 fteeprom-prog tool should be able to program a user-supplied set of bits into |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 any FTDI+EEPROM combo where the EEPROM is a separate chip - but it is NOT safe |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 to use on FTDI chips like FT232R or FT-X that have their EEPROM built in. |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 Furthermore, if the goal is to generate a new EEPROM config from scratch, as |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 opposed to restoring a saved backup, we currently have generators only for |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 FT2232C/D and for FT2232H. (We also have a generator program for FT232R, but |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 it is of no use for as long as fteeprom-prog is not safe to use on FT232R |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 chips.) |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 libftdi dependency |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 ================== |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 We use libftdi (which is in turn layered on libusb) to issue the special USB |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 control pipe commands to FTDI chips which are needed to read and write their |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 EEPROMs. We use old-style libftdi-0.x (-lftdi on the link line) as opposed to |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 libftdi1 (-lftdi1) because the new versions took away the ability to write to |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 the EEPROM directly with ftdi_write_eeprom_location() calls, forcing users to |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 go through libftdi1's own EEPROM smarts, which we don't want to do - our tools |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 are all about more direct user empowerment at the lowest level. |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 Selecting the device to operate on |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 ================================== |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 Our fteeprom-read, fteeprom-prog and fteeprom-erase tools take a device selector |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 argument, selecting the device to operate on. This required argument is the |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 string to be passed to the ftdi_usb_open_string() function in libftdi, allowing |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 the device to be operated on to be selected in one of several ways. Copying |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 from libftdi documentation, the available formats are: |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 d:<devicenode> - path of bus and device-node (e.g. "003/001") within usb device |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 tree (usually at /proc/bus/usb/) |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 i:<vendor>:<product> - first device with given vendor and product id, ids can |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 be decimal, octal (preceded by "0") or hex (preceded by "0x") |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 i:<vendor>:<product>:<index> - as above with index being the number of the |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 device (starting with 0) if there are more than one |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 s:<vendor>:<product>:<serial> - first device with given vendor id, product id |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 and serial string |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 If you have only one FTDI device connected to your PC or laptop at the time of |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 your EEPROM manipulation session (generally a good idea to avoid hitting the |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 wrong device by mistake) and if that FTDI device has some sensible starting |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 USB VID:PID (either from the previous EEPROM config or the chip's sans-EEPROM |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 default) that doesn't clash with anything else, then the i: form will probably |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 be the most convenient, e.g.: |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 i:0x0403:0x6001 for single-channel FT232x devices running with the default ID |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 i:0x0403:0x6010 for dual-channel FT2232x devices running with the default ID |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 i:0x0403:0xPPPP for custom PIDs assigned out of FTDI's VID range |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 i:0xVVVV:0xPPPP for totally custom USB IDs |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 Or if the current device config is totally hosed (the EEPROM has a passing |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 checksum, but sets some completely bogus USB ID), then the d: form will |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 probably be required for recovery. |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 Reading the EEPROM |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 ================== |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 The basic EEPROM read command is as follows: |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 fteeprom-read <device-selector> |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 See the previous section for the device selector argument. In this default |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 form the tool will read the first 64 EEPROM words, which is appropriate for |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 93C46 external EEPROMs or for the internal 1024-bit EEPROM in the FT232R chip. |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 However, if you are working with an FT2232x board with an external EEPROM and |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 that EEPROM is of a larger variety (93C56 or 93C66), this basic form with give |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 you an incomplete (truncated) read, and you will need one of the following |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 extended forms to read the complete EEPROM: |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 fteeprom-read -b <device-selector> -- read 128 EEPROM words (93C56) |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 fteeprom-read -B <device-selector> -- read 256 EEPROM words (93C66) |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 (If you use one of the extended forms on a smaller EEPROM, you will get 2 or 4 |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 copies of the same bits.) |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 The output of fteeprom-read is in the same format as the input to fteeprom-prog, |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 thus you can redirect the output to a file and get a restorable backup copy of |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 your EEPROM. |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 Programming the EEPROM |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 ====================== |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 In terms of the primitives provided over USB, writing to EEPROMs behind FTDI |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 chips is accomplished by writing one 16-bit word at a time: the |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 SIO_WRITE_EEPROM_REQUEST command writes a user-supplied word at a user-supplied |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 EEPROM address. However, our fteeprom-prog tool currently supports only writing |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 complete EEPROMs (64 or 128 or 256 16-bit words starting at address 0) and we |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 do not currently provide any kind of "random access write" utility; the primary |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 reason for this design decision is practical usefulness: FTDI's EEPROM structure |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 includes a checksum over the first 64 words for 1024-bit EEPROMs or over the |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 first 128 words for larger ones, and if this checksum fails to match, the entire |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 structure is deemed to be invalid - hence there is no practical use case for |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 selectively rewriting individual words. The only exception may be with 93C66 |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 EEPROMs: on these giants only the first half would be subject to the checksum, |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 and the second half could be used arbitrarily. However, we have not yet |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 encountered any boards out in the wild with such big EEPROMs, and we have no |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 plans to use such in any of our own hardware designs either, hence there is no |
1f3a4115375f
doc/FTDI-EEPROM-tools: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 business case at the present moment to develop tooling support for them. |