Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: freescale i.mx27 и linux
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
kiabrin
добрый день!
у меня тут борда на сабже, и я пытаюсь поднять на ней линукс.
на борде прошит редбут, при помощи 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, но, это, наверное, маловероятно...
поэтому хотя бы помогите его оттрейсить!

спасибо заранее!!
AlexandrY
Что за борда?
Вы ее периферию хоть простыми тестами проверяли?

Цитата(kiabrin @ May 16 2009, 14:43) *
конечно, лучше всего, если ответит кто-нибудь, кто уже работал с mx27, но, это, наверное, маловероятно...
kiabrin
Цитата(AlexandrY @ May 16 2009, 19:43) *
Что за борда?
Вы ее периферию хоть простыми тестами проверяли?


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

сейчас там 16mb NOR flash, 512mb NAND flash, 256mb SDRAM
AlexandrY
А менеджер питания какой? MC13783 или как в IP камере на LM26480S?

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

Цитата(kiabrin @ May 16 2009, 20:24) *
борда своя, аппаратно работает. тесты в редбуте проходят. rs232 и ethernet работают. тесты памяти проходят. а больше там пока ничего не напаяно.

сейчас там 16mb NOR flash, 512mb NAND flash, 256mb SDRAM
kiabrin
Цитата(AlexandrY @ May 16 2009, 22:56) *
А менеджер питания какой? MC13783 или как в IP камере на LM26480S?

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


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


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

Цитата(kiabrin @ May 17 2009, 00:51) *
сейчас пока на LDO, навесным монтажом. все напряжения в порядке.
да и причем тут.... он же вообще не стартует.


тут вопрос чем отладить ядро, что бы понять, чего оно циклится на адресе 15C-160 от начала...
kiabrin
Цитата(AlexandrY @ May 18 2009, 00:59) *
Ну как бы 3-и поколения плат на i.MX27 поднял...
Но вам наверно виднее biggrin.gif


да нет, конечно Вам виднее smile.gif
а де посмотреть ревизию проца?
на самом камне написано:
Код
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.

спасибо за помощь!
AlexandrY
RedBoot не моя тема. У меня свой загрузчик для осей.
Но в том что вы показали видна странность.
Грузите вы ядро с адреса 0x00050000, а управление передаете в гораздо меньшие адреса 0xa0008000
Хотя как бы в RedBoot-е в доке для платформы i.MX27 для обоих рекомендуется 0x00100000. (области с 0x00000000 и с 0xa0000000 мапированы на одну и ту же физическую память)
Т.е. и загрузка и точка входа начинаются с одного адреса.
Или вы сильно перепахали этот RedBoot?

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

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

Цитата(kiabrin @ May 18 2009, 12:06) *
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]
SFx
у меня было что то подобное с оригинальным китом i.mx27.

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

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

Цитата(SFx @ May 19 2009, 08:58) *
у меня было что то подобное с оригинальным китом i.mx27.

а параметры ядра какие передаются? прилипите конфиг файл.
kiabrin
Цитата(AlexandrY @ May 18 2009, 23:18) *
RedBoot не моя тема. У меня свой загрузчик для осей.
Но в том что вы показали видна странность.
Грузите вы ядро с адреса 0x00050000, а управление передаете в гораздо меньшие адреса 0xa0008000
Хотя как бы в RedBoot-е в доке для платформы i.MX27 для обоих рекомендуется 0x00100000. (области с 0x00000000 и с 0xa0000000 мапированы на одну и ту же физическую память)
Т.е. и загрузка и точка входа начинаются с одного адреса.
Или вы сильно перепахали этот RedBoot?

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

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


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

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

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

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

и самое главное -- посоветуйте пожалуйста чем его отлаживать!
AlexandrY
Вы где Redboot-то брали?

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

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

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

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

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


Цитата(kiabrin @ May 19 2009, 10:48) *
в редбуте включен MMU, и оперативка мапирована на адрес 0. сам редбут занимает память с 0 до примерно 40000, так что я гружу образ с адреса 50000. в fis там записано, что у ядра начальный адрес и точка входа a0008000. по команде exec редбут выключает MMU, релоцирует образ на адрес a0008000 и передает туда управление. я это проверял. кстати, так написано в доке по редбуту.

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

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

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

и самое главное -- посоветуйте пожалуйста чем его отлаживать!
kiabrin
Цитата(AlexandrY @ May 19 2009, 12:11) *
Вы где 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.
AlexandrY
А.. уже яснее.

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

Короче ваша проблема решается довольно просто но только не open source тулсами.
Качайте среду разработки Keil и работайте с отладкой через нее.
А вопросы задавайте в разделе про ARM-ы


Цитата(kiabrin @ May 19 2009, 12:00) *
дело такое, я и без редбута его грузил J-Link ом и запускал с тем же эффектом.
Uncompressing linux..... -- это пишет уже само ядро. после этого оно должно запустится уже распакованое.

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

а редбута у меня даже исходников нету. я же говорю, им другой человек занимался.
а ядра я собираю из openembedded.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.