Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: s3c2416 начальная загрузка
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Страницы: 1, 2
bvvlab
Протестировал, u-boot грузится с SD, круть... теперь осталось аккуратно все настроить под свою железку.
Как же работало у сообщества kit2416, релизы проца чтоль разные?
alexf
Цитата(bvvlab @ Feb 17 2011, 02:44) *
Как же работало у сообщества kit2416, релизы проца чтоль разные?


Либо уже была поправленная версия убута либо некоторые ММС карты могут работать на 50 МГц.

Dron_Gus
Сделал загрузчик, который грузит u-boot.bin напрямую с fat раздела флешки. Если кому надо выложу.
alexf
Цитата(Dron_Gus @ Feb 18 2011, 03:09) *
Сделал загрузчик, который грузит u-boot.bin напрямую с fat раздела флешки. Если кому надо выложу.


Было бы неплохо. Пригодится в следующем проекте на 6410.
Dron_Gus
Цитата(alexf @ Feb 18 2011, 23:50) *
Было бы неплохо. Пригодится в следующем проекте на 6410.

Если кто для него напишет Makefile - поставлю пиво sm.gif

З.Ы. под 6410 тоже собираюсь портануть.
alexf
Цитата(Dron_Gus @ Feb 19 2011, 05:50) *
Если кто для него напишет Makefile - поставлю пиво sm.gif

З.Ы. под 6410 тоже собираюсь портануть.


Спасибо. В духе сотрудничества Makefile напишу. Не проблема.
-
А у меня новая загадка природы. Если я пытаюсь загрузиться целиком с SD (поправил команду в u-boot )
то kernel грузится и стартует, но умирает жалуюсь на ММС. А если пока он грузится и распаковывается ММС выдернуть то все работает. Чудеса. Рут монтирую через NFS.

PS 6410 модуль умер смертью храбрых - воткнул модуль кверх ногами.
Dron_Gus
По поводу MMC посмотрю в понедельник на работе. Были какие-то проблемы, сейчас уже не помню. Одна касалась отсутствия необходимых клоков, но патч я уже давно видел в arm-linux-kernel листе, должны были поправить. Еще был патч, который добавлял различные методы опроса Card Detect (до этого было только по прерыванию).
alexf
Makefile сделал, дело не хитрое. Для Линукса, естественно. Возникли две проблемы:

1. при линковке без стандартных библиотек не находился __aeabi_uidiv. Наверняка есть лучшие методы борьбы, но я больше
по железу чем по програмам. Так что тупо скопировал процедуру из сорсов компилятора в crt0.S и все собралось.

2. Не влезло слегка в 8К с тем компилятором которым я пользовался (4.2.2-eabi).
Поправка: я добавил -mthumb во флаги компилятора и все стало хорошо.

Ну и пришлось в паре мест поменять названия файлов так как lower/upper case важен. Скажем фаил назывался
system.h, а написано было "#include <System.h>"

Нажмите для просмотра прикрепленного файла

Цитата(Dron_Gus @ Feb 20 2011, 03:45) *
По поводу MMC посмотрю в понедельник на работе. Были какие-то проблемы, сейчас уже не помню. Одна касалась отсутствия необходимых клоков, но патч я уже давно видел в arm-linux-kernel листе, должны были поправить. Еще был патч, который добавлял различные методы опроса Card Detect (до этого было только по прерыванию).


У меня довольно старая версия 2.6.21 так что легко может не быть патчей.
Dron_Gus
Посмотрел. В ядре ничего кроме вышеперечисленного связанного с MMC мы не правили.

З.Ы. у кого-нить есть флешер для SD под 6410? uboot_writer.exe не пашет. sad.gif
Dron_Gus
Нашел некий загрузчик под s3c6410 http://zenvoid.org/software/qi-smartq/ . Там же и скрипт для флешевания.
alexf
Цитата(Dron_Gus @ Feb 21 2011, 05:28) *
Нашел некий загрузчик под s3c6410 http://zenvoid.org/software/qi-smartq/ . Там же и скрипт для флешевания.


Script выглядит разумно. Вычисляет с какого сектора писать и вперед.

У меня есть прилада с диска от 6410 но работает или нет не знаю поскольку убил свой 6410.
Dron_Gus
У меня вообще без правок завелся на mini6410, единственное, пришлось подправить Makefile. А вот на планшетнике с тем же s3c6410 не заработал. Непонятно почему.
bvvlab
Какие сделал правки u-boot под мою K9GAG08 (OOB=128, PAGE=4096, BLOCK=128PAGE):
1. nand_cp.c
//page_size = 2048;
page_size = 4096;
//page_shift = 11;
page_shift = 12;
тогда убут будет верно стартовать с нанд независимо или в режиме IROM или выполнения с нанд.

