По идее для этого есть специальный старший бит в регистре (SR7 -
маска 0x80) - признак Busy/Ready. Да, код его не проверяет, но
описание бита SR3 (маска 0x08) достаточно однозначное: SR3 = VPP STATUS (VPPS)
1 = VPP Low Detect, Operation Abort
0 = VPP OK
я представляю себе, что бита ошибки VPPS быть не должно.
AT49BV320D более быстрая, чем AT49BV320C (стирание сектора 100мс против 300мс), линукс-сборка для D родная.
Два запаянных чипа AT49BV320D повели себя одинаково.
Проблема наблюдается, если загружать и ядро 2.4 (родное для платы, с чипом AT49BV320С) и 2.6 (с платы-донора более новой ревизии с AT49BV320D).