реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Отладка ROM кода Sitara am3517
Dilim
сообщение Oct 28 2013, 10:36
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 28-08-13
Пользователь №: 78 089



Имеется плата с камнем TI am3517, 8ми битной Nand. С Nand плата не грузится, с MMC работает нормально. Подключение отладчика показало, что ROM код стартует, инициализирует регистры GPMC, после чего перезагружается и по новой. При пошаговой отладке не удалось понять на чём валится процесс загрузки, т.к. срабатывает исключение и выкидывает на какой то вектор, который в обычном режиме работы никогда не срабатывает (ставил брэйкпоинт в отладчике). Вопроса, собственно, два:
1. Почему не идет загрузка с nand? при загрузке с mmc записываю в nand первичный загрузчик, u-boot и т.д. дамп показывает, что всё записалось.
2.Как включить поддержку watchpoint для j-link под linux? вот здесь: http://processors.wiki.ti.com/index.php/J-...mulator_Support нашел, что по умолчанию в j-link watchpoints выключены и их как то надо включить. Работаю в убунте, code composer studio v 5. Под виндой нет поддержки данного камня у j-link.
Go to the top of the page
 
+Quote Post
Jury093
сообщение Oct 28 2013, 14:55
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050



Цитата(Dilim @ Oct 28 2013, 13:36) *
1. Почему не идет загрузка с nand? при загрузке с mmc записываю в nand первичный загрузчик, u-boot и т.д. дамп показывает, что всё записалось.

если есть возможность, посмотрите осциллом наличие обмена между АРМом и нандом - если обращения нет, то неправильно сконфигурен режим загрузки для АРМа

чип нанда выбран правильно (исходя из таблицы рекомендуемых "Table 24-34. Supported NAND Devices")? есть ли на форумах преценденты, что с этого чипа грузится?
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Oct 28 2013, 18:17
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(Dilim @ Oct 28 2013, 14:36) *
Имеется плата с камнем TI am3517, 8ми битной Nand. С Nand плата не грузится, с MMC работает нормально. Подключение отладчика показало, что ROM код стартует, инициализирует регистры GPMC, после чего перезагружается и по новой. При пошаговой отладке не удалось понять на чём валится процесс загрузки, т.к. срабатывает исключение и выкидывает на какой то вектор, который в обычном режиме работы никогда не срабатывает (ставил брэйкпоинт в отладчике). Вопроса, собственно, два:
1. Почему не идет загрузка с nand? при загрузке с mmc записываю в nand первичный загрузчик, u-boot и т.д. дамп показывает, что всё записалось.
2.Как включить поддержку watchpoint для j-link под linux? вот здесь: http://processors.wiki.ti.com/index.php/J-...mulator_Support нашел, что по умолчанию в j-link watchpoints выключены и их как то надо включить. Работаю в убунте, code composer studio v 5. Под виндой нет поддержки данного камня у j-link.



Я бы посоветовал подключить обработчик ексепшна. Скорее всего вы либо обращаетесь к неразрешенной памяти, либо адрес не выровнен по 32 битам, что и вызывает ексепшн.
Дайте знать если вам интересен загрузчик с обработчиком ексепшна. У меня где-то был. Виснуть не будет.

Вы модернизировали код?

Когда я делал мне сказали как настраивать JTAG. Сейчас не вспомню.
Посмотрите link с форума поддержки в нижней части страницы есть список тем про код композер и jtag.

http://e2e.ti.com/search/default.aspx#q=co...um&group=29


Вы можете там (TI e2e) задать вопрос.

Сообщение отредактировал Tarbal - Oct 28 2013, 18:19
Go to the top of the page
 
+Quote Post
Dilim
сообщение Oct 29 2013, 06:16
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 28-08-13
Пользователь №: 78 089



Цитата(Jury093 @ Oct 28 2013, 18:55) *
если есть возможность, посмотрите осциллом наличие обмена между АРМом и нандом - если обращения нет, то неправильно сконфигурен режим загрузки для АРМа

