大部分个人或公司做Am335x板子的时候都是参考beagleboard/Start kit/EVM的板子(当然我们也是,所以才得到这个小教训)
可能是为了省点米吧,硬件工程师在参考EVM画板子的时候把那个I2C EEPROM省下了,后面就惨了,软件做GPL,Uboot, kernel移植的时候都要专门对这个EEPROM内的数据操作,并且在这几个部分初始化的时候都要对I2C EEPROM内的数数据做检查,
查了资料才发现:
下面的资料应该比较能说明:
I2C ID**体三板的EVM,有一个专门的I2C EEPROM,该板包含特定身份/配置信息。此外,为用户特定的配置信息在每个存储器的可用空间。 存储设备的零件号是PN#CAT24C256WI-GT3。 名称 | 大小(字节) | 内容 | 头 | 4 | MSB 0xEE3355AA LSB | 主板名称 | 8 | ASCII“A33515BB”= AM335x 15X15底板板的名称 | 版本 | 4 | 硬件版本代码为ASCII“1.0A”=转板。01.0A | 编号 | 12 | 电路板的序列号。这是一个12个字符的字符串,它是: WWYY4P16nnnn其中:WW = 2位数的一周,今年的生产YY = 2位数字表示年份的生产分=递增板号 | 组态 | 32 | 代码显示在此板配置设置。有关可用的EVM的支持,使用下面的代码:ASCII“SKU#01”=基板根目的EVM ASCII“SKU#02”=基础工业电机控制EVM板剩余的26字节被保留 | 以太网MAC地址#0 | 6 | MAC地址的AM335x以太网MAC#1 | 以太网MAC地址#1 | 6 | MAC地址的AM335x以太网MAC#2或PRU#0 | 以太网MAC地址#2 | 6 | AM335x PRU#1的MAC地址(如果使用) | 可用的 | 32702 | 其它非易失性代码/数据的可用空间 |
表8:AM335x 15X15底板EEPROM数据
名称 | 大小(字节) | 内容 | 头 | 4 | MSB 0xEE3355AA LSB | 主板名称 | 8 | 在的ASCII“A335GPBD”= AM335x通用子板对板名称 | 版本 | 4 | 硬件版本代码为ASCII“1.0A”=转板。01.0A | 编号 | 12 | 电路板的序列号。这是一个12个字符的字符串,它是: WWYY4P13nnnn其中:WW = 2位数的一周,今年的生产YY = 2位数字表示年份的生产分=递增板号 | 组态 | 32 | 代码显示在此板配置设置。有关可用的EVM的支持,使用下面的代码:ASCII“SKU#00”=标准GP子板配置剩余的26个字节保留 | CPLD版本 | 8 | 在的ASCII“CPLD1.0A”=转板的CPLD代码版本。01.0A的CPLD | 可用的 | 32700 | 其它非易失性代码/数据的可用空间 |
表9:AM335x通用子板EEPROM数据
名称 | 大小(字节) | 内容 | 头 | 4 | MSB 0xEE3355AA LSB | 主板名称 | 8 | ASCII“A335LCDA”= AM335x LCD A董事会董事会的名称 | 版本 | 4 | 硬件版本代码为ASCII“1.0A”=转板。01.0A | 编号 | 12 | 电路板的序列号。这是一个12个字符的字符串,它是: WWYY4P15nnnn其中:WW = 2位数的一周,今年的生产YY = 2位数字表示年份的生产分=递增板号 | 组态 | 32 | 代码显示配置设置此板(代码被分配TBD) | 可用的 | 32708 | 其它非易失性代码/数据的可用空间 |
表10:AM335x LCD A董事会EEPROM数据
|