Перейти к содержанию
    

freescale i.mx27 и linux

добрый день!

у меня тут борда на сабже, и я пытаюсь поднять на ней линукс.

на борде прошит редбут, при помощи openembedded я собрал 2 ядра: 2.6.16 запатченое под этот проц (из BSP к mx27IPCam) и 2.6.30.

оба ядра при загрузке пишут

 

Uncompressing Linux...........................................................................
........................ done, booting the kernel.

и виснут наглухо.

 

хорошо бы отладить и посмотреть что там творится, для этого у меня есть J-Link, но его консоль не позволяет нормально трейсить, не умеет дизассемблировать.

я пытался отладить из GDB, но у меня ничего не вышло, т.е. через команду monitor можно делать все тоже, что и в консоли J-Link-а, а средствами самого gdb ничего не выходит, только удалось сделать load, но на run или step он ругается, говорит не знаю как это сделать.

а OpanOCD у меня не видит J-Link.

 

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

поэтому хотя бы помогите его оттрейсить!

 

спасибо заранее!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что за борда?

Вы ее периферию хоть простыми тестами проверяли?

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что за борда?

Вы ее периферию хоть простыми тестами проверяли?

 

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

 

сейчас там 16mb NOR flash, 512mb NAND flash, 256mb SDRAM

Изменено пользователем kiabrin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А менеджер питания какой? MC13783 или как в IP камере на LM26480S?

 

И какая ревизия i.MX27?

 

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

 

сейчас там 16mb NOR flash, 512mb NAND flash, 256mb SDRAM

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А менеджер питания какой? MC13783 или как в IP камере на LM26480S?

 

И какая ревизия i.MX27?

 

сейчас пока на LDO, навесным монтажом. все напряжения в порядке.

да и причем тут.... он же вообще не стартует.

 

 

тут вопрос чем отладить ядро, что бы понять, чего оно циклится на адресе 15C-160 от начала...

Изменено пользователем kiabrin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну как бы 3-и поколения плат на i.MX27 поднял...

Но вам наверно виднее :biggrin:

 

сейчас пока на LDO, навесным монтажом. все напряжения в порядке.

да и причем тут.... он же вообще не стартует.

 

 

тут вопрос чем отладить ядро, что бы понять, чего оно циклится на адресе 15C-160 от начала...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну как бы 3-и поколения плат на i.MX27 поднял...

Но вам наверно виднее :biggrin:

 

да нет, конечно Вам виднее :)

а де посмотреть ревизию проца?

на самом камне написано:

MCIMX27LVOP4A
M27J
CTAQ0836A

 

питание по схеме на TPS650241, но там при разводке накосячили, и поэтому пока там стоит несколько LDO навеской.

 

redboot пишет следующее:

++... Read from 0x07ee0000-0x07f00000 at 0xc07e0000: .
... Read from 0x07ed3000-0x07ed4000 at 0xc07ff000: .

Board Type: OHT-PC-iMX27-EPIC
Clock input: 26 MHz
Booting from [SDRAM]

Ethernet mxc_fec: MAC address 00:00:45:67:89:ab
IP: 192.168.5.110/255.255.255.0, Gateway: 192.168.5.1
Default server: 192.168.1.243

RedBoot(tm) bootstrap and debug environment [ROMRAM]
Non-certified release, version OHT 20090309 - built 14:30:32, Apr 26 2009

Platform: MX27 OHT (Freescale i.MX27 based) PASS x.x [x32 SDR]
Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.

RAM: 0x00000000-0x07f00000, [0x00024b60-0x07ed1000] available
FLASH: 0xc0000000 - 0xc0800000, 64 blocks of 0x00020000 bytes each.
RedBoot> fis load linux2 -b 0x50000
... Read from 0x07ee0000-0x07eff000 at 0xc07e0000: .
... Read from 0x00050000-0x001bc048 at 0xc0240000: ............
RedBoot> exec
entry=0xa0008000, target=0xa0008000
Using base address 0x00050000 and length 0x0016c048
Uncompressing Linux...........................................................................
........................ done, booting the kernel.

 

грузимся из NOR, потому что с NAND есть проблемы в редбуте, но этим другой человек занимается.

 

можно ли связаться с Вами по ICQ, мой номер 3625297.

 

спасибо за помощь!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

RedBoot не моя тема. У меня свой загрузчик для осей.

Но в том что вы показали видна странность.

Грузите вы ядро с адреса 0x00050000, а управление передаете в гораздо меньшие адреса 0xa0008000

Хотя как бы в RedBoot-е в доке для платформы i.MX27 для обоих рекомендуется 0x00100000. (области с 0x00000000 и с 0xa0000000 мапированы на одну и ту же физическую память)

Т.е. и загрузка и точка входа начинаются с одного адреса.

Или вы сильно перепахали этот RedBoot?

 

Ну и наверно вы не забыли подправить инициализацию периферии i.MX27 по сравнению со штатной идущей в RedBoot, поскольку у вас обрезанная функциональность в чипе.

Кстати тесты памяти в RedBoot нельзя считать надежными.

 

