Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:2
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Отладочные платы » SK-MAT91SAM9G45/M10
9G45, загрузка с SD карты
Jury093
Добавлено 16.01.2011 11:20 Сообщение: 11
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Ну как - вылежалась ? :)

ай спасибо, Саша!
увы, плату оставил на работе, прям счас попробовать не могу.
в понедельник (по возможности) пощупаю, что к чему и о результатах отпишу.
Код
www.at91.com/pub/Android4SAM

была у меня мыслишка, что ноги оттуда растут, да поискать не додумался..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 17.01.2011 13:30 Сообщение: 12
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
оно почти работает!
Код
Start AT91Bootstrap...
Image size: 0x28cab2, load_addr: 0x70008000, ep: 0x70008000
relocating linux kernel to proper address, dst: 0x70008000, src: 0x72000040, len: 0x28cab2, machid: 0x726

и висим..
медитирую над:
Код
Нужно в ядре через make uImage его сделать

вроде в скрипте это прописано, чего то ядру не хватает для старта - не вижу даже начала декомпрессии..
счас углубленно покопаюсь..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 17.01.2011 13:35 Редактировалось 17.01.2011 15:56 Сообщение: 13
Pavel Ivanchenko
Admin
4.39

Пункты: 91491
Регистрация: 24.03.2009
Пол: Мужчина
Как всегда, оказалось все не так ровно как сначала выглядело :) ...
Вобщем, для начала, как уже писал sasamy, нужно собрать ядро с опцией uImage (в папке arch/arm/boot появится uImage, это и есть требуемый образ).
В самом бутстрапе нужно скрутить MACH_TYPE на 2212, но самое главное, нужно править конфиг DDR2 (т.к. на платах другая "геометрия" чипов), для этого достаточно исправить AT91C_DDRC2_NR_14 на AT91C_DDRC2_NR_13, как ни печально, при этом бутстрап отказывается даже образ с карточки грузить:
Код
Start AT91Bootstrap...
Bad Image Magic Number found! 0xdd057256

Хотя с оригинальными настройками он даже ядро может запустить.
Полез сравнивать инит DDR2 с имеющимся рабочим, в этом бутстрапе половины манипуляций инициализации DDR2 нет (или вызываются как то по другому), вобщем, я в недоумении ...
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 17.01.2011 17:06 Сообщение: 14
Pavel Ivanchenko
Admin
4.39

Пункты: 91491
Регистрация: 24.03.2009
Пол: Мужчина
Нашел причину, грузится нормально, все причешу, позже опубликую.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 17.01.2011 17:10 Сообщение: 15
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Вобщем, для начала, как уже писал sasamy, нужно собрать ядро с опцией uImage (в папке arch/arm/boot появится uImage, это и есть требуемый образ).

Павел, подскажите как это сделать. Покрутил конфиг ядра - ничего похожего.. или надо Makefile править?

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 17.01.2011 18:00 Редактировалось 17.01.2011 18:01 Сообщение: 16
Pavel Ivanchenko
Admin
4.39

Пункты: 91491
Регистрация: 24.03.2009
Пол: Мужчина
Итак, для начала правим скрипт сборки ядра make_kernel, в конце добавляем строки:
Код
../u-boot-2010.09/tools/mkimage -A arm -O linux -T kernel -a 0x70008000 -e 0x70008000 -n "Linux Kernel Image" -d linux.bin image_sd.bin
cp ./image_sd.bin /tftpboot/image_sd.bin

В результате получим в папке /tftpboot требуемый image_sd.bin (название загружаемого образа в бутстрапе я намеренно изменил на image_sd.bin), копируем его в корень карточки вместе с бутстрапом - boot.bin.
Размыкаем джампер NAND CS, запускаем, т.к. корневая по умолчанию находится в NAND, сразу замыкаем NAND CS (если ядро с initramfs собрано, тогда можно обратно не замыкать).
Позже напишу скриптик для подготовки и форматирования карты, чтоб можно было с карты грузиться и ее же потом для корневой ФС использовать.
Исходники со скриптами сборки во вложении, единственно, в этом бутстрапе не настраивается SDRAM и поэтому фреймбуфер на SK-AT91SAM9G45 работать не должен, позже добавлю (сейчас неначем проверить).

Attachment file: uploads/forum/forum-hSjVuo5TJk-7.bz2
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 17.01.2011 18:56 Сообщение: 17
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
упсссссс.. похоже я нехило ступил..
попытка загрузки имеет место быть
но завтра докую..
Код
Start SD card AT91Bootstrap...
Bad Image Magic Number found! 0xdc0c0200

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 17.01.2011 20:38 Редактировалось 17.01.2011 20:39 Сообщение: 18
Pavel Ivanchenko
Admin
4.39

