У кого-нибудь получилось заставить модуль SK-iMX6S-OEM загружаться с NAND?
Если есть такие напишите пожалуйста как вы это сделали. Если возможно, то прямо пунктам что за чем и как делали.
ну вы даете, месяц почти прошел.. неужели самому не попробовать запилить? т.б. у вас есть положительные предпосылки:
т.е. у вас уже АРМ находит бутабельный бинарник и u-boot, далее юбут не находит ядро.
ищите, как проинициализировать и разбить нанд, потом туда складываете ядро и объясняете в скрипте юбута откуда тащить ядро. не забудьте поправить строку для ядра в части параметров разбиения нанда "mtdparts=bla-bla-bla"
ЗЫ немаловажно сначала убедиться, что в юбуте и ядре поднята работа с нандом (смотрите в соответствующих конфигах)
SK-iMX6S-OEM
Все под виртуалкой, скачал архив с первого поста, сконфигурировал как imx6sk_min_defconfig, через menuconfig изменил тип на OEM (по умолчанию Hola), поставил на сборку - не собралось (ругалось на отсутсвие какого то файла).
Изменил тип железа на Hola, пересобрал - ok
Изменил тип железа на OEM, пересобрал - ok
Выполнил скрипт uboot_rebuild.sh - ok
Залил образ на карту, запустился с нее на модуле - ok
Выполнил скрипт /root/root2nand.sh - ok
Модуль нормально грузится и работает.
Первый эксперимент был с модулем SK-iMX6S-OEM-Ind (1G SLC NAND), сейчас повторил на SK-iMX6S-OEM (1G MLC NAND) - проблем нет.
Или имеешь в виду влияние бедблоков на загрузочный раздел?
да - проблемы я словил на MLC на который были бэды - похоже убут портит таблицу бэдблоков MTD, хотя формально драйвер работает в режиме read-only. В качестве временного решения я урезал рутовый раздел - на моей плате (SK-IMX6Q) это помогло избавиться от проблемы + это сделано в перевую очередь чтобы уменьшить время монтирования корня.
---------- Start to write the [ .tmp_kobs_ng ]----
mtd: Writting .tmp_kobs_ng: #0 @0: 0x00400000 - 0x00466000
mtd: erasing @0:0x400000-0x500000
mtd: The last page is not full : 4096
mtd: We write one page for save guard. *
mtd: Writting .tmp_kobs_ng: #1 @0: 0x00a00000 - 0x00a66000
mtd: erasing @0:0xa00000-0xb00000
mtd: The last page is not full : 4096
mtd: We write one page for save guard. *
#
Вот так выглядит лог исполнения root2nand.sh при использовании образа из сообщения №14.
Ругается на отсутствие утилит для работы с ubifs.
Лог загрузки с NAND выложить не могу, т.к. плата не загружается.
Сейчас собираю заново свой минимальный образ с включенными в menuconfig утилитах ubifs.
При сборке по первому посту ругается на невозможность скопировать файл u-boot-nand.imx в несуществующую папку /output/target/boot
Лог выглядит так:
cp: cannot create regular file '/home/user/buildroot-2014.08-sk/output/target/boot/u-boot-nand.imx': No such file or directory
После создания этой папки вручную перезапуска make сборка продолжается. Как закончится отпишусь...
Спасибо за подсказку про скрипт uboot_rebuild.sh.
Результаты следующие:
Если компилировать с включенным пунктом ubifs, загрузка платы с карты зависает:
U-Boot 2014.04 (Feb 05 2015 - 10:41:20)
CPU: Freescale i.MX6SOLO rev1.1 at 792 MHz
CPU: Temperature 42 C, calibration data: 0x5b053b5f
Reset cause: POR
Board: SK-iMX6-OEM
DRAM: 512 MiB
NAND: 1024 MiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1
*** Warning - bad CRC, using default environment
Net: FEC
Normal Boot
Hit any key to stop autoboot: 0
UBI: attaching mtd1 to ubi0
UBI: physical eraseblock size: 1048576 bytes (1024 KiB)
UBI: logical eraseblock size: 1032192 bytes
UBI: smallest flash I/O unit: 8192
UBI: VID header offset: 8192 (aligned 8192)
UBI: data offset: 16384
UBI error: ubi_scan_add_used: two LEBs with same sequence number 4
UBI error: ubi_init: cannot attach mtd1
UBI error: ubi_init: UBI error: cannot initialize UBI, error -22
UBI init error 22
UBIFS error (pid 0): ubifs_get_sb: cannot open "ubi0:rootfs", error -19
UBIFS error (pid 0): ubifs_mount: Error reading superblock on volume 'ubi0:rootfs' errno=-19!
ubifsmount - mount UBIFS volume
Usage:
ubifsmount <volume-name>
- mount 'volume-name' volume
UBIFS not mounted, use ubifs mount to mount volume first!
ubifsload - load file from an UBIFS filesystem
Usage:
ubifsload <addr> <filename> [bytes]
- load file 'filename' to address 'addr'
UBIFS not mounted, use ubifs mount to mount volume first!
ubifsload - load file from an UBIFS filesystem
Usage:
ubifsload <addr> <filename> [bytes]
- load file 'filename' to address 'addr'
Kernel image @ 0x12000000 [ 0x000000 - 0x4531c0 ]
## Flattened Device Tree blob at 12800000
Booting using the fdt blob at 0x12800000
reserving fdt memory region: addr=12800000 size=b000
Using Device Tree in place at 12800000, end 1280dfff
Starting kernel ...
далее ничего не происходит!
Но, если отключить этот пункт, сделать make, а затем ОБЯЗАТЕЛЬНО выполнить uboot_rebuild.sh (чего я не знал), то плата начинает запускаться, как с SD карты, так и с NAND.
Sasamy, убедительная просьба добавить в сборку создание папки boot и дополнить описание в первом посте на счёт необходимости выполнения скрипта uboot_rebuild.sh, чтоб другим новичкам, вроде меня, было по-легче.
Заранее спасибо, буду прикручивать к модулю свой WF111.