Для загрузки с sd/mmc джампики в таком положении:
J6,7,8 - замкнуты, J9 разомкнут.
Для загрузки с sd/mmc нужно обязательно прошить OTP биты - на оригинальной EVK они зашиты производителем, иначе выдаст ошибку:
Для этого есть утилита BitBurner.v1.0.4.6.zip где-то на сайте фрискейла, если лень искать можно взять тут http://sasamy.narod.ru/BitBurner.v1.0.4.6.zip Там все предельно понятно - плата должна быть переведена в режим загрузки с usb (J6 - замкнут , J7,8,9 - разомкнуты).
Для создания загрузочного диска sd/mmc можно воспользоваться этим скриптом - только я за сохранность ваших данных отвественности не несу :)
Необходимый 1 параметр - наименование диска, например /dev/mmcblk0 или /dev/sdb - зависит от типа картридера, если нет других параметров - только создаст новую таблицу с 2-мя разделами. Если есть второй параметр - скрипт посчитает его наименованием имиджа .sb и если такой существует запишет его в первый раздел. Если есть третий параметр - то кроме всего прочего создаст ФС с таким именем на втором разделе. Пример:
#./part /dev/sdb linux.sb ext2
создаст 2 раздела в соответствии с требованиями загрузчика imx233: первый раздел 16М - запишет туда загрузочный образ ядра, второй раздел - с файловой системой ext2.
#./part /dev/sdb uboot.sb
создаст разделы, в первый раздел запишет образ uboot.
#./part /dev/mmcblk0
просто создаст разделы на mmc (sd)
Настоятельно рекомендую не путать название диска - если такой существует там будут удалены все данные.
Так же, можно проделать все это на самой плате.
Для начала нужно изменить конфиг OTP одного из регистров. С помошью утилиты BitBurner соединяемся с платтой через USB (перебирая устройства пока слева не появится список регистров), потом настраиваем биты в соответствии:
В противном случае, грузиться с SD/MMC контроллер не будет, не смотря на положение загрузочных джамперов (J6-J8 замкнуты, J9 разомкнут).
Возможны два варианта загрузки:
1) Загружаемся с SD, корневая ФС остается в initramfs (т.е. в памяти), SD карточку монтируем как внешний съемный накопитель
2) Загружаемся с SD, корневая расположена на самой SD карте
Теоретически, для первого варианта, можно, создав два раздела, второй отформатировать под FAT и пользоваться картой как раньше (хотя, как к этому отнесутся всевозможные фотоаппараты и плееры ...).
Первым делом потребуется загрузить систему с драйвером SD/MMC, так же потребуется включить в коневую ФС sfdisk (в Buildroot) и mkfs_ext2 (в Busybox). Я немного изменил скрипт создания разделов (не очень изящно, но у нас не конкурс красоты ):
Во вложении образ ядра и корневой ФС (включая sfdisk и mkfs.ext2) с этим скриптом.
После успешной загрузки, необходимо подготовить ядро ориентированное на использование в качестве rootfs самой SD/MMC, для для этого достаточно изменить аргументы запуска ядра на: И отключить initramfs.
Образ этого ядра так же см. во вложении.
Копируем требуемый образ, например tftp -g -b 4096 -r linux.sb 192.168.0.2, кстати, в дефолтной корневой ФС присутствуют утилиты Z-modem, так что образы можно и через терминал залить (rz).
Запускаем: parts /dev/mtdblock0 linux.sb ext2
По окончании замыкаем джампера J6-J8 (J9 с SD всегда разомкнута!!!), перезагружаемся уже с SD/MMC карты.
Добрый день. Сделал конфиг OTP регистра как в посте №3(по рисунку) на новой плате. Однако в консоль выводится ошибка 0x8020a014 (ERROR_DDI_SD_MMC_DEVICE_NOT_SUPPORTED). В чем может быть проблема?
На старой плате проблем с флешкой нет(флешку использовал одну и туже). Заметил единственное отличие: На рабочей плате
SD_POWER_GPIO_GATE(21:20) = 0 - PWM0, на нерабочей - SD_POWER_GPIO_GATE(21:20) = 10 - PWM3. Возможно в этом причина. Какое значение правильное?
Подозреваю что для наших плат это не имеет значения - питание на sd/mmc присутствует всегда, а конфиг взят с форума фрискейл - на оригинальной отладочной плате evk питанием sd/mmc управляют через gpio:
соответсвенно загрузчик тоже должен дернуть gpio чтобы подать питание, нам это не нужно.
Подскажите, допускается ли "дожигание" битов в регистре? Допустим я прожег один бит в регистре, а потом понадобилось прожечь еще один в том же регистре. Это возможно?