А так професcионально консультации не даю, просто нет возможности :(

 

RAM: 0x00000000-0x07f00000, [0x00024b60-0x07ed1000] available

FLASH: 0xc0000000 - 0xc0800000, 64 blocks of 0x00020000 bytes each.

RedBoot> fis load linux2 -b 0x50000

... Read from 0x07ee0000-0x07eff000 at 0xc07e0000: .

... Read from 0x00050000-0x001bc048 at 0xc0240000: ............

RedBoot> exec

entry=0xa0008000, target=0xa0008000

Using base address 0x00050000 and length 0x0016c048

Uncompressing Linux...........................................................................

........................ done, booting the kernel.[/code]

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

а параметры ядра какие передаются? прилипите конфиг файл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что вам даст конфиг если вы не знаете аппаратных особенностей платформы?

По уму надо выложить всю схему платы, и может кто-нить бы сказал че отредактировать надо в HAL уровне стандартного PDK от Freescale.

 

То что оба варианта ядра одинаково виснут говорит о проблеме в RedBoot-е.

 

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

 

а параметры ядра какие передаются? прилипите конфиг файл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

RedBoot не моя тема. У меня свой загрузчик для осей.

Но в том что вы показали видна странность.

Грузите вы ядро с адреса 0x00050000, а управление передаете в гораздо меньшие адреса 0xa0008000

Хотя как бы в RedBoot-е в доке для платформы i.MX27 для обоих рекомендуется 0x00100000. (области с 0x00000000 и с 0xa0000000 мапированы на одну и ту же физическую память)

Т.е. и загрузка и точка входа начинаются с одного адреса.

Или вы сильно перепахали этот RedBoot?

 

Ну и наверно вы не забыли подправить инициализацию периферии i.MX27 по сравнению со штатной идущей в RedBoot, поскольку у вас обрезанная функциональность в чипе.

Кстати тесты памяти в RedBoot нельзя считать надежными.

 

А так професcионально консультации не даю, просто нет возможности :(

 

в редбуте включен MMU, и оперативка мапирована на адрес 0. сам редбут занимает память с 0 до примерно 40000, так что я гружу образ с адреса 50000. в fis там записано, что у ядра начальный адрес и точка входа a0008000. по команде exec редбут выключает MMU, релоцирует образ на адрес a0008000 и передает туда управление. я это проверял. кстати, так написано в доке по редбуту.

 

редбут да, исправлен.

 

а тесты памяти пускались самописные из под редбута.

 

господа, ребята, ну ладно, тут понятно что всё тонко.

но во-первых, ну должен же kernel хоть что-то написать в консоль сначала?

 

и самое главное -- посоветуйте пожалуйста чем его отлаживать!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы где Redboot-то брали?

 

Я смотрю исходники Redboot и не вижу где он делает ремапинг в MMU чтобы переместить 50000 в 8000 тем более что такое перемещение чревато невыровненностью границы по 1Meg

 

И exec не делает распаковки, она делается на этапе fis load, так что не понятно что за распаковка у вас после exec появляется.

 

И MMU не отключается а просто выключается кэширование и буфферизация.

 

А отлаживать надо JTAG-ом понятно. Вы что, после компиляции MAP файл не получаете?

 

Советовал бы Redboot скомпилить в Keil-е. Но можно и без этого. Просто создайте пустой проект и определите где там виснет.

Или вы совсем новичок в этом деле?

 

 

в редбуте включен MMU, и оперативка мапирована на адрес 0. сам редбут занимает память с 0 до примерно 40000, так что я гружу образ с адреса 50000. в fis там записано, что у ядра начальный адрес и точка входа a0008000. по команде exec редбут выключает MMU, релоцирует образ на адрес a0008000 и передает туда управление. я это проверял. кстати, так написано в доке по редбуту.

 

редбут да, исправлен.

 

а тесты памяти пускались самописные из под редбута.

 

господа, ребята, ну ладно, тут понятно что всё тонко.

но во-первых, ну должен же kernel хоть что-то написать в консоль сначала?

 

и самое главное -- посоветуйте пожалуйста чем его отлаживать!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы где Redboot-то брали?

 

Я смотрю исходники Redboot и не вижу где он делает ремапинг в MMU чтобы переместить 50000 в 8000 тем более что такое перемещение чревато невыровненностью границы по 1Meg

 

И exec не делает распаковки, она делается на этапе fis load, так что не понятно что за распаковка у вас после exec появляется.

 

И MMU не отключается а просто выключается кэширование и буфферизация.

 

А отлаживать надо JTAG-ом понятно. Вы что, после компиляции MAP файл не получаете?

 

Советовал бы Redboot скомпилить в Keil-е. Но можно и без этого. Просто создайте пустой проект и определите где там виснет.

Или вы совсем новичок в этом деле?

 

дело такое, я и без редбута его грузил J-Link ом и запускал с тем же эффектом.

Uncompressing linux..... -- это пишет уже само ядро. после этого оно должно запустится уже распакованое.

 

а как этим J-Link ом отлаживать? он не имеет представления об ассемблере, не то что о map-файлах.

я поэтому в начале и спрашивал про то, чем это можно сделать. как например прикрутить к J-Link-у OpenOCD?

 

а редбута у меня даже исходников нету. я же говорю, им другой человек занимался.

а ядра я собираю из openembedded.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А.. уже яснее.

 

Как же тот спец что переделал Redboot отлаживался? :biggrin:

 

Короче ваша проблема решается довольно просто но только не open source тулсами.

Качайте среду разработки Keil и работайте с отладкой через нее.

А вопросы задавайте в разделе про ARM-ы

 

 

дело такое, я и без редбута его грузил J-Link ом и запускал с тем же эффектом.

Uncompressing linux..... -- это пишет уже само ядро. после этого оно должно запустится уже распакованое.

 

а как этим J-Link ом отлаживать? он не имеет представления об ассемблере, не то что о map-файлах.

я поэтому в начале и спрашивал про то, чем это можно сделать. как например прикрутить к J-Link-у OpenOCD?

 

а редбута у меня даже исходников нету. я же говорю, им другой человек занимался.

а ядра я собираю из openembedded.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...