Не редко задают вопрос: "почему при загрузке Linux проскакивает сообщение о Bad bock".
Это относится к природе NAND flash, которая разбита на блоки, а блоки на страницы, чтение-запись осуществляется страницами, а стирается блоками (отвлекся).
Bad block, это блок, который в результате очистки выдал ошибку и был помечен (в запасной области) как не пригодный для использования.
Сам производитель гарантирует лишь максимальное количество плохих блоков на новом чипе (по моему 1%, зависит от флешки) и количество которых будет потихоньку увеличиваться, ничего страшного в этом нет, следит за этим драйвер.
Есть один момент - по какой-то причине ядро может посчитать хороший блок плохим и его штатными средствами уже не очистить после этого, только после правки драйвера и утилит mtd.
Досадно, пришла новая партия NAND чипов, бедов в которых явно больше чем в предыдущих партиях, хотя, количество бедов в пределах нормы, но теперь они не редко попадают в первую сотню блоков от чего система уже не грузится , монтажница уже "посинела" на каждой плате по два раза чип NAND менять (а я с ужасом наблюдаю кучку NAND чипов, что делать с которыми пока не знаю) ...
Причем SAM-BA правильно детектирует при записи и говорит, чтопропускает блок, а вот u-boot уже видимо маркировку блоков игнорирует, надо на 1.3.4 испытать.
Поставщик здесь не виноват, в принципе и производитель тоже, в доке оговаривается максимальное количество бедов на новых чипах - 40 штук, текущие количества на моих чипах явно в норме ...
Попробовал с u-boot 1.3.4, та же ерунда, при стирании говорит что обнаружил бед блок, при записи молчит, на чтении получается ошибка ...
Я тем неменее настаиваю испробовать nand erase clean :)
Что еще подозрительно - ничего не выводит про ошибки чтения - если он пытается прочитать испорченый непомеченый блок - судя по исходникам полюбому должен вывести ошибку - наталкивает на мысль что ошибка не связана с бэдами.