Dimentius 0 14 ноября, 2007 Опубликовано 14 ноября, 2007 · Жалоба Господа, помогите убогому. В наличии платка с AMCC 440Ep. На платке для отладки разведен JTAG(4 сигнала). Возможно ли записать/считать подсоединенную через EBC проца флешку через Wiggler? Если да, то какой программой? Сходу попробовал FlashProgrammer от "Macraigor", что-то не получилось.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gothard 0 30 ноября, 2007 Опубликовано 30 ноября, 2007 · Жалоба Тоже мучаем сейчас с AMCCшный 440 проц, правда PPC440EPx И как раз macraigorским FlashProgrammerом и по Wigglerу. Есть кит Sequoia и своя плата. кабель подключаем также - 4 стандартные сигнала На ките FlashProgrammer "вроде-бы" работает Работает и старая версия программера, где 440EPx не упоминается, но там выбираем 440Gx, правда иногда при записи во флэшку бывают ошибки Новой версией программера поначалу писать на ките не пробовали, только читали - вроде бы все было ок (использовали OCD файл под этот кит, который (файл) в месте с программером поставляется, да и с созданным "с нуля" тоже пробовали - работало). Но вот сегодня попробовали записать - чет проц не останавливается (бум разбираться) и даже не читается... но это кит... На нашей плате JTAG поначалу работал очень нестабильно (пытались приостановить проц - не всегда удавалось), причем после выполнения по JTAGу сброса проца, тот переставал останавливаться и вообще дальше вел себя неадекватно (проверяли macraigrosким OCD Commanderом - неплохая тулза) Нашли одно отличие платы от кита - на плате системный клок 40МГц, на ките 33МГц. Заменили на плате 40 на 33 МГц - JTAG заработал, но флэшпрограммер (новый, в котором есть этот проц) вылетал. Далее тюнили OCD файл под нашу платку (у нас память DDR, на ките DDR2) - прописали соответствующие регистры проца как надо - все равно вылетает. методом исключения определили что программер рушится при записи секции TLB - пришлось пока отключить, вроде как у проца по-умолчанию (после сброса) 4кбайтный кусок задан. Настроили тайминги на периферийной шине - флэш начала писаться, но вот только кусками по 1кбайта :(. Проблема врядли с адресами - прописываем по 1кбайту последовательно несколько блоков флэшки - читаем обратно - все блоки записаны как надо, но то что флэшпрограммер дает ошибку при записи больше 1кбайта не есть гуд... вот что-то фонтан пока иссяк, а 512кбайт писать по кбайту не радует... думаю, не в софте ли дело? (ведь мы новую версию программера на запись на ките так и не успели опробовать) Кто-нить сталкивался с подобным? P.S.: То что программер на ките запускался сразу объяснили - проц грузился из флэши (там то она уже прописана) и настраивал свои регистры как надо, в т.ч. TLB. Вырубили загрузку проца из флэшки и программер тоже начал вылетать, т.е. догадка верная. P.P.S: Старой версией программера на своей платке пока не писали - ща будем пробовать.... P.P.P.S: 2 Dimentius: Вроде бы Flashprogrammer и wiggler должны тебе помочь - может есть какие грабли как в нашем случае? (А у тебя с лицензией все ок? а то он без лицензии не пишет) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dimentius 0 2 декабря, 2007 Опубликовано 2 декабря, 2007 · Жалоба Отпишитесь по результатам Хорошо было бы, если работает.. а на счет лицензионности (шаркает ножкой), он как бы пропатчен.. на жадность Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gothard 0 6 декабря, 2007 Опубликовано 6 декабря, 2007 · Жалоба Что-то с флэшпрограммером пока глухо - надо срочно завершать работу, поэтому поступи следующим образом: программируем флэш при помощи Macraigor OCD Commander (он бесплатный) OCD Commander дает самые элементарные функции наладки проца по JTAGу - в общем практически отладчик. Все что нам надо - писать регистры проца, писать и читать область памяти - в проге это есть. А главное - там можно запустить макрос из последовательности комманд. Работаем все также по виглеру. В общем - создали макрос, который настраивает времянки внешней шины проца, область памяти подключенную к первому чипселекту (там где флэшка) и доступ к ней. у нас флэшка Spansion - программируется долго, поэтому в нашем случае еще надо настроить внешнюю шину на бесконечное ожидание Ready. После этого в макросе добавляем запись во флэшку (соблюдая ее протокол - т.е. запись одного слова состоит из четырех обращений - первые два - "разлочивание", третье - команда записи, четвертое запись самих данных по адресу). Нам пришлось еще добавить чтение одного слова после записи, а то проц на ready не смотрел (оно из флэшки появляется позже чем надо) - заодно получили контроль записи :) Для создания макроса написали программулину (ясен пень не руками ж его набирать) Для записи 3 секторов (загрузчик) получился 25 мегабайтный! макрос, выполнялся часов 5.... После того как исключили запись "FFFF" (флэшка NOR) и в макросе стали делать буферизованную запись во флэш - объем/время сократились до 3 мбайт/30 минут, так что уже более менее можно работать. Сейчас мучаем загрузчик - что-то там не так. Как только заработает - всю остальную флэшку из загрузчика прошьем по TFTP. Кстати - таким же образом можно и дамп флэшки делать (и работать дамп будет гораздо быстрее), правда надо еще log парсить :) ну это дело техники Интересно, что получилось халявно без нарушения лицензий :) (флэшпрограммер то у нас тоже "патченный" :)) если интересен пример скрипта - пишите в личку а в общем в нем всего две рабочих команды: DCR для записи Device Control Registers HALF для доступа к памяти (у нас шина 16-разрядная) К флэшпрограммеру может еще вернемся когда(если) время будет. Мы его пока только для стирания флэхи используем :) (макрос лень писать) 2 Dimentius: у нас проц PPC440EPx, но думаю с твоим тоже сработает как надо (тем более, что в OCD Commandere PPC440EPx нет в списке поддерживаемых процов, так что брали PPC440GX и все арбайтен. А твой там есть) Удачи Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dimentius 0 21 июля, 2008 Опубликовано 21 июля, 2008 · Жалоба Пришлось на прошлой неделе вернуться к этому вопросу. Скачал новый "Flash Programmer" и "OCD Commander". Как здесь уже писали, при работе с wiggler-ом проблемы у "Flash Programmer-а" в постоянном срыве из режима отладки в "running" и ограничении в 1024 байта при записи. Пришлось от него отказаться. "OCD Commander" повел себя более достойно и адекватно. Правда перспектива заливать "U-Boot" десятками минут немного расстраивала. Поэтому решил поступить по другому: Написал на асме маленькую программу в линейном коде без всяких вызовов, которая перекладывает данные из одной области памяти в другую, согласно протоколу работы с NOR-flash 28F128J3 от "Intel"(эта память стоит на моей плате). Подготовил "U-Boot" для моей платки(размер составил 2 сектора флешки). Преобразовал оба файла в формат s-records с адресами в Ram ("U-Boot" - 0x01000000, программки - 0x01060000), выгрузил через "OCD Commander" и запустил код по переносу данных. В результате программирование "U-Boot" составило около 30 сек. Думаю, что подобным образом можно сделать на любой платформе. Прикрепляю свой код для примера. Всем удачи. uboot_bootloader.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gothard 0 23 июля, 2008 Опубликовано 23 июля, 2008 · Жалоба Очень хорошее развитие идеи :), особенно с подробным примером :a14: У нас пока больше 2-х плат не было :( - так что вопрос о скорости пока даже не возникал Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться