CMake: bump the minimal required version to 3.5
[libftdi] / doc / EEPROM-structure
... / ...
CommitLineData
1Here we try to document what we know about the EEPROM Structure.
2
3Even with a 93xx66 EEPROM, at maximum 256 Bytes are used
4
5All important things happen in the first
60x14(FT232/245), 0x16(FT2232CD), 0x18(FT232/245R) or 0x1a (FT2232H/4432H) bytes
7
8Type | Use extra EEPROM space
9FT2XXB | No
10
11Byte.BIT| TYPE_AM TYPE_BM TYPE_2232C TYPE_R TYPE_2232H TYPE_4232H
1200.0 | 0 0 channel_a_type 232R/245R channel_a_type 0
1300.1 | 0 0 channel_a_type channel_a_type 0
1400.2 | 0 0 channel_a_type high_current channel_a_type 0
1500.3 | 0 0 channel_a_driver channel_a_driver channel_a_driver channel_a_driver
1600.4 | 0 0 high_current_a 0 0 0
1700.5 | 0 0 0 0 0 0
1800.6 | 0 0 0 0 0 0
1900.7 | 0 0 0 0 SUSPEND_DBUS7 channel_c_driver
20
21On TYPE_R 00.0 is set for the FT245R and cleared for the FT232R
22On TYPE_R 00.3 set means D2XX, on other devices VCP
23
2401.0 | 0 0 channel_b_type channel_b_type 0
2501.1 | 0 0 channel_b_type channel_b_type 0
2601.2 | 0 0 channel_b_type 0 channel_b_type 0
2701.3 | 0 0 channel_b_driver 0 channel_b_driver channel_b_driver
2801.4 | 0 0 high_current_b 0 0 0
2901.5 | 0 0 0 0 0 0
3001.6 | 0 0 0 0 0
3101.7 | 0 0 0 0 0 channel_d_driver
32
33Fixme: Missing 4232H validation
34
3502 | Vendor ID (VID) LSB (all)
3603 | Vendor ID (VID) MSB (all)
3704 | Product ID (PID) LSB (all)
3805 | Product ID (PID) MSB (all)
3906 | Device release number LSB (not tested on TYPE_4232H)
4007 | Device release number MSB (not tested on TYPE_4232H)
41 |
4208.4 | Battery powered
4308.5 | Remote wakeup
4408.6 | Self powered: 1, bus powered: 0
4508.7 | Always 1
46 |
4709 | Max power (mA/2)
48 |
49Byte.BIT| TYPE_AM TYPE_BM TYPE_2232C TYPE_R TYPE_2232H TYPE_4232H
500a.0 | 0 IsoIn IsoIn part A 0 0 0
510a.1 | 0 IsoOut IsoOut part A 0 0 0
520a.2 | 0 suspend_pull_down suspend_pull_down suspend_pull_down suspend_pull_down
530a.3 | 0 use_serial use_serial use_serial
540a.4 | 0 change_usb_version change_usb_version
550a.5 | 0 0 IsoIn part B 0 0 0
560a.6 | 0 0 IsoOut part B 0 0 0
570a.7 | 0 - reserved
58
590b | TYPE_R Bitmask Invert, 0 else
60Byte.BIT| TYPE_4232H
610b.4 | channel_a_rs485enable
620b.5 | channel_b_rs485enable
630b.6 | channel_c_rs485enable
640b.7 | channel_d_rs485enable
65
66Byte | TYPE_AM TYPE_BM TYPE_2232C TYPE_R TYPE_2232H TYPE_4232H
670c | 0 USB-VER-LSB USB-VER-LSB 0 ? ?
680d | 0 USB-VER-MSB USB-VER-MSB 0 ? ?
69(On several FT2232H different values were observed -> The value is unused
70 if change USB version is not set, so it might contain garbage)
71
720e | OFFSET Vendor
730f | Len VENDOR
74
7510 | Offset Product
7611 | Length Product
77
7812 | Offset Serial
7913 | Length Serial
80
81Byte.BIT| TYPE_AM TYPE_BM TYPE_2232C TYPE_R TYPE_2232H TYPE_4232H
8214.3:0 | UA UA CHIP CBUS[0] AL A
8314.7:0 | UA UA CHIP CBUS[1] AH B
8415.3:0 | UA UA 0 CBUS[2] BL C
8515.7:0 | UA UA 0 CBUS[3] BH D
8616.3:0 | UA UA UA CBUS[4] 0 0
8716.7:0 | UA UA UA 0 0 0
88
89CHIP values:
900x46: EEPROM is a 93xx46
910x56: EEPROM is a 93xx56
920x66: EEPROM is a 93xx66
93
9417 UA UA UA 0 0 0
9518 UA UA UA VENDOR CHIP CHIP
9619 UA UA UA VENDOR 0 0
97
981a UA (all)
99
100
101Additional fields after the serial string:
1020x00, 0x00 - reserved for "legacy port name prefix"
1030x00, 0x00 - reserved for plug and play options
104(Observed values with PnP == 0:
1050x02 0x03 0x01 0x00)
106
107Note: The additional fields after the serial number string
108collide with the official FTDI formula from AN_121 regarding
109the start of the user area:
110"Start Address = the address following the last byte of SerialNumber string."