чип нанда выбран правильно (исходя из таблицы рекомендуемых "Table 24-34. Supported NAND Devices")? есть ли на форумах преценденты, что с этого чипа грузится?

Чип выбран по таблице, причем пробовали Micron и Samsung, правда с одинаковым chip ID 0xDA. Режим загрузки выбран, чтобы первый был нанд, и обмен идёт - это видно через отладчик. Читается ID, конфигурируются регистры GPMC(конфигурируется правильно) и после этого ребут.

Цитата(Tarbal @ Oct 28 2013, 22:17) *
Я бы посоветовал подключить обработчик ексепшна. Скорее всего вы либо обращаетесь к неразрешенной памяти, либо адрес не выровнен по 32 битам, что и вызывает ексепшн.
Дайте знать если вам интересен загрузчик с обработчиком ексепшна. У меня где-то был. Виснуть не будет.

Вы модернизировали код?

Да как раз вся проблема в том, что до выполнения загрузчика дело не доходит, если судить по отладчику, то за пределы rom кода самого процессора выполнение не идёт.

Цитата(Tarbal @ Oct 28 2013, 22:17) *
Когда я делал мне сказали как настраивать JTAG. Сейчас не вспомню.
Посмотрите link с форума поддержки в нижней части страницы есть список тем про код композер и jtag.

http://e2e.ti.com/search/default.aspx#q=co...um&group=29

Спасибо, jtag вчера настроил под виндой, теперь всё работает.

Go to the top of the page
 
+Quote Post
Jury093
сообщение Oct 30 2013, 07:53
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050



Цитата(Dilim @ Oct 29 2013, 09:16) *
Чип выбран по таблице, причем пробовали Micron и Samsung, правда с одинаковым chip ID 0xDA. Режим загрузки выбран, чтобы первый был нанд, и обмен идёт - это видно через отладчик. Читается ID, конфигурируются регистры GPMC(конфигурируется правильно) и после этого ребут.


у вас это соединение есть?
Код
The wait pin signal gpmc_wait0 is connected to the NAND BUSY output


похоже вылетает в rom-процедурах считывания id1 или id2..

конфигурационые пины выставлены правильно? может там дефект..

судя по бут-сиквенс у вас все правильно и дальше должен считываться первый блок из нанда..

из софтовой лирики:
а как вы пишете в нанд? из линукса после загрузки с sd/mmc?
как вариант попробуйте из юбута затереть весь нанд и его же средствами, считав файлы с sd, накатить в нанд..
Go to the top of the page
 
+Quote Post
Dilim
сообщение Oct 30 2013, 12:12
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 28-08-13
Пользователь №: 78 089



Цитата(Jury093 @ Oct 30 2013, 11:53) *
у вас это соединение есть?
Код
The wait pin signal gpmc_wait0 is connected to the NAND BUSY output

Пин gpmc_wait0 подключен к выводу READY/BUSY нанда.

Цитата(Jury093 @ Oct 30 2013, 11:53) *
похоже вылетает в rom-процедурах считывания id1 или id2..

конфигурационые пины выставлены правильно? может там дефект..

судя по бут-сиквенс у вас все правильно и дальше должен считываться первый блок из нанда..

sys_boot пины проверял неоднократно, там все нормально, да и не похоже, что в них ошибка, потому что он вроде как пытается с нанда загрузится. Если бы не читал id, или читал бы неправильно, то не конфигурил бы правильно регистры GPMC_CONFIG. Так что тут вроде как всё хорошо.
Судя по бут-сиквенс дальше он должен копировать образ загрузчика из нанда в RAM и при пошаговой отладке в регистре R0 на несколько шагов появлятся адрес 0x40200800 (с этого адреса начинается исполнение загрузчика в RAM - проверял на работающей плате с 16ти битным нандом) но после этого всё рушится..

Цитата(Jury093 @ Oct 30 2013, 11:53) *
из софтовой лирики:
а как вы пишете в нанд? из линукса после загрузки с sd/mmc?
как вариант попробуйте из юбута затереть весь нанд и его же средствами, считав файлы с sd, накатить в нанд..