Но для того чтоб его можно было в нанд прописать нужно подправить функции nand write/read
2.nand.c
static struct nand_ecclayout s3c_nand_oob_mlc_128 = {
.useecc = MTD_NANDECC_AUTOPLACE, /* Only for U-Boot *///the batoff
.eccbytes = 64,
.eccpos = {
64, 65, 66, 67, 68, 69, 70, 71,
72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87,
88, 89, 90, 91, 92, 93, 94, 95,
96, 97, 98, 99, 100, 101, 102, 103,
104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119,
120, 121, 122, 123, 124, 125, 126, 127},
.oobfree = {
{.offset = 2,
.length = 28+32}}
};

//nand->ecc.layout = &s3c_nand_oob_mlc_64;
nand->ecc.layout = &s3c_nand_oob_mlc_128;

3.nand_util.c
//#define MAX_PAGE_SIZE 2048
//#define MAX_OOB_SIZE 64
#define MAX_PAGE_SIZE 4096
#define MAX_OOB_SIZE 128

if (!(meminfo->oobsize == 16 && meminfo->writesize == 512)
&& !(meminfo->oobsize == 8 && meminfo->writesize == 256)
&& !(meminfo->oobsize == 64 && meminfo->writesize == 2048)
&& !(meminfo->oobsize == 128 && meminfo->writesize == 4096)) {
printf("Unknown flash (not normal NAND)\n");
return -1;
}
4.nand_base.c
static struct nand_ecclayout nand_oob_128 = {
.eccbytes = 48,
.eccpos = {
80, 81, 82, 83, 84, 85, 86, 87,
88, 89, 90, 91, 92, 93, 94, 95,
96, 97, 98, 99, 100, 101, 102, 103,
104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119,
120, 121, 122, 123, 124, 125, 126, 127},
.oobfree = {
{.offset = 2,
.length = 78}}
};
case 128:
chip->ecc.layout = &nand_oob_128;
break;

case 16:
5.nand.h
//#define NAND_MAX_OOBSIZE 64
//#define NAND_MAX_PAGESIZE 2048
#define NAND_MAX_OOBSIZE 128
#define NAND_MAX_PAGESIZE 4096

после этих правок успешно стал шиться в нанд убут, кернел.
Непонятки творятся с rootfs. ОБраз взял от kit2416 формат yaffs.
В нанд заливается, но при старте ядро паникует, говорит что все блоки бэд.
ядру передаю setenv bootargs noinitrd root=/dev/mtdblock2 console=ttySAC0,115200

Вывел в консоли nand dump первой странички фс, в начале блока OOB два байта нулевые и секция ECC тоже странная.

Кто нибудь сделайте nand dump первых 2 страниц фс ваших плат.
И еще б глянуть начало бинарника rootfs.

Заранее благодарю.


Dron_Gus
Загрузчик (IROM) и ядро используют разный формат oob. Вы подогнали формат убута к формату первичного загрузчика. И в этом же формате зашиваете rootfs. Естественно ядро будет ругаться - оно ожидает другой формат.
Аналогичная ситуация у omap. Можете посмотреть (например для beagleboard) есть команда nandecc hw|sw, которая переключает форматы с которыми работает u-boot. Обычная практика это писать вторичный загрузчик (в нашем случае u-boot) полностью в hw ecc (т.е. в формате IROM), а все остальное в классическом формате, принятом в линуксе (sw ecc).
Nortek_rework
Сорри за офтоп: есть девайс на 2416(навигатор) не грузит ОС, хотел поставить ОС, да пока не знаю с какой стороны подойти. Как я понял из форума, рабочего решения нет пока. В Моём только загрузчик грузится, пишет "Aug 10 2009 v1.a12.b501.c0.d0". Есть полный дамп когдато рабочей винды, но нет инфо по прошивке. Интересует инфо по JTAG к этому процу ну и собственно прошивка с SD.
Dron_Gus
JTAG в этом проце есть. Разведен ли он в Вашем навигаторе?
С SD-карты процессор грузится умеет. Но только с одного из двух SD-интерфейсов. Какой из них разведен на Вашем устройстве? Выведены ли пины конфигурации загрузочного устройства?
Nortek_rework
Чётко обозначенного jtag нет. вероятно, как это обычно бывает, выводы разбросаны по плате.. но это только гипотетически. О том какая из SD разведена 1 или 2 можно проверить только вставив карточку с ВООТлоадером, хотя не факт что плата сконфигурирована для загрузки с SD. Нормально она грузится с NAND. По другому я не знаю как это узнать. Ну разве фото платы выложить. Как вариант можно снять проц и вызвонить ноги jtag и SD но нехотелось бы. На плате 2 кнопки вкл\выкл и резет... это всё
Вопрос:
-чем создать загрузочную SD?
- Можно ли по дампу прошивки выяснить имя файла флага ? типа как для ("Prestigio GeoVision 430@"-(BootImg.cfg,xip.bin в корне SD) )
Как следствие, зная это, можно загрузить свою прошиву.

