This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

SPL.backup有什么作用?



am335x linux-3.2.0的nand flash分区表中,SPL(MLO)一共占了四个分区,每个分区占一块,即

-----------------------------------------

SPL

SPL.backup1

SPL.backup2

SPL.backup3

-----------------------------------------

从名字来看,应该是MLO的多个备份。

 

一开始,我的理解是:如果第一份坏了,ROM Code会去取第二份,依次类推,这样有利于保证系统安全。

 

然后,我做了一些验证:

step1. 全部擦除,只写第一块,并改掉其中的某个位,系统无法启动,上电后串口无任何输出;

step2. 全部擦除,只写第四块,系统能正常启动;

step3. 全部擦除,四块都写上,但改掉第一块中的某个位,系统无法启动,上电后串口无任何输出;

step4. 全部擦除,只写第一块,并把它标记成坏块,系统无法启动,上电后串口无任何输出;

step5. 全部擦除,只写第一块和第四块,并把第一块标记成坏块,系统能正常启动。

这么看起来,好像是这么个逻辑:当前面的块是空的或者是坏块时,才会使用备份的MLO;而不是前面的MLO坏了,就去使用后面的。

如果是这样,那么这种设计只能用来兼容前三个块有可能被标记为坏块的Nand Flash,但一般厂商都要保证第一个块是好的,如果第一个块都坏了,通常也就不能用了。

 

以上只是我个人的理解,不知道对不对,请了解该问题的高人帮忙详细、完整地解答下,谢谢?