Инструменты пользователя

Инструменты сайта


wiki:somiq-am35-nand
no way to compare when less than two revisions

Различия

Показаны различия между двумя версиями страницы.


Предыдущая версия
Последняя версия
wiki:somiq-am35-nand [2014/01/10 13:45] – [Карта памяти NAND] maxx
Строка 1: Строка 1:
 +====== Описание записи загрузчиков в NAND ======
 +На данной странице описаны действия, необходимые для автономной загрузки системы из NAND памяти.
 +
 +Сначала необходимо подготовить SD карту для загрузки:
 +  - [[somiq-am35-sd|Подготовить SD карту для загрузки SomIQ-AM35]]
 +  - Скопировать файл MLO на SD карту ([[somiq-am35-fw|как создать MLO файл]])
 +  - Скопировать u-boot.bin на SD карту ([[somiq-am35-fw|как создать u-boot.bin файл]])
 +  - Скопировать файл ядра uImage на SD карту ([[somiq-am35-kernel|как создать uImage файл]])
 +  - Скопировать файл с файловой системой (например, rootfs.jffs2)
 +  - Загрузится с SD карты (на [[Somiqboard]] удерживайте кнопку USER (S1) и нажмите RESET (S2))
 +  - Когда загрузится u-boot выполните следующие команды
 +
 +===== Карта памяти NAND =====
 +Пространство NAND распределено следующим образом:
 +^ Назначение ^ Адресное пространство ^
 +| x-loader | 0x00000000 - 0x0007FFFF |
 +| u-boot | 0x00080000 - 0x0023FFFF |
 +| u-boot Env | 0x00240000 - 0x0027FFFF |
 +| ядро Linux | 0x00280000 - 0x680000 |
 +| файловая система | 0x680000 - до конца NAND |
 +
 +===== Инициализация SD/MMC и стирание NAND =====
 +Инициализация карты SD/MMC необходима, чтобы можно было считать с нее необходимые файлы.
 +<code>
 +mmc rescan
 +</code>
 +Перед записью в любую флеш память её необходимо сначала очистить, т.е. подготовить физически. Для этого используют специальные команды:
 +
 +**!Обратите внимание, что возможно вам не нужно стирать полностью содержимое всей флеш-памяти!**
 +
 +  * Полная очистка всего NAND чипа:
 +<code>
 +nand erase.chip
 +</code>
 +  * Очистка только определенных секторов (1 сектор = 128кБ = 0x20000)
 +
 +в этом примере очистим 4 первых (смещение "0" в команде) сектора на чипе флеш памяти
 +<code>
 +nand erase 0 80000
 +</code>
 +Обратите внимание, что возможны сообщения, что первые блоки оказались помеченными **bad**. Это в принципе не возможно (гарантирует производитель микросхемы), поэтому чтобы действительно очистить сектора, помеченные как bad, выполните команду (на запрос нажмите "y"+Enter):
 +<code>
 +nand scrub 0 80000
 +</code>
 +
 +===== Запись X-loader =====
 +<code>
 +mw.b 81600000 0xFF 60000
 +nand erase 0 60000
 +fatload mmc 0 0x81600000 MLO
 +cp.b 0x81600000 0x81620000 20000
 +cp.b 0x81600000 0x81640000 20000
 +nandecc hw 
 +nand write.i 0x81600000 0 60000
 +</code>
 +Обратите внимание, что использована команда write.**i** - запись с пропуском bad-блоков.
 +
 +===== Запись u-boot.bin =====
 +<code>
 +mw.b 0x81600000 0xFF 60000
 +nand erase 40000 100000 
 +fatload mmc 0 0x81600000 u-boot.bin 
 +nandecc sw 
 +nand write.i 0x81600000 80000 60000
 +</code>
 +
 +===== Запись ядра =====
 +<code>
 +mw.b 81600000 0xFF 500000
 +fatload mmc 0 81600000 uImage
 +nand erase 160000 500000
 +nandecc sw
 +nand write.i 81600000 160000 500000
 +</code>
 +
 +===== Запись файловой системы =====
 +в данном примере записывают файловую систему в формате jffs2, но может быть любая: FAT, EXT2 и т.п.
 +
 +Чтобы создать образ файловой системы JFFS2 выполните команду:
 +<code>
 +sudo mkfs.jffs2 -lqn –e 128 -r target -o fs.jffs2
 +</code>
 +В данной команде:
 +  * target - директория где находятся файлы для файловой системы
 +  * fs.jffs2 - имя образа файловой системы
 +
 +//Обратите на размер стираемого пространства, т.к. объем флеш памяти может быть 128М, 256М и т.д. Тогда нужно очищать весь объем, предназначенный для записи.//
 +
 +<code>
 +fatload mmc 0 0x81600000 rootfs.jffs2     
 +nand erase 660000 3200000 
 +nandecc sw 
 +nand write.i 0x81600000 660000 FF0000
 +</code>
 +===== Проблемы =====
 +Что делать если вы записали в NAND неверные данные, испортили память и теперь модуль не грузится? Для восстановления нормальной работы вам потребуется загрузочная SD карта. 
 +
 +Нажмите кнопку USER (S1 на Somiqboard v2) и удерживая её нажмите кнопку RESET (S2 на Somiqboard v2), отпустите RESET, но удерживайте USER. Модуль загрузится с SD и далее вы можете реанимировать NAND флеш.
  
wiki/somiq-am35-nand.txt · Последнее изменение: 2014/01/10 13:45 — maxx