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

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


wiki:somiq-am35-nand

Описание записи загрузчиков в NAND

На данной странице описаны действия, необходимые для автономной загрузки системы из NAND памяти.

Сначала необходимо подготовить SD карту для загрузки:

  1. Скопировать файл MLO на SD карту (как создать MLO файл)
  2. Скопировать u-boot.bin на SD карту (как создать u-boot.bin файл)
  3. Скопировать файл ядра uImage на SD карту (как создать uImage файл)
  4. Скопировать файл с файловой системой (например, rootfs.jffs2)
  5. Загрузится с SD карты (на Somiqboard удерживайте кнопку USER (S1) и нажмите RESET (S2))
  6. Когда загрузится u-boot выполните следующие команды

Карта памяти NAND

Пространство NAND распределено следующим образом:

Назначение Адресное пространство
x-loader 0x00000000 - 0x0007FFFF
u-boot 0x00080000 - 0x0023FFFF
u-boot Env 0x00240000 - 0x0027FFFF
ядро Linux 0x00280000 - 0x67FFFF
файловая система 0x680000 - до конца NAND

Инициализация SD/MMC и стирание NAND

Инициализация карты SD/MMC необходима, чтобы можно было считать с нее необходимые файлы.

mmc rescan

Перед записью в любую флеш память её необходимо сначала очистить, т.е. подготовить физически. Для этого используют специальные команды:

!Обратите внимание, что возможно вам не нужно стирать полностью содержимое всей флеш-памяти!

  • Полная очистка всего NAND чипа:
nand erase.chip
  • Очистка только определенных секторов (1 сектор = 128кБ = 0x20000)

в этом примере очистим 4 первых (смещение «0» в команде) сектора на чипе флеш памяти

nand erase 0 80000

Обратите внимание, что возможны сообщения, что первые блоки оказались помеченными bad. Это в принципе не возможно (гарантирует производитель микросхемы), поэтому чтобы действительно очистить сектора, помеченные как bad, выполните команду (на запрос нажмите «y»+Enter):

nand scrub 0 80000

Запись X-loader

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

Обратите внимание, что использована команда write.i - запись с пропуском bad-блоков.

Запись u-boot.bin

mw.b 0x81600000 0xFF 60000
nand erase 40000 100000 
fatload mmc 0 0x81600000 u-boot.bin 
nandecc sw 
nand write.i 0x81600000 80000 60000

Запись ядра

mw.b 81600000 0xFF 500000
fatload mmc 0 81600000 uImage
nand erase 160000 500000
nandecc sw
nand write.i 81600000 160000 500000

Запись файловой системы

в данном примере записывают файловую систему в формате jffs2, но может быть любая: FAT, EXT2 и т.п.

Чтобы создать образ файловой системы JFFS2 выполните команду:

sudo mkfs.jffs2 -lqn –e 128 -r target -o fs.jffs2

В данной команде:

  • target - директория где находятся файлы для файловой системы
  • fs.jffs2 - имя образа файловой системы

Обратите на размер стираемого пространства, т.к. объем флеш памяти может быть 128М, 256М и т.д. Тогда нужно очищать весь объем, предназначенный для записи.

fatload mmc 0 0x81600000 rootfs.jffs2     
nand erase 660000 3200000 
nandecc sw 
nand write.i 0x81600000 660000 FF0000

Проблемы

Что делать если вы записали в 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