88E8057 Embedded OTP Programming

88E8057是Marvell的一款PCIE接口的千兆以太网芯片。内含1k的OTP存储器,可以用来初始化芯片的寄存器。比如MAC地址就是用OTP的内容来初始化的。下面的对OTP编程的步骤来源于一些逆向工程,实际使用中看来来是可以,但并不保证一定正确。

 

OTP 内存进行只能一次性编程,初始时所有的内容为0。当一位被写为1之后,则不能再写回0.

 

对OTP内存进行编程: (所有寄存器地址均指Control Register)

 

1. 设 REG_byte 0x04 为1,然后再设为2,用来复位芯片

 

2. 设 REG_byte 0x158 为2,启用特殊寄存器的写使能。

 

3. 设 REG_dword 0x1ca0 为 0xff0000f0  (目的不明)

 

对OTP编程过程为,先往REG_dword 0x1c54中写入数据,然后在REG_word 0x1c52中写入 0x8000|<地址>。等待最高位变为0之后,则该四字节编程完毕。

对OTP读的过程,往REG_word 0x1c52中写入地址,等待最高位变为1之后,则可从 REG_dword 0x1c54中读到数据。

 

 

你可能感兴趣的:(编程,c,存储,byte)