|
|
  |
linux for at91sam9g20, маленькая память |
|
|
|
Jan 30 2010, 23:01
|
Частый гость
 
Группа: Участник
Сообщений: 97
Регистрация: 19-11-09
Пользователь №: 53 743

|
Здравия, коллеги! Спроектировали на работе плату на базе контроллера at91sam9g20. Память и периферию подключали из соображений удобства разводки печатной платы. На готовую систему, естественно, появилось желание поставить линукс. Полезли в интернет, скачали весь материал для кита at91sam9g20ek. Порты переобозначили в соответствии со своей схемой, загрузчики запустились, ядро разворачивается, файловая система не подхватывается. Принципиальное отличие от фирменного кита - оперативная память 32 Мб против их 64 Мб. Возможно файловая система не видна не по этой причине. Предстоит покопаться. На данный момент интересует, если кто через это прошел, что нужно изменить в хедерах и как порезать исходники, чтобы уместить систему в 32 Мб. Резали всю сеть и USB. USB в заголовках отрезали удачно, а сеть не вышло. Компилятор компилит всю папку net, а линкер, естественно, ругается. Больше всего интересует размещение системы в 32 Мб оперативной памяти. Заранее благодарен.
|
|
|
|
|
Feb 1 2010, 14:39
|
Знающий
   
Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858

|
Цитата(Drozd2 @ Feb 1 2010, 12:40)  mtdparts=at91_nand:-(root) Похоже в этом ошибка, потому что вы считаете что "Файловая система по указанию записывается по адресу 0х400000 в nand" а раздел у вас начинается с нулевого адреса - задайте смещение. mtdparts=at91_nand:размер@смещение(root)
Сообщение отредактировал sasamy - Feb 1 2010, 14:39
|
|
|
|
|
Feb 2 2010, 04:38
|

Профессионал
    
Группа: Участник
Сообщений: 1 179
Регистрация: 15-09-04
Из: 141070 г. Королев МО, улица Горького 39-121
Пользователь №: 661

|
Цитата(Drozd2 @ Feb 1 2010, 12:40)  В bootcmd хоть и присутствует адрес 0х22000000, при 32Мб памяти он превращается в 0х20000000. Файловая система по указанию записывается по адресу 0х400000 в nand. Не догоняю, как ядру передать адрес файловой системы. И можно ли записать ее по нулевому адресу и передать этот адрес ядру? строчка root=/dev/mtdblock0 обозначает что у Вас файловая система лежит на 0 партиции а там наверное загорузчик, а файловая в первой а cp.b 0xC0042000 0x22000000 0x210000 это скопировать из последовательной флэш, её у Вас наверное нет обычно при последовательной флэш если образ лежит в виде инитрд : root=/dev/ram rw initrd=<адрес>,<размер> ramdisk_size=8000 командочкой cp.b копируется образ инитрд из последовательной в рам по <адрес>, а ядро это понимает разворачивает его в /dev/ram
|
|
|
|
|
Apr 12 2010, 23:16
|
Частый гость
 
Группа: Участник
Сообщений: 97
Регистрация: 19-11-09
Пользователь №: 53 743

|
Не прошло и пол-года, как я разобрался. Ответ был слишком простой, чтобы его сразу найти. Если кому понадобится, то на самопальных платах с запчастями со своего склада, собранных по самостоятельно составленной схеме, нужно в исходниках переопределить все отличающиеся от фирменной платы подключения и пересчитать скорость работы nand flash. Это один-два файла, одноименных с названием контроллера. А теперь самое интересное. Если оперативной памяти на самодельной плате окажется меньше, чем на фирменной, то в исходниках u-boot переобозначить адрес загрузки сжатого ядра на реально существующий, в моем случае 0х21000000, а к переменной окружения bootargs добавить параметр mem=8M. Тогда появляется долгожданное приветствие login.
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|