По теме не подскажу, к сожалению. Т.к. сам ещё не распаял новую флешку. Есть только пара вопросов:
1. Зачем резистор?
2. CFE прошилось чем?
Перед перепайкой флешки решил проверить чтение-запись через JTAG. С чтением всё отлично, а вот запись... Процесс идёт нормально, tjtag рапортует что всё ок, но никаких изменений на флешке нет. Для проверки делаю дамп, меняю пару байтиков, заливаю, снова делаю дамп, сравниваю с тем что заливал и... не совпадает, скотина. Оказывается точь в точь как исходный... Что за нафиг такой?
Может кто-нибудь подсказать, что за 4 вывода с маркировкой jp1 на плате?
вот на этой картинке:
http://www.shadowandy.net/wp/wp-content/uploads/dir320_serial.jpg
Картинка взята с этой страницы, там написано, что это некий консольный кабель...
Можно по-подробнее, что это, и какая от него может быть польза?
2. Паяем Jtag Cabel. Схемы и описания находятся по ссылке
http://oldwiki.openwrt.org/OpenWrtDocs(2f)Customizing(2f)Hardware(2f)JTAG_Cable.html
я собирал Buffered Cable, Wiggler.
4.Программа для записи-чтения Flash через JTAG специально для DIR-320
на этой странице:
http://www.dd-wrt.com/phpBB2/viewtopic.php?p=332308#332308
(так как 47 вывод Flash(Selects 8-bit or 16-bit mode) "сидит" на земле - Flash у DIR-320 в режиме "byte mode" -
программа Tjtagv3.0.1 с DIR-320 не работает.)
Изначально на плате DIR-320 установлена 4МВ Flash S29AL032D90TFI03
Согласно DataSheet'у, это 4 M x 8-Bit/2 M x 16-Bit Boot Sector
исполнение 03, что означает:
03 = x8/x16, VCC = 2.7 V to 3.6 V, Top boot sector device, top two address
sectors protected when WP#/ACC = VIL
Для замены была подобрана Flash, ёмкостью 8МВ, boot sector model, тоже 03-го исполнения - S29GL064A90TFIR30.
Процесс:
5. Отпаиваем старую Flash и запаиваем новую, 8MB.(S29GL064A90TFIR30)
6. Устанавливаем резистор-перемычку R7=0 Ом типоразмер 0402
Резистор нужен для того, чтобы задействовать адрес А21 ( для адресации 8-ми МВ)
7. Подключаем к роутеру Jtag Cabel и программой (см.п.4) прошиваем сохранённую CFE (см.п.1)
команда записи CFE:
-flash:cfe /wiggler /noreset /fc:79
После выполнения каждой команды выключением-включением питания роутера производился "RESET".
Подразумевается что сериал-консоль уже у вас есть :
1. Подключаем консоль к компьтеру - пусть это COM1
2. Открываем какую-нибудь терминальную софтину - я лично пользуюсь putty, настройки COM1, 115200
3. Включаем питание роутера и видим в терминале начало загрузки. Жмём Ctrl-C пока не выпадем в меню CFE. На экране видим :
CFE>
4. Даём комманду :
flash -noheader : flash1.trx
Данная комманда переводит роутер в режим TFTP receptive , т.е. после этого он примет от нас по tftp всё что мы ему подсунем.
5. В cmd Винды даём комманду :
tftp -i 192.168.0.1 put c:\bin\firmware.bin
6. Всё! Роутер прошился !
7. c:\bin\firmware.bin - указываем путь к своему файлу, расширение не обязательно должно быть .bin - указываем всё своё.
Для общего развития - описание CFE(встроенные команды и пр.) http://melbourne.wireless.org.au/files/wrt54/cfe.pdf
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
P.S. Всё выше сказанное было проделано из чистого любопытства, как говорится, потому что "руки чесались".
Из всего того дополнительного функционала, который предлагается на прошивке DD-WRT, я ПОКА использую только VoIP.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Изменения:
05.12.09 - поправлены ссылки, добавлены новые ссылки на описания работы с программой TJTAG, добавлен раздел "Выбор 8МВ Flash", примеры команд записи CFE и kernel.
12.12.09 - изменен процесс заливки MEGA-прошивки (теперь он занимает не 10,5 часов, а всего 20 минут), добавлены ссылки на описания увеличения RAM.
19.12.09 - добавлен ещё один способ заливки MEGA-прошивки - "с использованием SERIAL-консоли"(время заливки ~4...6 мин.)
Last edited by samko12 on Sat Dec 19, 2009 13:38; edited 5 times in total
А у меня до сих пор что-то не складывается с установкой более ёмкой флеш, взываю к помощи :)
samko12 wrote:
4.Программа для записи-чтения Flash через JTAG специально для DIR-320
Отдельное спасибо за этот пункт, через pjtag родная флеш наконец-то удалось записывать. А вот новая... Ставил M29W640FT, судя по даташиту и распиновка и команды те же самые, 1 в 1. Читаться вроде читается (естественно везде 0xFF, т.к. пустая), а с записью снова болт
Уже и в пошаговом режиме через дебаггер прогонял, ничего не выходит. После записи, контрольное чтение снова возвращает 0xFF и цикл стопорится. Параметры для флеш указал вроде корректные из даташита (127x64K, 8x8K), а не пашет ни в какую.
А с какими ключами удалось записать новую флеш, и какой тип из /fc:xx подошёл? В базе вроде нету таких vendid & devid...
samko12 wrote:
Призываю уважаемое сообщество найти тот заветный байт в CFE DIR-320 или код,
который "скажет" роутеру, что теперь на борту 8МВ,
и позволит быстро по TFTP заливать MEGA-прошивки.
Тут никаких умных мыслей нет, кроме как найти в CFE все значения вида 0x400000 (типа объём флешки, байты 00 00 40) или 0x3F0000 (конечная область раздела linux, что более вероятно, байты 00 00 3F) и тупо их заменить на соответствующие новым реалиям, один за другим. Потом после загрузки мониторить dmesg на предмет правильных сообщений о разметке разделов :)
Кстати, хотелось бы увидеть ваш dmesg, если не затруднит.
Ну вот я тож спаял себе 64 метра на DIR-320 ( Паяльник держал в первый раз вышло долго да еще блин под одной ногой от платы контакт отклеился но справился )
Память пошла такая Blitz BLD9616A8A-5CG
Спасибо Вам за внимание! На основании Ваших вопросов было дополнено основное сообщение.
Проверьте, пожалуйста, свою Flash по DataSheet'у - она, IMHO, должна быть
"x8/x16, VCC = 2.7 V to 3.6 V, Top boot sector device, top two address
sectors protected when WP#/ACC = VIL"
Ещё проверьте монтаж на предмет непропаев или замыканий.
Применял /fc:79 по аналогии. В программе это S29GL064М TopВ (8М) <Top boot sector>
S29GL064М - это полный аналог S29GL064A, только выполненный по 0.23 μm MirrorBit Process Technology,
согласно DataSheet'у:
"This product has been retired and is not recommended for designs. For new and current designs,
S29GL064A supersedes S29GL064M, and is the factory-recommended migration path."
Поэтому я и устанавливал S29AL064А.
Проверьте, пожалуйста, свою Flash по DataSheet'у - она, IMHO, должна быть
"x8/x16, VCC = 2.7 V to 3.6 V, Top boot sector device, top two address
sectors protected when WP#/ACC = VIL"
Ещё проверьте монтаж на предмет непропаев или замыканий.
Спасибо за ответ и уточнение! Flash соответствует, с монтажем тоже всё ок - перепаивал раз 5 туда-обратно (наловчился зато, теперь процесс не занимает много времени ).
samko12 wrote:
Применял /fc:79 по аналогии. В программе это S29GL064М TopВ (8М) <Top boot sector>
S29GL064М - это полный аналог S29GL064A, только выполненный по 0.23 μm MirrorBit Process Technology,
согласно DataSheet'у:
"This product has been retired and is not recommended for designs. For new and current designs,
S29GL064A supersedes S29GL064M, and is the factory-recommended migration path."
Поэтому я и устанавливал S29AL064А.
По этому пункту уточню, благо опыт уже есть
S29GL064M является полныи аналогом, кроме моделей R6, R7 (S29GL064M90TFIR70, например, не подойдёт). Уточнение кмк важное, ибо везде навалом как раз 7-й модели. 3-я как у вас, редкость. Кстати, где брали свою flash?
samko12 wrote:
В приложенни, как Вы просили, мой dmesg.
Удачи!
Уверен, у Вас всё получится!
Спасибо, надеюсь
Судя по dmesg'у flash распознана правильно. Даже не знаю где тут ещё могут быть проблемы... Не пробовали ещё раз через tftp шить, уже после прошивки JTAG'ом?
2. Паяем Jtag Cabel. Схемы и описания находятся по ссылке
http://oldwiki.openwrt.org/OpenWrtDocs(2f)Customizing(2f)Hardware(2f)JTAG_Cable.html
я собирал Buffered Cable, Wiggler.
Может быть все и так знают, но на всякий случай повторю - этот тип кабеля работает только в режиме nodma, а это значит что...
samko12 wrote:
-flash:kernel /wiggler /noreset /fc:79
Внимание!!! Эта процедура очень длительная ~10,5 часов.
...процедура будет действительно длительной. unbuffered cable на 4-х резисторах работает через dma. И та же процедура займёт в 15-20 раз МЕНЬШЕ времени.
Ключ /wiggler в этом случае потребуется исключить.
2. Паяем Jtag Cabel. Схемы и описания находятся по ссылке
http://oldwiki.openwrt.org/OpenWrtDocs(2f)Customizing(2f)Hardware(2f)JTAG_Cable.html
я собирал Buffered Cable, Wiggler.
Может быть все и так знают, но на всякий случай повторю - этот тип кабеля работает только в режиме nodma, а это значит что...
samko12 wrote:
-flash:kernel /wiggler /noreset /fc:79
Внимание!!! Эта процедура очень длительная ~10,5 часов.
...процедура будет действительно длительной. unbuffered cable на 4-х резисторах работает через dma. И та же процедура займёт в 15-20 раз МЕНЬШЕ времени.
Ключ /wiggler в этом случае потребуется исключить.
ерунда, проверенно что с dma что без шьется одинакового долго... быстро работает только через USB готовый кабелек стоит до 50$
ерунда, проверенно что с dma что без шьется одинакового долго...
Да ну?
По моим наблюдениям разница примерно та, что указал выше. Заливка Kernel с DMA заняла около 20мин, против 10,5ч у ув. samko12. Правда размер Kernel в моём случае был в 2 раза меньше...
Но проведя ряд нехитрых арифметических операций выйдем на заявленные значения разности.