|
портирование linux |
|
|
|
May 21 2009, 12:12
|
Участник

Группа: Участник
Сообщений: 18
Регистрация: 25-09-07
Пользователь №: 30 808

|
мне нужно портировать линукс на самопальную плату на freescale i.MX27. не могли бы вы мне рассказать, какие есть стандартные шаги, чтобы это сделать? у меня есть сейчас сама плата, на которой пока напаяно питание, 128М SDRAM, 16М NOR FLASH, 512M NAND FLASH, RS232, Ethernet. по архитектуре плата ближе всего к mx27IPCam. есть так же J-Link и Keil. я пытаюсь запустить линукс из BSP к mx27IPCam, но он виснет после распаковки ядра. поможете? заранее огромное спасибо.
|
|
|
|
|
 |
Ответов
|
May 21 2009, 20:04
|
Частый гость
 
Группа: Участник
Сообщений: 140
Регистрация: 2-01-08
Пользователь №: 33 768

|
Цитата(kiabrin @ May 21 2009, 17:12)  мне нужно портировать линукс на самопальную плату на freescale i.MX27. не могли бы вы мне рассказать, какие есть стандартные шаги, чтобы это сделать? у меня есть сейчас сама плата, на которой пока напаяно питание, 128М SDRAM, 16М NOR FLASH, 512M NAND FLASH, RS232, Ethernet. по архитектуре плата ближе всего к mx27IPCam. есть так же J-Link и Keil. я пытаюсь запустить линукс из BSP к mx27IPCam, но он виснет после распаковки ядра. поможете? заранее огромное спасибо. i.mx27 вроде как официально поддерживается ядром начиная с двадцать какой-то версии. кроме того, есть порт от timesys, там был вполне годный код, когда я его крайний раз разглядывал (чуть меньше года назад). в вашей текущей постановке, IMO, задача не решается, надо брать дебаггер в зубы и смотреть как конкретно виснет... да хотя бы magic sysrq включить и попробовать подампить структуры. еще хорошо задаться вопросом, чем отличается ваша плата от ipcam.
Сообщение отредактировал slanted - May 21 2009, 20:07
|
|
|
|
|
May 22 2009, 00:25
|
Участник

Группа: Участник
Сообщений: 18
Регистрация: 25-09-07
Пользователь №: 30 808

|
Цитата(slanted @ May 22 2009, 00:04)  i.mx27 вроде как официально поддерживается ядром начиная с двадцать какой-то версии. кроме того, есть порт от timesys, там был вполне годный код, когда я его крайний раз разглядывал (чуть меньше года назад).
в вашей текущей постановке, IMO, задача не решается, надо брать дебаггер в зубы и смотреть как конкретно виснет... да хотя бы magic sysrq включить и попробовать подампить структуры. еще хорошо задаться вопросом, чем отличается ваша плата от ipcam. у меня 2 сборки, 2.6.19.2 из BSP и 2.6.30. ведут себя одинаково. дебаггер в зубы брал. первое -- почему-то передается неверный machine archetecture type -- 2С63 кажется. если в регистр прописать верный -- загрузка идёт дальше, и через преличное время циклится где-то. уже после включения MMU. в консоли тишина. строчку инициализации передаю: "mem=128M console=ttyS0,115200n8 noinitrd rw ip=dhcp". а что такое magic sysrq? какие структуры дампить? где в памяти их искать? от IPCam на данный момент, в той части что напаяно, 2 главных отличия: 1. i.mx27L вместо i.mx27 2. 26mHz вместо 25.
|
|
|
|
|
May 22 2009, 18:49
|
Частый гость
 
Группа: Участник
Сообщений: 140
Регистрация: 2-01-08
Пользователь №: 33 768

