Решили замутить тут систему на Cirrus (Arm9, 9301) и Flash(Samsung). Делюсь опытом.
Пройденные грабли:
1) Утилита download (версия 2007года) грузит по com порту 2048 байт стартового загрузчика в ethernet буфер arma и передает ему управление. Этот стартовый загрузчик грузит оставшуюся часть в ОЗУ. Следовательно, если дошли до этого этапа - с ОЗУ все тип-топ. После загрузки передает управление загруженной части в ОЗУ. Она проверяет наличие флэш. Появляется сообщение Program the nor FLASH. В нашем случае на этом жизнь останавливалась. Анализ исходников download выявяил следующее: какой-то циррусовский ламерюга в этом месте передергивает com порт на скорость 115200. Поэтому лезем в main.c и в main() и в самом начале функции коментим функцию SetBaud() и заодно enable_debugtimer().
2) Но жизнь все не налаживалась... Анализ исходников показал, что download заточена только под intel и AMD флэшки, никакого самсунга там не преполагалось. Так как голос разума подсказывает, что наша флэшка совместима с amd, делаем следующее: в файле amd.с меняем 3 на 4 в #define MAX_AMD_compatible, и в структуре под этим определением добавляем строчку {0x00EC,"samsung"}, где число носит смысл ManufactureID. После этого появился долгожданный процентный бегунок записи во флэш redboot.bin
3) Заметили неустойчивость в работе download - либо шьет как положено, либо вешается на Program the nor FLASH. повторный анализ исходников показал, что все тот же цируссовский ламерюга в download.c употребил такую конструкцию while((cChar=getChar(10))!=0){}. Смысл "10" тут наверно всем ясен (время ожидания), поэтому изменение его на "100" решает проблему.
Не пройденные грабли (это вопросы к участникам форума):
1) После прошивки redboot в флэш и старта - двойное мигание LED с интервалом около 2 сек. Игры с разными компиляциями redboot могут давать еще один случай, когда LED горит на постоянку, но при этом reset блокируется (т.е. спасает только передергивание питания). По com порту всегда тишина. Что за симптомы?