AM3352从NAND_FLASH启动,sysboot9=0 ECC by ROM.
在NAND_FLASH的BLOCK0,和BLOCK1,放置了BOOT代码。 在ROM_CODE读取BLOCK0的数据时,如果ECC检验错误,应该会从BLOCK1启动。
目前问题是,我故意将BLOCK0中的数据写错(更改写入nand的文件,只更改了数据区,更改了多个BIT,理论上ECC无法修复,没有更改ECC校验数据部分,所以理论上校验会失败),但是AM3352依然从BLOCK0启动,没有从BLOCK1启动。
我目前验证的部分,因为目前ROM_CODE加载BLOCK0的数据采用的ECC校验方式为BCH16,然后我在给BLOCK0写入数据时故意采用BCH8的方式写入ECC校验码,这样理论上BLOCK0的ECC校验就会失败,就会从BLOCK1启动,这样验证是可行的,AM成功的从BLOCK1启动了。
所以我很疑惑。