ftdi_eeprom: Added config value "eeprom_type"
[libftdi] / doc / EEPROM-structure
CommitLineData
7345e955
UB
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
3c75ad2a 60x14(FT232/245), 0x16(FT2232CD), 0x18(FT232/245R) or 0x1a (FT2232H/4432H) bytes
7345e955 7
33887896 8Type | Use extra EEPROM space
7345e955
UB
9FT2XXB | No
10
11Byte.BIT| TYPE_AM TYPE_BM TYPE_2232C TYPE_R TYPE_2232H TYPE_4232H
be4bae37
AL
1200.0 | 0 0 channel_a_type 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
7345e955 1500.3 | 0 0 channel_a_driver channel_a_driver channel_a_driver channel_a_driver
3c75ad2a 1600.4 | 0 0 high_current_a 0 0 0
7345e955
UB
1700.5 | 0 0 0 0 0 0
1800.6 | 0 0 0 0 0 0
be4bae37 1900.7 | 0 0 0 0 SUSPEND_DBUS7 channel_c_driver
7345e955
UB
20
21On TYPE_R 00.3 set mean D2XX, on other devices VCP
22
be4bae37
AL
2301.0 | 0 0 channel_b_type channel_b_type 0
2401.1 | 0 0 channel_b_type channel_b_type 0
2501.2 | 0 0 channel_b_type 0 channel_b_type 0
7345e955 2601.3 | 0 0 channel_b_driver 0 channel_b_driver channel_b_driver
3c75ad2a 2701.4 | 0 0 high_current_b 0 0 0
7345e955 2801.5 | 0 0 0 0 0 0
3c75ad2a 2901.6 | 0 0 0 0 0
be4bae37 3001.7 | 0 0 0 0 0 channel_d_driver
7345e955 31
be4bae37 32Fixme: Missing 4232H validation
7345e955 33
33887896
TJ
3402 | Vendor ID (VID) LSB (all)
3503 | Vendor ID (VID) MSB (all)
3604 | Product ID (PID) LSB (all)
3705 | Product ID (PID) MSB (all)
3806 | Device release number LSB (not tested on TYPE_4232H)
3907 | Device release number MSB (not tested on TYPE_4232H)
7345e955 40 |
33887896
TJ
4108.4 | Battery powered
4208.5 | Remote wakeup
4308.6 | Self powered: 1, bus powered: 0
7345e955
UB
4408.7 | Always 1
45 |
33887896 4609 | Max power (mA/2)
7345e955 47 |
be4bae37
AL
48Byte.BIT| TYPE_AM TYPE_BM TYPE_2232C TYPE_R TYPE_2232H TYPE_4232H
490a.0 | 0 IsoIn IsoIn part A 0 0 0
500a.1 | 0 IsoOut IsoOut part A 0 0 0
510a.2 | 0 suspend_pull_down suspend_pull_down suspend_pull_down suspend_pull_down
520a.3 | 0 use_serial use_serial use_serial
33887896 530a.4 | 0 change_usb_version change_usb_version
be4bae37
AL
540a.5 | 0 0 IsoIn part B 0 0 0
550a.6 | 0 0 IsoOut part B 0 0 0
33887896
TJ
560a.7 | 0 - reserved
57
be4bae37
AL
580b | TYPE_R Bitmask Invert, 0 else
59Byte.BIT| TYPE_4232H
600b.4 | channel_a_rs485enable
610b.5 | channel_b_rs485enable
620b.6 | channel_c_rs485enable
630b.7 | channel_d_rs485enable
7345e955
UB
64
65Byte | TYPE_AM TYPE_BM TYPE_2232C TYPE_R TYPE_2232H TYPE_4232H
33887896
TJ
660c | 0 USB-VER-LSB USB-VER-LSB 0 ? ?
670d | 0 USB-VER-MSB USB-VER-MSB 0 ? ?
68(On several FT2232H different values were observed -> The value is unused
69 if change USB version is not set, so it might contain garbage)
7345e955
UB
70
710e | OFFSET Vendor
720f | Len VENDOR
73
7410 | Offset Product
7511 | Length Product
76
7712 | Offset Serial
7813 | Length Serial
79
80Byte.BIT| TYPE_AM TYPE_BM TYPE_2232C TYPE_R TYPE_2232H TYPE_4232H
33887896
TJ
8114.3:0 | UA UA CHIP CBUS[0] AL A
8214.7:0 | UA UA CHIP CBUS[1] AH B
8315.3:0 | UA UA 0 CBUS[2] BL C
8415.7:0 | UA UA 0 CBUS[3] BH D
8516.3:0 | UA UA UA CBUS[4] 0 0
8616.7:0 | UA UA UA 0 0 0
3c75ad2a
TJ
87
88CHIP values:
890x46: EEPROM is a 93xx46
900x56: EEPROM is a 93xx56
910x66: EEPROM is a 93xx66
92
7345e955 9317 UA UA UA 0 0 0
33887896
TJ
9418 UA UA UA VENDOR CHIP CHIP
9519 UA UA UA VENDOR 0 0
7345e955 96
3c75ad2a 971a UA (all)
7345e955 98
a45ea32b
TJ
99
100Additional fields after the serial string:
f24a830c
TJ
1010x00, 0x00 - reserved for "legacy port name prefix"
1020x00, 0x00 - reserved for plug and play options
a45ea32b 103(Observed values with PnP == 0:
f24a830c 1040x02 0x03 0x01 0x00)
a45ea32b
TJ
105
106Note: The additional fields after the serial number string
107collide with the official FTDI formula from AN_121 regarding
108the start of the user area:
109"Start Address = the address following the last byte of SerialNumber string."