|
Цитата(kiabrin @ May 22 2009, 05:25)  у меня 2 сборки, 2.6.19.2 из BSP и 2.6.30. ведут себя одинаково. Готовый бинарник или самосбор? Цитата дебаггер в зубы брал. первое -- почему-то передается неверный machine archetecture type -- 2С63 кажется. если в регистр прописать верный -- загрузка идёт дальше, Вопросы к загрузчику. Цитата и через преличное время циклится где-то. уже после включения MMU. в консоли тишина. строчку инициализации передаю: "mem=128M console=ttyS0,115200n8 noinitrd rw ip=dhcp". Как определили включение mmu? В этой консоли скорее всего ничего и не будет, она заводится когда большая часть низкоуровневой инициализации уже прошла. К сожалению, я не в курсе как там дела с early console на arm'е, на x86 для его включения надо писать console=uart,0x3f8,38400n8 или earlycon=тожесамое. Кстати, дефолтная консоль там console=ttySMX0,57600n8, как написано в arch/arm/configs Цитата а что такое magic sysrq? какие структуры дампить? где в памяти их искать? linux/Documentation/sysrq.txt, кернельный монитор вызываемый по alt-sysrq-key (какой key -- написано в доке), на сериальной консоли можно вызвать через double break. Можно посмотреть процессы, ребутнуть систему и так далее. Хотя вот увидел оговорку, что double break только на pc опять же работает, так что это скорее всего без толку.
|
|
|
|
|
May 23 2009, 07:56
|
Участник

Группа: Участник
Сообщений: 18
Регистрация: 25-09-07
Пользователь №: 30 808

|
Цитата(slanted @ May 22 2009, 22:49)  Готовый бинарник или самосбор? собрано в openembedded Цитата Вопросы к загрузчику.
Как определили включение mmu? я через J-Link + Keil отлаживаю. он пишет. кроме того PC изменился. Цитата В этой консоли скорее всего ничего и не будет, она заводится когда большая часть низкоуровневой инициализации уже прошла. К сожалению, я не в курсе как там дела с early console на arm'е, на x86 для его включения надо писать console=uart,0x3f8,38400n8 или earlycon=тожесамое.
Кстати, дефолтная консоль там console=ttySMX0,57600n8, как написано в arch/arm/configs строчка взята с OMAP5912, такой же арм, кстати. Цитата linux/Documentation/sysrq.txt, кернельный монитор вызываемый по alt-sysrq-key (какой key -- написано в доке), на сериальной консоли можно вызвать через double break. Можно посмотреть процессы, ребутнуть систему и так далее. Хотя вот увидел оговорку, что double break только на pc опять же работает, так что это скорее всего без толку. мда... ну, это если он доходит до туда...
|
|
|
|
|
May 26 2009, 07:19
|
Частый гость
 
Группа: Участник
Сообщений: 140
Регистрация: 2-01-08
Пользователь №: 33 768

|
Цитата(kiabrin @ May 23 2009, 12:56)  строчка взята с OMAP5912, такой же арм, кстати. Арм-то такой же, машина другая, а имя девайса как раз определяется набором драйверов, т.е. машиной. Возможно, у вашего ядра есть какие-то патчи дополнительные, поэтому в любом случае стоит проконсультироваться с linux/arch/arm/configs/ и, если уж совсем сомнения загрызут -- с linux/drivers/serial. Кстати, я вот сейчас глянул в имеющиеся под рукой сорцы 2.6.28, там таки реализовали early serial console (drivers/serial/mxc_uart_early.c), можно попробовать консоль в виде console=mxcuart,0x43f9000,1152008n1. Цитата мда... ну, это если он доходит до туда... Вообще говоря да, по вашему описанию похоже, что оно у вас даже до start_kernel не доходит. Early printk там инициализируется довольно рано, но никаких сообщений о том, что происходит до того вы не увидите, так что только j-link.
|
|
|
|
Сообщений в этой теме
kiabrin портирование linux May 21 2009, 12:12     AlexandrY Во первых человек написал что у него версия базова... May 26 2009, 08:17      Aprox Цитата(AlexandrY @ May 26 2009, 12:17) Во... May 26 2009, 11:57       AlexandrY У Ethernet-а на платформе i.MX27 свой кварц.
А в... May 26 2009, 12:12      slanted Цитата(AlexandrY @ May 26 2009, 13:17) Во... May 26 2009, 22:22       AlexandrY Оно может быть и так, но надо помнить что здесь ре... May 28 2009, 17:27  wetter Цитата(kiabrin @ May 22 2009, 04:25) стро... May 23 2009, 09:38
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|