Именно через юбут и записываю. После заливки сравнивал получившийся дамп нанда и файл загрузчика в hex редакторе - всё одинаково.

Сообщение отредактировал Dilim - Oct 30 2013, 12:13
Go to the top of the page
 
+Quote Post
Jury093
сообщение Oct 30 2013, 13:45
Сообщение #7


Знающий
****

Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050



Цитата(Dilim @ Oct 30 2013, 15:12) *
Пин gpmc_wait0 подключен к выводу READY/BUSY нанда.

ок

Цитата
sys_boot пины проверял неоднократно, там все нормально, да и не похоже, что в них ошибка, потому что он вроде как пытается с нанда загрузится. Если бы не читал id, или читал бы неправильно, то не конфигурил бы правильно регистры GPMC_CONFIG. Так что тут вроде как всё хорошо.
Судя по бут-сиквенс дальше он должен копировать образ загрузчика из нанда в RAM и при пошаговой отладке в регистре R0 на несколько шагов появлятся адрес 0x40200800 (с этого адреса начинается исполнение загрузчика в RAM - проверял на работающей плате с 16ти битным нандом) но после этого всё рушится..

так все же что-то считывает с нанда или валится в момент чтения? момент достаточно принципиальный: одно дело не может считать Id, другое - пытается работать со считанными данными..

в мане на проц есть такое абзац
"24.4.7.4.2 Read Sector Procedure
During the booting procedure, the ROM code reads 512-byte sectors from the NAND device. The reading
fails in two cases:
• The accessed sector is in a block marked as invalid.
• The accessed sector contains an error that cannot be corrected with ECC"

и ветка на форуме - вроде без решения, но с похожей симптоматикой:
http://e2e.ti.com/support/arm/sitara_arm/f/791/t/36709.aspx

Цитата
Именно через юбут и записываю. После заливки сравнивал получившийся дамп нанда и файл загрузчика в hex редакторе - всё одинаково.

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

Сообщение отредактировал Jury093 - Oct 30 2013, 13:55
Go to the top of the page
 
+Quote Post
sasamy
сообщение Oct 30 2013, 14:58
Сообщение #8


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(Jury093 @ Oct 30 2013, 17:45) *
• The accessed sector contains an error that cannot be corrected with ECC"



Скорей всего в u-boot и rom-буте не совпадают схемы ECC
http://e2e.ti.com/support/arm/sitara_arm/f/791/t/116753.aspx

но это же TI - привыкайте что там все через ж-у сделано sm.gif
Go to the top of the page
 
+Quote Post
Dilim
сообщение Nov 8 2013, 07:31
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 28-08-13
Пользователь №: 78 089



Цитата(sasamy @ Oct 30 2013, 18:58) *
Скорей всего в u-boot и rom-буте не совпадают схемы ECC
http://e2e.ti.com/support/arm/sitara_arm/f/791/t/116753.aspx


Цитата(Jury093 @ Oct 30 2013, 17:45) *
ок


так все же что-то считывает с нанда или валится в момент чтения? момент достаточно принципиальный: одно дело не может считать Id, другое - пытается работать со считанными данными..

в мане на проц есть такое абзац
"24.4.7.4.2 Read Sector Procedure
During the booting procedure, the ROM code reads 512-byte sectors from the NAND device. The reading
fails in two cases:
• The accessed sector is in a block marked as invalid.
• The accessed sector contains an error that cannot be corrected with ECC"

и ветка на форуме - вроде без решения, но с похожей симптоматикой:
http://e2e.ti.com/support/arm/sitara_arm/f/791/t/36709.aspx

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


Дело в том, что на плате с 16ти разрядным нанд такой способ загрузки работает. Не будут же отличаться ЕСС для разных разрядностей флешек.. или у TI всё настолько?)

Go to the top of the page
 
+Quote Post
Dilim
сообщение Nov 8 2013, 12:07
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 28-08-13
Пользователь №: 78 089



ХА! действительно, так оно и было, для разных разрядностей по разному пишется... долго же я с этим мучался! Всем спасибо!
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 04:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.01469 секунд с 7
ELECTRONIX ©2004-2016