Serial Boot EEPROM device differences and recommendations ========================================================= A variety of '2-wire' (i2c) serial EEPROM devices exist on the market. This document lists some subtle differences, and recommends which ones to use as boot EEPROMs with current (and future) Trimedia devices. device size write protect addressing compatibility (Bytes) protocol (not all tested) Atmel 24C01A 128 yes, full array 1 byte TM1000, 1100, 1300 Philips PCA8581C 128 none 1 byte TM1000, 1100, 1300 Atmel 24C02 256 yes, full array 1 byte TM1000, 1100, 1300 Atmel 24C04 512 yes, full array 1 byte TM1000, 1100, 1300 Atmel 24C08 1k none 1 byte TM1000, 1100, 1300 Atmel 24C16 2k yes, upper half (!) 1 byte TM1000, 1100, 1300 Philips PCF85116-3 2k yes, full array 1 byte TM1000, 1100, 1300 Atmel 24C32 4k yes, upper 1/4 (!) 2 bytes ---- Atmel 24C64 8k yes, upper 1/4 (!) 2 bytes ---- Atmel 24C128 16k yes, full array 2 bytes ---- Atmel 24C256 32k yes, full array 2 bytes ---- Atmel 24C512 64k yes, full array 2 bytes ---- Recommendation (TM1000,1100,1300) --------------------------------- For small EEPROMs (host assisted boot, no L1 boot code), use the Atmel 24C01A, 24C02 or 24C04. They have the right write protect functionality. For larger EEPROMs, as needed for holding an L1 boot program, use the Philips PCF85116-3, if it is available. It has full array write protection. The Atmel 24C08 or 24C16 can accidentally get the first array part erased, even if WP is pulled high. This will result in boot failures. Clarification - addressing and compatibility -------------------------------------------- Trimedia TM1000, 1100 and 1300 perform a dummy 0 byte write to EEPROM word address 0, followed by a sequential read, to read the entire EEPROM. The address protocol used is the '1 byte' addressing scheme, as follows: 3 msb's of the word address are transmitted within the slave device address 8 lsb's of the word address are transmitted as 1 address byte The dummy 0 byte write initializes the EEPROM's 'last address' register. The subsequent sequential read then causes the EEPOM to retrun all of its content starting at address 0. To address devices larger than 2 kBytes, more than 11 bits of address are needed. In such devices, a 2 byte word address is used. Trimedia TM1000/1100 and 1300 don't send the appropriate dummy 0 byte write with the '2 byte' protocol to set such devices to the correct initial address state. Hence TM1000/1100/1300 are limited to using 2 kByte or less EEPROMs. Future plans (DVP1) ------------------- We will investigate support for booting from EEPROMs with 1 byte as well as 2 byte addressing schemes, suchthat midsize applications can be direct loaded from EEPROM if needed (e.g. a Flash recovery utility).