Процесс загрузки аналогичен плате SK-MAT91SAM9XE512.
1) Запустите SAM-BA, подключитесь к плате (возможно, потребуется разомкнуть J7), перейдите на закладку DataFlash (замкнте J7), сперва выполните скрипт "Enable DataFlash on CS0"
2) Загрузите первый загрузчик (SK-AT91SAM9XE512-S3EBootBootstrap-v1.6.rarBootstrap-v1.6oardat91sam9260ekdataflashdataflash_at91sam9260ek.bin) с помощью скрипта "Send Boot File", сам-ба сама положит его по 0 алресу и пересчетает и подставит размер загрузчика по вектору прерывания.
3) Загрузите u-boot, через меню "Send File Name" выберете файл SK-AT91SAM9XE512-S3EBootBootstrap-v1.6.rarBootstrap-v1.6oardat91sam9260ekdataflashu-boot.bin, укажите адрес для загрузки 0x8000, после нажмите кнопку "Send File", сам-ба немного "призадумается" после чего процес обновления загрузчиков завершен.
Перезагрузите систему, заботиться об адресах загрузки ядра и корневой ФС вам не прийдется, просто выполнте скрипт "run tftp_update" (предварительно подключив сетевой кабель и запустив виртуальную машину, т.к. плата будет пытаться скачать образы с TFTP сервера виртуальной машины) после чего и ядро и корневая ФС будут находиться на своих местах.
Пробую сохранить содержимое DataFlash, ежели сдуру потом убью. Запускаю SAM-BA, размыкаю J7. Выбираю вкладку DataFlash, ставлю нач.адрес 0х0, размер 0x3fffff. Замыкаю J7, выполняю Enable DataFlash on CS0. Потом делаю Receive file, оно создает файл в 36 байт с 0123.. и т.д. Что я забыл сделать, подскажите плз?
И еще: флэшка выполняет роль BIOS (Bootstrap) и HDD (U-boot + Linux kernel). Как я понял, все это хранится в DD6 DataFlash емкостью 4 MB, и почти вся она забита. А для чего служит DD6 NANDFlash (64 MB?) и чем он по сути отличается от DataFlash? По схеме загрузка сначала производится из SPI DataFlash и затем, если неудача, из NANDFlash. На плате она хранит что-либо или оставлена как резерв?
1) Не страшно, если все затрете, все бинарники на диске есть.
Сейчас повторил процедуру чтения, без проблем (правда, размер 0x3fffff ее не устроил, 400000 считался и после успешно верифицировался).
2) Фокус в том, что чипы A ревизии еще содержат баг загрузки из NAND Flash, хотя на тех платах, что я проверял, bootstrap грузился нормально ...
NAND Flash на плате имеет емкость 256МБайт, к тому же и операции с ней быстрее происходят - шина 8 Бит.
Если в Вашем случае bootstrap грузится из NAND Flash стабильно, Вы так же можете использовать ее для загрузчиков.
Разобрался, опять невнимательность виновата. Надо было вытащить J7 ДО подачи питания. Тогда все работает. Ошибки начинающих надо будет в раздел будущего ФАКа включить .
Слил полный образ из DataFlash, решил поиграться с NANDFlash. В Сам-бе на закладке NANDFlash выбрал скачанный bin-файл и нажал Send file с адреса 0х0. Потом перегружаю плату без J7 - выдается строчка о версии U-boot, потом 2 строки про DRAM и NAND, и далее тишина. Или надо лить bin-файл через упоминаемый скрипт 'Send boot file' в САМ-БЕ? А я такого не нашел (если это tcl-файл), есть только в libAT91SAM9260-EK файл "NANDFLASH.tcl". Или бинарник один-в-один лить нельзя, а надо производить процедуру по шагам аналогично вышеописанной, только на вкладке NANDFlash? А то я слегка начинаю путаться.
По идее, можно этот NAND монтировать как записываемый накопитель и хранить там всякий побочный софт типа Midnight Commander, если переписать initrd и перекомпилить ядро?
Bootstrap сконфигурирован на использование DataFlash, просто копированием бинарников (хоть целиком хоть частями) систему не поднять, нужно разбираться с bootstrap, надо подредактировать хидер в папке nandflash и пересобрать сам bootstrap, там же указываются адрес куда u-boot ложить ...
Копался с бутстрапом, а именно с хедером платы в папке dataflash, возник вопрос. С какой целью было изменено значение переменной JUMP_ADDR на 0x21D00000? Что мешает грузить U-Boot по адресу 0x20000000?
Не совсем понял. Изначально стояло значение 0x23F00000, Вы заменили его на 0x21D00000. Насколько я понимаю, участок 0x20000000-0x21D00000 вообще не используется при загрузке?
Первоначально, bootstrap был адаптирован под SK-MAT91SAM9XE512, у которой всего 32М SDRAM, ну а когда видоизменил его под SK-AT91SAM9XE512-S3E менять адрес загрузчика не стал.
Да, взгляните на адреса в u-boot скриптах, все образы складываются в этом диапазоне.