п.с. вопросов много , да вот ответы ...(( и выбросить жаль, и поднять нечем.
Dron_Gus
1) Утилиты для создания загрузочной SD выкладывали в этой ветке несколькими страницами ранее. Где Вам взять сам загрузчик, который Вы будете писать на карту - я не знаю.
2) Вероятно можно.
MSL
Есть устройство с s3c2416 и нанд флэшкой k9gag08, хочу написать свой лоадер для этих девайсов. Если кто сталкивался и поможет прояснить следующие вопросы - буду благодарен.

1. Почему k9gag08 упорно приписываю геометрию в 2гб из страниц по 4096? Реальная геометрия этой странной флэшки 2076 блока, страницы 8192 + 436 spare, в блоке 128 страниц. Кто не верит, может посмотреть в мануале. Всякие непонятности возникают, например, когда я пробую читать 2ю страницу по адресу 0x2000 и вижу данные из 1-й страницы, а потом данные читаются нормально. Это они сделали для "совместимости", чтоб их s3c запускали первые 8к или есть свои хитрости?

2. Какое-то совсем вольное и непонятное обращение с регистрами, даже в примерах от самсунга, не говоря уже от творчестве народном. Чтение и контроль ECC сделано как кому нравится, биты ecc_lock перепутаны с ecc_unlock, по-разному выставляются адреса и команды при чтении, используются разные биты готовности... Я сделал все по мануалу для 8бит ECC, но почему-то у меня все время Uncorrectable ecc error, нет ошибок только на пустых блоках. Никто не подскажет проверенный исходник с ECC, желательно для s3c2416 и этой флэшки или просто свои наблюдения?
Dron_Gus
2) тут уже обсуждалось. формат spare области не "общепринятый". Байты ECC не на тех позициях и не в том порядке. Поэтому на флешке будут присутствовать два формата ECC и будут друг на друга ругаться.
Загрузчик уже есть. Например этот. Ну или у-бут. Я тут тоже выкладывал первичный загрузчик (правда с SD карты). Функция чтения страницы с нандины есть в ROM. Как ее пользовать - есть в qi-boot'е, с поправкой на другие адреса.
MSL
Цитата(Dron_Gus @ Jun 22 2011, 16:17) *
2) тут уже обсуждалось. формат spare области не "общепринятый". Байты ECC не на тех позициях и не в том порядке. Поэтому на флешке будут присутствовать два формата ECC и будут друг на друга ругаться.
Загрузчик уже есть. Например этот. Ну или у-бут. Я тут тоже выкладывал первичный загрузчик (правда с SD карты). Функция чтения страницы с нандины есть в ROM. Как ее пользовать - есть в qi-boot'е, с поправкой на другие адреса.


Если с 0 адреса формат будет не HWECC 8bit - то с нанд флэшки ничего не стартанет, просто не загрузятся первые 8кб. Как хранятся остальные данные - это уже кому как нравится, я говорю пока о первых 8кб, на всякий случай приаттачил первую страницу со spare.
Dron_Gus
А в чем вопрос то?
MSL
Цитата(Dron_Gus @ Jun 23 2011, 14:44) *
А в чем вопрос то?


Д я ж до этого вроде писал - вопрос в работе с k9gag08 c 8Kb страницами и кодом для чтения с HW ECC 8бит протестированным желательно на этой флэшке. В принципе вопрос снят - я нашел реализацию самсунгом NF8_ReadPage_Adv и еще пошагаю по загрузчику внутреннему для уверенности-) Если нетрудно - выложите плиз первые 8кб с областью spare, именно как все лежит во флэшке - интересно посмотреть. Спасибо.
MSL
В общем, проблема была в том, что я пытался работать с 8бит ECC, когда в spare были записаны данные для 4бит ECC и выбран соот-щий тип при загрузки с нанда. Упортсво вызывал мануал самсунга, где говорили что только 8бит ЕСС нужно при старте-)) Единственная вещь, которую я не могу понять - это тысячи однобитных (и не только) ошибок ECC при чтении флэшки - это нормально? Устройство рабочее, инициализируется собственным бутом...
serhio
Коллеги, у кого есть KIT2416 с установленной на нем модулем SOM2416 ? Не могу понять как там пины GPC5/6/7 подсоединены? Наружу они вроде не выведены... Или может у кого есть схема от SOM2416? И еще вопрос, может пропустил в доках. Какой из хостов MMC используется IROM при копировании BL1?
DVS
Уважаемые коллеги, поделитесь исходниками uboot свежей версии для SOM2416 для NAND.
Для SD у меня есть бинарник и он работает, а бинарник для NAND прошивается, но после старта сразу следует рестарт. Мои попытки собрать uboot 1.1.6 даже под SD не увенчались успехом.
Вобщем хэлп...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.