Update/verify EEPROM map for BM type chips
[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
60x14(FT232/245), 0x16(FT2232CD), 0x18(FT232/245R) or 0x1a (FT2232H/4432H)
7bytes
8
33887896 9Type | Use extra EEPROM space
7345e955
UB
10FT2XXB | No
11
12Byte.BIT| TYPE_AM TYPE_BM TYPE_2232C TYPE_R TYPE_2232H TYPE_4232H
1300.0 | 0 0 channel_a_type channel_a_type channel_a_type
1400.1 | 0 0 channel_a_type channel_a_type channel_a_type
1500.2 | 0 0 channel_a_type high_current channel_a_type channel_a_type
1600.3 | 0 0 channel_a_driver channel_a_driver channel_a_driver channel_a_driver
1700.4 | 0 0 high_current_a 0 0 0
1800.5 | 0 0 0 0 0 0
1900.6 | 0 0 0 0 0 0
2000.7 | 0 0 0 0 SUSPEND_DBUS7 0
21
22On TYPE_R 00.3 set mean D2XX, on other devices VCP
23
2401.0 | 0 0 channel_b_type channel_b_type channel_b_type
2501.1 | 0 0 channel_b_type channel_b_type channel_b_type
2601.2 | 0 0 channel_b_type 0 channel_b_type channel_b_type
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 0
32
33Fixme: Missing 4232H validation and channel_c_driver, channel_d_driver, channel_a|b|c|d_rs484enable
34
33887896
TJ
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)
7345e955 41 |
33887896
TJ
4208.4 | Battery powered
4308.5 | Remote wakeup
4408.6 | Self powered: 1, bus powered: 0
7345e955
UB
4508.7 | Always 1
46 |
33887896 4709 | Max power (mA/2)
7345e955
UB
48 |
49Byte.BIT| TYPE_AM TYPE_BM TYPE_2232C TYPE_R TYPE_2232H TYPE_4232H
500a.0 | 0 IsoIn
510a.1 | 0 IsoOut
520a.2 | 0 suspend_pull_down suspend_pull_down suspend_pull_down
530a.3 | 0 use_serial use_serial
33887896
TJ
540a.4 | 0 change_usb_version change_usb_version
550a.5 | 0 - reserved
560a.6 | 0 - reserved
570a.7 | 0 - reserved
58
7345e955
UB
59 |
600b | TYPE_R Bitmask Invert, 0 else
61
62Byte | TYPE_AM TYPE_BM TYPE_2232C TYPE_R TYPE_2232H TYPE_4232H
33887896
TJ
630c | 0 USB-VER-LSB USB-VER-LSB 0 ? ?
640d | 0 USB-VER-MSB USB-VER-MSB 0 ? ?
65(On several FT2232H different values were observed -> The value is unused
66 if change USB version is not set, so it might contain garbage)
7345e955
UB
67
680e | OFFSET Vendor
690f | Len VENDOR
70
7110 | Offset Product
7211 | Length Product
73
7412 | Offset Serial
7513 | Length Serial
76
77Byte.BIT| TYPE_AM TYPE_BM TYPE_2232C TYPE_R TYPE_2232H TYPE_4232H
33887896
TJ
7814.3:0 | UA UA CHIP CBUS[0] AL A
7914.7:0 | UA UA CHIP CBUS[1] AH B
8015.3:0 | UA UA 0 CBUS[2] BL C
8115.7:0 | UA UA 0 CBUS[3] BH D
8216.3:0 | UA UA UA CBUS[4] 0 0
8316.7:0 | UA UA UA 0 0 0
7345e955
UB
84
8517 UA UA UA 0 0 0
33887896
TJ
8618 UA UA UA VENDOR CHIP CHIP
8719 UA UA UA VENDOR 0 0
7345e955
UB
88
891a UA(all)
90
91Mprog doesn's seem to write this:
92After last string
33887896 930x02 0x03 0x01 with PnP == 0