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

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


wiki:usomiq-am437x-ezsdk

Различия

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

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
wiki:usomiq-am437x-ezsdk [2023/06/16 12:04] admin77wiki:usomiq-am437x-ezsdk [2023/06/16 14:42] (текущий) – [Автономный старт с NAND] admin77
Строка 195: Строка 195:
 sudo tar xf tisdk-rootfs-image-am437x-evm.tar.xz -C /media/rootfs sudo tar xf tisdk-rootfs-image-am437x-evm.tar.xz -C /media/rootfs
 </code> </code>
-==== Запись загрузчиков на карту ====+===== Запись загрузчиков на карту =====
 === Запись u-boot на карту === === Запись u-boot на карту ===
 Заходим в директорию u-boot 'u-boot-2018.01+gitAUTOINC+313dcd69c2-g313dcd69c2', далее выполняем команды: Заходим в директорию u-boot 'u-boot-2018.01+gitAUTOINC+313dcd69c2-g313dcd69c2', далее выполняем команды:
Строка 213: Строка 213:
 sudo umount /dev/sdc1 /dev/sdc2 sudo umount /dev/sdc1 /dev/sdc2
 </code> </code>
-Теперь карту можно извлечь из ПК и загружать с нее модуль uSomIQ AM437x. Загрузка происходит автоматически без дополнительных действий. +Теперь карту можно извлечь из ПК и загружать с нее модуль uSomIQ AM437x. Загрузка происходит автоматически без дополнительных действий. Логин для входа в Linux - root без пароля 
-==== Автономный старт с NAND ====+===== Автономный старт с NAND =====
 === Запись загрузчика u-boot === === Запись загрузчика u-boot ===
 +Запишем идентификатор платы в EEPROM, установленную на плате модуля. Этот шаг необязателен, потому что данная версия u-boot игнорирует пустой или отсутствующий EEPROM, но, всё же, будет выполнять разный сценарий загрузки в зависимости от разных идентификаторов платы.
 +<code>
 +=> run eeprom_dump
 +Setting bus to 0
 +0000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
 +0010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
 +</code>
 +Видно, что память EEPROM чистая, если модуль предварительно не прошивали. Запишем идентификатор и посмотрим на изменения:
 +<code>
 +=> run eeprom_usomiq
 +=> run eeprom_dump
 +Setting bus to 0
 +0000: aa 55 33 ee 41 4d 34 33 55 53 4f 4d ff ff ff ff    .U3.AM43USOM....
 +0010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
 +</code>
 +Теперь это однозначно uSomIQ AM437x.\\
 +Смотрим какие разделы присутствуют на флеш NAND:
 +<code>
 +=> mtd
 +
 +device nand0 <nand.0>, # parts = 10
 + #: name                size            offset          mask_flags
 + 0: NAND.SPL            0x00040000      0x00000000      0
 + 1: NAND.SPL.backup1    0x00040000      0x00040000      0
 + 2: NAND.SPL.backup2    0x00040000      0x00080000      0
 + 3: NAND.SPL.backup3    0x00040000      0x000c0000      0
 + 4: NAND.u-boot-spl-os  0x00080000      0x00100000      0
 + 5: NAND.u-boot         0x00100000      0x00180000      0
 + 6: NAND.u-boot-env     0x00040000      0x00280000      0
 + 7: NAND.u-boot-env.backup10x00040000   0x002c0000      0
 + 8: NAND.kernel         0x00700000      0x00300000      0
 + 9: NAND.file-system    0x1f600000      0x00a00000      0
 +
 +active partition: nand0,0 - (NAND.SPL) 0x00040000 @ 0x00000000
 +
 +defaults:
 +mtdids  : nand0=nand.0
 +mtdparts: mtdparts=nand.0:256k(NAND.SPL),256k(NAND.SPL.backup1),256k(NAND.SPL.backup2),256k(NAND.SPL.backup3),512k(NAND.u-boot-spl-os),1m(NAND.u-boot),256k(NAND.u-boot-env),256k(NAND.u-boot-env.backup1),7m(NAND.kernel),-(NAND.file-system)
 +</code>
 +На всякий случай стираем флеш:
 +<code>
 +=> nand erase.chip
 +
 +NAND erase.chip: device 0 whole chip
 +Erasing at 0x1ffe0000 -- 100% complete.
 +OK
 +</code>
 +В ходе выполнения стирания могут появляться сообщения о "плохих" блоках. Это особенность NAND флеш и ничего страшного нет, блоки будут помечены как плохие и это никак не повлияет на работу устройства в будущем.
 +<code>
 +mmc rescan
 +load mmc 0 ${loadaddr} MLO
 +nand write ${loadaddr} NAND.SPL
 +nand write ${loadaddr} NAND.SPL.backup1
 +</code>
 +Запись файла u-boot.img
 +<code>
 +load mmc 0 ${loadaddr} u-boot.img
 +nand write ${loadaddr} NAND.u-boot
 +</code>
 +Запись dtb файла
 +<code>
 +setenv devtype mmc
 +run findfdt
 +run loadfdt
 +nand write ${fdtaddr} NAND.u-boot-spl-os
 +</code>
 +Запись файла ядра
 +<code>
 +run loadimage
 +nand write ${loadaddr} NAND.kernel
 +</code>
 +=== Запись файловой системы ===
 +//Предварительно надо взять готовый образ файловой системы из архива am437x-evm-linux-sdk-bin-05.02.00.10, например, маленький образ 'arago-tiny-image-am437x-evm.tar.xz', чтобы он точно уместился во флеш памяти.//
 +
 +
 +теперь набираем команду 'boot' и загружаемся в Linux. Список разделов на флеш памяти можно посмотреть с помощью команды mtdinfo:
 +<code>
 +root@am437x-usomiq:~# mtdinfo
 +Count of MTD devices:           10
 +Present MTD devices:            mtd0, mtd1, mtd2, mtd3, mtd4, mtd5, mtd6, mtd7, mtd8, mtd9
 +Sysfs interface supported:      yes
 +</code>
 +Видим, что последний раздел **mtd9** - это именно раздел под файловую систему. Теперь, с помощью ubiutils создаем файловую систему на флеш памяти:
 +<code>
 +ubiformat /dev/mtd9 -s 2048 -O 2048
 +ubiattach /dev/ubi_ctrl -m 9 -O 2048
 +ubimkvol /dev/ubi0 -s 450MiB -N rootfs
 +mount -t ubifs ubi0:rootfs /mnt
 +</code>
 +Директория '/mnt' теперь это отформатированный раздел на флеш памяти NAND. Теперь запишем файловую систему, которую предварительно записали на SD карту в домашнюю директорию пользователя 'root':
 +<code>
 +cd /mnt
 +tar xf ~/arago-tiny-image-am437x-evm.tar.xz
 +</code>
 +Теперь можно набрать команду reboot или poweroff, извлечь карту и загружаться непосредственно с модуля без внешнего накопителя.
 +
wiki/usomiq-am437x-ezsdk.txt · Последнее изменение: 2023/06/16 14:42 — admin77