Пункты: 91491
Регистрация: 24.03.2009
Пол: Мужчина
Написал скрипт:
1) создает 2 партиции 1-FAT, 2-EXT2
2) форматирует их
3) копирует (по tftp из виртуалки) бутстрап и ядро в FAT партицию
4) копирует (по tftp из виртуалки) корневую ac и распаковывает в EXT2 партицию
Все более-менее ровно проходит, но вот грузиться с карточки уже не желает :(
Код
#!/bin/sh
umount /dev/mmcblk0p2
umount /dev/mmcblk0p1
umount /dev/mmcblk0
sleep 3

dd if=/dev/zero of=/dev/mmcblk0 bs=512 count=1

sfdisk --force -uM /dev/mmcblk0 << EOF
,16,0x0B
,,83
EOF

if [ ! -b "/dev/mmcblk0p1" ]; then
echo -e "\033[1mError: creating of partition /dev/mmcblk0p1\033[0m"
exit
fi

if [ ! -b "/dev/mmcblk0p2" ]; then
echo -e "\033[1mError: creating of partition /dev/mmcblk0p2\033[0m"
exit
fi

umount /dev/mmcblk0p2
umount /dev/mmcblk0p1

dd if=/dev/zero of=/dev/mmcblk0p1 bs=512 count=4
echo -e "\033[1mMake VFAT FS on /dev/mmcblk0p1 partition ...\033[0m"
mkfs.vfat /dev/mmcblk0p1
echo -e "\033[1mDone\033[0m"

dd if=/dev/zero of=/dev/mmcblk0p2 bs=512 count=4
echo -e "\033[1mMake EXT2 FS on /dev/mmcblk0p2 partition ...\033[0m"
mkfs.ext2 /dev/mmcblk0p2
echo -e "\033[1mDone\033[0m"

mkdir /mnt/mmcblk0p1
mkdir /mnt/mmcblk0p2
mount /dev/mmcblk0p1 /mnt/mmcblk0p1
mount /dev/mmcblk0p2 /mnt/mmcblk0p2

echo -e "\033[1mCopy SD bootstrap from 192.168.0.2\033[0m"
cd /mnt/mmcblk0p1
tftp -g -r boot.bin 192.168.0.2

echo -e "\033[1mCopy Linux kernel image from 192.168.0.2\033[0m"
cd /mnt/mmcblk0p1
tftp -g -b 4096 -r image_sd.bin 192.168.0.2

sync

echo -e "\033[1mCopy and unpack ROOTFS from 192.168.0.2\033[0m"
cd /mnt/mmcblk0p2
tftp -g -b 4096 -r rootfs.tgz 192.168.0.2
tar xzvf ./rootfs.tgz
rm ./rootfs.tgz

sync
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 17.01.2011 21:10 Сообщение: 19
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
На каком этапе виснет?

цитата из предыдущей страницы:
Цитата
Карта SD должна содержать в 1 первом разделе с фс fat/fat32 бинаник бутстрапа переименованный в BOOT.BIN

у вас:
Код
tftp -g -r boot.bin 192.168.0.2

что на самом деле на карточку попадает?

линуксячьи утили честно пишут, что для генерации дос-разделов лучше использовать нативную дос-систему. для эксперимента можно сплодить бинарник образа DOS раздела с наполнением нужными файлами и чем-то заливать из сетки в первый раздел..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 17.01.2011 21:26 Сообщение: 20
Pavel Ivanchenko
Admin
4.39

Пункты: 91491
Регистрация: 24.03.2009
Пол: Мужчина
Как уже говорил, партиции создаются, файлы копируются (регистр имени файла не меняется) ...
Винда потом эту карточку (первый раздел) нормально читает-пишет, а вот 9g45 в упор не воспринимает.
Причем, дело явно в опциях партиций, я пробовал создать одну партицию на всю карту, пробовал переформатировать под виндой, пробовал ... что только не пробовал - не помогает.
Карту к "жизни"с 9g45 приводит только форматирование в фотоаппарате ...
При работе скрипта смущает сообщение:
Код
Warning: no primary partition is marked bootable (active)

Но как указать sfdisk установить первую партицию bootable не понятно, штатными средствами винды с партициями съемного диска вобще ничего нельзя сделать.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-MAT91SAM9G45/M10