Kernel 和 U-Boot 上的 NAND 坏块搜索策略

NAND bad block search policy on Kernel and U-Boot

我查看了内核和 U-boot 代码,发现 U-Boot 仅检查擦除块前两页中的坏块标记。甚至还有一个标志 NAND_BBT_SCANALLPAGES,但它不是默认选项(至少在我使用的版本上)。

为什么会有这样的选项?在一个块中搜索每个页面不是更好(也更安全)吗?

此致, 吉尔赫姆

Most NAND chips mark the bad blocks at a defined position in the spare area.

由于整个块都被标记为坏块而不是特定页面,因此只要在块的前 2 页中正确维护坏块标记,扫描前 2 页中的坏块标记就足够了按照惯例。 (而不是 I/O 失败的页面。)

因此,可以通过存储坏块标记并在块的第1页或第2页的备用区域中扫描来确定每次访问块时的坏块标记。

This is a design convention to speed-up the activity of determining whether a block is bad.