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

 
 
9 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> AM1705 первый запуск, UBL, UART
Славка
сообщение Oct 12 2011, 10:05
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 6-04-10
Пользователь №: 56 441



Добрый день!
Пытаюсь запустить AM1705 уже который день. Плата и схема моего же производства.
Скачал OMAP-L137_FlashAndBootUtils_2_20. Откомпилировал благополучно.
Установил частоту 300Mhz, тайминги памяти, частоту uartа. (device.c, device_uart.c)
Установил strapы в BOOTMODE UART2.
При старте выдает BOOTME.
Пытаюсь стереть флешку командой:
sfh_OMAP-L137.exe -v -p COM1 -targetType AM1707 -erase -flashType SPI_MEM
Прошивка благополучно передается по UART и застревает на
Код
(AIS Parse): AIS complete. Jump to address 0x80000000.
(AIS Parse): Waiting for DONE...
(AIS Parse): Boot completed successfully.

Waiting for SFT on the OMAP-L137...


Осциллографом не видно SDRAM clk - делаю вывод что до инициализации памяти дело не доходит, застревает раньше.
Питание процессора подаю вручную тумблерами (сначала 1.2 потом 3.3).
Не подаю питание 1.2 и 1.8 на USB так как не буду его использовать. Думал из-за этого не работает. Пробовал в инициализации PSC не включать USB.
Код
void DEVICE_PSCInit()
{
...
//  for( i = 1; i <= 13; i++ )
  for( i = 2; i <= 13; i++ )
    PSC1->MDCTL[i] = (PSC1->MDCTL[i] & 0xFFFFFFE0) | PSC_ENABLE;
...
}

Не помогает.
Есть jtag SAU510-USB но его подключить так и не смог. CCS4.1.2 ругается и не конектится к процессору. (не завел на плате RTCK, может из за этого)
Посоветуйте хотя бы в каком направлении двигаться с этим черным ящиком, который только BOOTME выдавать может.

Сообщение отредактировал Славка - Oct 12 2011, 10:09
Go to the top of the page
 
+Quote Post
PavelG
сообщение Oct 12 2011, 11:09
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674



Цитата(Славка @ Oct 12 2011, 14:05) *
Добрый день!
Пытаюсь запустить AM1705 уже который день. ...
sfh_OMAP-L137.exe -v -p COM1 -targetType AM1707 -erase -flashType SPI_MEM


А может все дело в том, что в команде Вы указали другой процессор (AM1707 вместо AM1705)?
Go to the top of the page
 
+Quote Post
Славка
сообщение Oct 12 2011, 11:28
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 6-04-10
Пользователь №: 56 441



Цитата(PavelG @ Oct 12 2011, 14:09) *
А может все дело в том, что в команде Вы указали другой процессор (AM1707 вместо AM1705)?

AM1705 указать для sfh нельзя.
Как такового софта UBL для AM1705 нет. 1707 отличается только наличием LCD и 32-битным SDRAM.
И по регистрам они сходятся почти. Потому народ использует UBL от 1707 для 1705 изменив только SDCFG регистра для 16-бит памяти.
http://e2e.ti.com/support/dsp/omap_applications_processors/f/42/t/107883.aspx
Все это мои домыслы и чтение форумов. Как оно на самом деле я не знаю, так как процессор до сих пор не запущен.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 12 2011, 17:13
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Славка @ Oct 12 2011, 14:05) *
Посоветуйте хотя бы в каком направлении двигаться с этим черным ящиком, который только BOOTME выдавать может.

Грузите u-boot через UART, дальше работайте через него. Ну, можно еще свою программку написать на предмет проверки памяти и прочего.

P.S. С SFH я как-то не подружился. AISGen + UART Boot Host для жизни вполне достаточно.
Go to the top of the page
 
+Quote Post
Славка
сообщение Oct 13 2011, 05:04
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 6-04-10
Пользователь №: 56 441



Цитата(aaarrr @ Oct 12 2011, 21:13) *
Грузите u-boot через UART, дальше работайте через него. Ну, можно еще свою программку написать на предмет проверки памяти и прочего.

P.S. С SFH я как-то не подружился. AISGen + UART Boot Host для жизни вполне достаточно.

Написал hello world для проца. Загружаю прогу через Uart Boot Host. Когда в AisGenе выставляю Configure PLL
Код
(AIS Parse): Processing command 1: 0x58535901.
(AIS Parse): Performing Opcode Sync...
(Serial Port): Read error! (The operation has timed out.)
(AIS Parse): I/O Error in read!
(Serial Port): Read error! (The operation has timed out.)
(AIS Parse): I/O Error in read!
(Serial Port): Read error! (The operation has timed out.)
(AIS Parse): I/O Error in read!
(Serial Port): Read error! (The operation has timed out.)
(AIS Parse): I/O Error in read!

Когда не выставляю прошивка благополучно передается (но не запускается, я в ней ничего не инициализирую, кроме uartа). В чем проблема? Кварц 25 МГц. Пробовал обе установки:12-1-3-3-6 (300, 300, 100, 100, 50 МГц) 24-2-3-3-6 (600,300, 100, 100, 50МГц)

Go to the top of the page
 
+Quote Post
Славка
сообщение Oct 17 2011, 11:12
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 6-04-10
Пользователь №: 56 441



Добрый день всем!
Решил проблему. Застревал процессор по непонятным причинам. Очень много над ним издевался и эксперементировал. Плата не выдержала мучений (дорожки начали отваливаться от множества перепаек). Решил спаять новую, с новыми деталями, все по минимуму - проц, питание, разъем uart и кварц. UBL запустился сразу, без ошибок. Решил конвертнуть в AIS uboot. Пришлось немного пошаманить с кодом (у меня UART0 вместо UART2, другая память, другой кварц). Uboot благополучно запустился через UART. Чему я несказанно рад.
Вопрос в следущем. Процессор очень прилично греется, через минуту-две палец на нем не удержать. Так и должно быть после загрузки uboot?
Go to the top of the page
 
+Quote Post
Славка
сообщение Oct 17 2011, 12:19
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 6-04-10
Пользователь №: 56 441



Была ошибка в схеме. Теперь проц холодный, всем спасибо!
Go to the top of the page
 
+Quote Post
PavelG
сообщение Oct 18 2011, 11:24
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674



Можно попросить Вас прислать мне принципиальную схему включения процессора (из минимального набора) на почту J.Joker_podpole@mail.ru (Для личных сообщений я пока еще рейтингом не вышел). У меня похоже тоже проблема в схеме зарыта, но найти пока не удаеться.
Go to the top of the page
 
+Quote Post
Славка
сообщение Oct 21 2011, 12:51
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 6-04-10
Пользователь №: 56 441



Цитата(PavelG @ Oct 18 2011, 15:24) *
Можно попросить Вас прислать мне принципиальную схему включения процессора (из минимального набора) на почту J.Joker_podpole@mail.ru (Для личных сообщений я пока еще рейтингом не вышел). У меня похоже тоже проблема в схеме зарыта, но найти пока не удаеться.

Выслал.

Первая плата не запускалась из-за спаленной микросхемы phy. Почему уровни на выводах RMII интерфейса влияют на старт PLL одному TI известно. Когда начал дальше собирать плату опять спалил phy (ошибка в схеме) и опять нихрена не грузилось. Отпаял физику заработало. Исправил ошибку, припаял новую физику, все заработало. Никогда не используйте 1.8В от micrel KSZ8041TL под свои нужды) Наш разводчик решил сэкономить. Имея отдельный источник 1.8В, он завел микреловский на развязывающий транс. Влом было дорожку протянуть, ну а я проглядел rolleyes.gif
Go to the top of the page
 
+Quote Post
PavelG
сообщение Oct 21 2011, 16:20
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674



Цитата(Славка @ Oct 21 2011, 16:51) *
Выслал.

Первая плата не запускалась из-за спаленной микросхемы phy. Почему уровни на выводах RMII интерфейса влияют на старт PLL одному TI известно. Когда начал дальше собирать плату опять спалил phy (ошибка в схеме) и опять нихрена не грузилось. Отпаял физику заработало. Исправил ошибку, припаял новую физику, все заработало. Никогда не используйте 1.8В от micrel KSZ8041TL под свои нужды) Наш разводчик решил сэкономить. Имея отдельный источник 1.8В, он завел микреловский на развязывающий транс. Влом было дорожку протянуть, ну а я проглядел rolleyes.gif


Спасибо Вам, Вячеслав. Оказалось, что проблема была в том, что вывод TRST я подтянул к питанию, а не к земле, хотя делал все исходя из описания POR и Warm Reset. Теперь буду пытаться прошить UBL и u-boot.
Go to the top of the page
 
+Quote Post
Славка
сообщение Oct 21 2011, 20:59
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 6-04-10
Пользователь №: 56 441



Цитата(PavelG @ Oct 21 2011, 20:20) *
Спасибо Вам, Вячеслав. Оказалось, что проблема была в том, что вывод TRST я подтянул к питанию, а не к земле, хотя делал все исходя из описания POR и Warm Reset. Теперь буду пытаться прошить UBL и u-boot.

Да пожалуйста!
TRST внутренне подтянут к земле, и в принципе без внешнего резистора все прекрасно работает. Но где-то на ti.wiki нашел, что желательно его подтянуть внешним резстором.
Если будут вопросы спрашивайте здесь, а не через почту. В интернете так мало информации по этим процессорам, тем более на русском. Из-за этого я потратил уйму времени, чтоб его запустить. Думаю, пока это один из моих текущих прожектов на работе, и все в памяти, смогу помочь.
Go to the top of the page
 
+Quote Post
Славка
сообщение Oct 28 2011, 12:54
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 6-04-10
Пользователь №: 56 441



Добрый день!
Добрался я до загрузки Linux.
Гружусь c SPI Flash сразу U-boot. В инициализации отключил всю перефирию, что не использую.
(PSC0 - 0,1,2,4,6,9,10,11,12,13,14 PSC1 - 3,5,6,24,25,26,31)
Гружу линух через tftp:
Код
U-Boot 2009.11 (РћРєС‚ 27 2011 - 15:45:48)

DRAM:  16 MB
In:    serial
Out:   serial
Err:   serial
ARM Clock : 300000000 Hz
Net:   88E6165 Initialized on daveth0
Can't overwrite "ethaddr"

Hit any key to stop autoboot:  0
U-Boot > tftp 0xc0800000 uImage
Using  device
TFTP from server 10.64.28.10; our IP address is 10.64.28.5
Filename 'uImage'.
Load address: 0xc0800000
Loading: #################################################################
         ##############################################
done
Bytes transferred = 1626140 (18d01c hex)
U-Boot > bootm 0xc0800000
## Booting kernel from Legacy Image at c0800000 ...
   Image Name:   Linux-2.6.33-rc4
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1626076 Bytes =  1.6 MB
   Load Address: c0008000
   Entry Point:  c0008000
   Verifying Checksum ... OK
   Loading Kernel Image ...

U-Boot 2009.11 (РћРєС‚ 27 2011 - 15:45:48)

DRAM:  16 MB
In:    serial
Out:   serial
Err:   serial
ARM Clock : 300000000 Hz
Net:   88E6165 Initialized on daveth0
Can't overwrite "ethaddr"

Hit any key to stop autoboot:  0
U-Boot >

Как видно проц уходит в резет после Loading Kernel Image ...
Никакой debug включить не получается. У меня UART0 вместо UART2.
Исправил везде, где нашел UART2 на UART0:
1. bootargs mem=16M console=ttyS0,115200n8
2. debug_macro.S:
Код
orr    \rx, \rx, #0x00C40000    @ physical base address
orr    \rx, \rx, #0x00002000    @ of UART 0

3. board-da830-evm.c:
Код
static int __init da830_evm_console_init(void)
{
    return add_preferred_console("ttyS", 0, "115200");
}

4. uncompress.h:
Код
static u32 *get_uart_base(void)
{
    if (__machine_arch_type == MACH_TYPE_DAVINCI_DA830_EVM ||
        __machine_arch_type == MACH_TYPE_DAVINCI_DA850_EVM)
        return (u32 *)DA8XX_UART0_BASE;
    else
        return (u32 *)DAVINCI_UART0_BASE;
}


В menuconfig выставил early debug.
Но ни символа не вышло с uart crying.gif
Когда гружу u-boot через uart, а потом linux через tftp, то в том месте проц тупо виснет.
С spi перезагружается. Чтобы я не делал, с какими опциями не компилировал ядро.
Пробовал отключать в ядре все драйверы, что я не использую (I2C, NAND, Sound Card, Multimedia, RTC, MMC)
Безрезультатно.
Может кто-нибудь посоветует, куда смотреть?
Ядро: Davinci linux-03.20.00.14
С готовым образом uImage из сборки поведение абсолютно такое же - перезагрузка.

Сообщение отредактировал Славка - Oct 28 2011, 13:24
Go to the top of the page
 
+Quote Post
PavelG
сообщение Nov 2 2011, 13:21
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674



Цитата(Славка @ Oct 28 2011, 15:54) *
Когда гружу u-boot через uart...


Скажите пожалуйста, мне удалось на своей процессор (AM1705) загрузить UBL, а как потом загрузить u-boot через UART? Не затрет ли он UBL? Пользуюсь AISgen и UART Boot Host.

Забыл сказать, пробовал после записи UBL записать U-boot, и программа Boot host полсле
(AIS Parse): Read magic word 0x41504954 закрывала COM порт. U-boot собран в CodeSourcery.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 2 2011, 13:27
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Что-то не понимаю проблемы:
1. Берете бинарник u-boot
2. Окучиваете его при помощи AISgen, указав нужный адрес и настройки памяти/периферии
3. Загружаете полученный файл на голую плату при помощи UART Boot Host
Вот и всё.
Go to the top of the page
 
+Quote Post
Славка
сообщение Nov 7 2011, 06:45
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 6-04-10
Пользователь №: 56 441



Проблема с перезагрузкой решена! Так как у меня на борту стоит 16Мб ОЗУ, а entrypoint u-boot установлен по умолчанию с отступом от начала на 16 Мб, чтобы linux мог развернуться. Так вот u-boot у меня писался в область памяти, где разворачивается linux + 16 Мб (старший адресс у меня на памяти не заведен вообще). Тоесть вроде все работало нечайно)) Когда исправил entry point u-boot, все заработало с пол пинка. Осталось сделать файловую систему для линукса, что в принципе не сложно, опыт есть. Но сейчас приходится заниматься старым проектом, исправлением глюков, потому откладывается на неопределенный срок.
Цитата(PavelG @ Nov 2 2011, 17:21) *
Скажите пожалуйста, мне удалось на своей процессор (AM1705) загрузить UBL, а как потом загрузить u-boot через UART? Не затрет ли он UBL? Пользуюсь AISgen и UART Boot Host.

Забыл сказать, пробовал после записи UBL записать U-boot, и программа Boot host полсле
(AIS Parse): Read magic word 0x41504954 закрывала COM порт. U-boot собран в CodeSourcery.

Грузите сразу uboot без ubl.
1. Открываете инструкцию UserGuide (в папке docs SDK). Ищете инструкцию по компиляции u-boot. Компилируете.
2. Берете файл u-boot (без расширения, это ELF файл. не u-boot.bin). Запускаете AisGen.
3. В AisGen внимательно по даташиту и вашей схеме настраиваете все что у вас используется на плате (bootmode, кварц, память, PINMUX, PSC...) и генерируете AIS.
4. Грузите через UARTHOST ais файл.
5. Радуетесь biggrin.gif

Как подпилить u-boot - отдельная песня. Все зависит от того, насколько ваша плата отличается от кита. Спросите что конкретно подкрутить - я подскажу в каком месте в исходниках это делается.
Go to the top of the page
 
+Quote Post
PavelG
сообщение Nov 7 2011, 14:59
Сообщение #16


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674



Цитата(Славка @ Nov 7 2011, 09:45) *
Как подпилить u-boot - отдельная песня. Все зависит от того, насколько ваша плата отличается от кита. Спросите что конкретно подкрутить - я подскажу в каком месте в исходниках это делается.


Подкрутить надо NAND 32Mx8. Подключена она к EMIF_A (выводы EMA_WAIT, EMA_OE, EMA_CS2, EMA_WE, EMA_A1 и A2, EMA_D0...EMA_D7). К EMIF_B подключена SDRAM 1Mx16Bitx4bank. Ядро linux должно грузиться из NAND памяти.
Go to the top of the page
 
+Quote Post
Славка
сообщение Nov 8 2011, 07:00
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 6-04-10
Пользователь №: 56 441



Цитата(PavelG @ Nov 7 2011, 18:59) *
Подкрутить надо NAND 32Mx8. Подключена она к EMIF_A (выводы EMA_WAIT, EMA_OE, EMA_CS2, EMA_WE, EMA_A1 и A2, EMA_D0...EMA_D7). К EMIF_B подключена SDRAM 1Mx16Bitx4bank. Ядро linux должно грузиться из NAND памяти.


U-boot хоть как то уже запущен?
USER-Guide читали, главу rebuilding u-boot?
spraba4b.pdf Apendix B?
Непонятно просто, чего уже получилось. По идее делаешь CONFIG_SYS_USE_NAND в da830.h, а дальше по обстоятельствам.
Go to the top of the page
 
+Quote Post
PavelG
сообщение Nov 8 2011, 10:29
Сообщение #18


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674



User-guide читал, про bootloader тоже, NAND ядром поддерживается.
U-boot собран, в файле da830evm.h написал так
Код
/*Board*/
#undef CONFIG_USE_SPIFLASH
#define CONFIG_USE_NAND
...
#define PHYS_SDRAM_1_SIZE (32<<20)


Если в AISgen собираю с отключенным PLL, то зависает в следующем состояние:
Код
(AIS Parse): Processing command 22: 0x5853590D.
(AIS Parse): Performing Opcode Sync...
(AIS Parse): Executing function...
(AIS Parse): Processing command 23: 0x58535901.
(AIS Parse): Performing Opcode Sync...
(AIS Parse): Loading section...


Если в AISgen собираю с установленными значениями PLL, то получаю:
Код
((Serial Port): Read error! (Время ожидания операции истекло.)
(AIS Parse): I/O Error in read!
(AIS Parse): Opcode Sync failed after 11 consecutive I/O failures.
(AIS Parse): Boot aborted.
(Serial Port): Closing COM3.


PINMUX настроил только на подключение EMIF и UARTов. У меня подозрение на то, что я не правильно установил настройки периферии.
Go to the top of the page
 
+Quote Post
PavelG
сообщение Nov 8 2011, 14:26
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674



Проблема решена, оказываеться надо было подождать немного. В общем как-то загрузилось, но при выключенном PLL. Вопрос следующий, а как теперь проверить, как U-boot работает? Я встречал строчку про использование UART1 для терминала, и список комманд u-boot, это подойдет?
Go to the top of the page
 
+Quote Post
Славка
сообщение Nov 9 2011, 09:01
Сообщение #20


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 6-04-10
Пользователь №: 56 441



Цитата(PavelG @ Nov 8 2011, 18:26) *
Проблема решена, оказываеться надо было подождать немного. В общем как-то загрузилось, но при выключенном PLL. Вопрос следующий, а как теперь проверить, как U-boot работает? Я встречал строчку про использование UART1 для терминала, и список комманд u-boot, это подойдет?

В AIS должен быть включен Configure PLL, Configure EMIFA, Configure EMIFB, Configure LPSC, Configure PINMUX. Все это должно быть верно настроенно в соответствующих полях. Если прошивка до конца не загружается, то проблема скорее всего в настройках памяти.
У меня со включенным PLL тоже не грузилось, проблема была как оказалось в PHY Micrel. На новой плате я ее не запаял, и все загрузилось. Не знаю, как это влияет на процесс загрузки.
Кварц должен быть 24 МГц low-ESR. Если другой(например 25):
#define CONFIG_SYS_OSCIN_FREQ 25000000
Нужно проверить осциллографом наличие генерации кварца, и частоты SDRAM_CLK.
Если используется другой юарт шаманить надо гораздо больше.
В конфиге отключите все лишнее, например USB и I2C.
Когда отключаете например I2C, то u-boot не откомпилируется, но там над по ходу закоментировать все лишнее (компилятор укажет что).
У меня не проходил проц стандартную инициализацию board_init. Я вырезал все лишнее и оставил только то, что нужно.
Нужно изменить инициализацию платы в da830evm.c.
вот мой пример:
Код
int board_init(void)
{
    /* arch number of the board */
    gd->bd->bi_arch_number = MACH_TYPE_DAVINCI_DA830_EVM;

    /* address of boot parameters */
    gd->bd->bi_boot_params = LINUX_BOOT_PARAM_ADDR;
    /*
     * Power on required peripherals
     * ARM does not have access by default to PSC0 and PSC1
     * assuming here that the DSP bootloader has set the IOPU
     * such that PSC access is available to ARM
     */

    lpsc_on(DAVINCI_LPSC_SPI0);     /* Serial Flash */
    lpsc_on(DAVINCI_LPSC_EMAC);     /* image download */
    lpsc_on(DAVINCI_LPSC_UART0);    /* console */
    lpsc_on(DAVINCI_LPSC_GPIO);
    
    writel(readl(&davinci_syscfg_regs->suspsrc) &
           ~(DAVINCI_SYSCFG_SUSPSRC_EMAC |
         DAVINCI_SYSCFG_SUSPSRC_SPI0 |
         DAVINCI_SYSCFG_SUSPSRC_UART0),
           &davinci_syscfg_regs->suspsrc);
    
    writel((DAVINCI_UART_PWREMU_MGMT_FREE | DAVINCI_UART_PWREMU_MGMT_URRST |
        DAVINCI_UART_PWREMU_MGMT_UTRST),
           &davinci_uart0_ctrl_regs->pwremu_mgmt);

    return(0);
}
int misc_init_r(void)
{
    printf ("ARM Clock : %d Hz\n", clk_get(DAVINCI_ARM_CLKID));
#ifdef CONFIG_HARD_I2C
    uint8_t eeprom_enetaddr[6], tmp[2];
    
    /* Read Ethernet MAC address from EEPROM if available. */
    if (dvevm_read_mac_address(eeprom_enetaddr))
        dv_configure_mac_address(eeprom_enetaddr);

    tmp[0] = 0x01;
    tmp[1] = 0x23;

    if(i2c_write(0x5f, 0, 0, tmp, 2)) {
        printf("Ethernet switch start failed!\n");
    }
#endif
}

Я не помню как точно, но когда грузился через uart, я вообще все закоментировал, так как AIS сам в этом месте все настроил, а по второму разу почему то в этом месте застревало. Когда грузился через UART то почему то MDR регистр выставлялся на делитель 13 и UART работал на непонятном baudrate. Соответственно для этого в serial.c нужно MODE_X_DIV установить в 13. А потом поменять на 16, когда сделаете AIS для загрузки с NAND.
Если загрузится U-boot, то открыв терминал, увидите что-то наподобии шела линуксового, можно будет выполнять различные команды и многое другое (эт так, на всякий случай, если ни разу не видели).
В общем первое - убедится, что прошивка целиком передалась на устройство через UARTHOST(он об этом скажет), а потом шаманить в папках, которые я указал в предыдущих постах и исправлять под свою конфигурацию.
Go to the top of the page
 
+Quote Post
PavelG
сообщение Nov 9 2011, 23:40
Сообщение #21


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674



Я несколько запутался, и так по порядку:

1) Какой бы конфиг U-boot я бы не сделал, после обработки в AISGen с правильными параметрами EMIFA, EMIFB, LPSC, PINMUX и PLL U-boot должен нормально заливаться.

2) В моем случае EMIFA в AISGen можно отключить так как у меня NAND к этому модулю подключен, и мне нужно только править CE3CFG. Хотя тут не понятно, так как в документе от TI про Bootloader было написано что поля EMIFA настраивают модуль EMIFB.

3) Вы ссылались на файл serial.c, не подскажите, где он расположен? Я поискам по папкам искал, там их много но все не относящиеся к плате da830.

4) В AISGen есть выпадающий список Bootmode, и мне не понятно, что будет происходить при различных вариантах выбора. Игрался я с различными вариантами (UART2 и NAND), при отключенном PLL, получал надпись о том что boot прошел успешно, но в терминале было глухо (проверял посылкой команды help).

Извините, если ответы на какие-то вопросы очевидны, просто это мой первый опыт по работе с процессорами и установкой на них ОС.
Go to the top of the page
 
+Quote Post
Славка
сообщение Nov 10 2011, 04:35
Сообщение #22


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 6-04-10
Пользователь №: 56 441



Цитата(PavelG @ Nov 10 2011, 03:40) *
Я несколько запутался, и так по порядку:

1) Какой бы конфиг U-boot я бы не сделал, после обработки в AISGen с правильными параметрами EMIFA, EMIFB, LPSC, PINMUX и PLL U-boot должен нормально заливаться.

2) В моем случае EMIFA в AISGen можно отключить так как у меня NAND к этому модулю подключен, и мне нужно только править CE3CFG. Хотя тут не понятно, так как в документе от TI про Bootloader было написано что поля EMIFA настраивают модуль EMIFB.

3) Вы ссылались на файл serial.c, не подскажите, где он расположен? Я поискам по папкам искал, там их много но все не относящиеся к плате da830.

4) В AISGen есть выпадающий список Bootmode, и мне не понятно, что будет происходить при различных вариантах выбора. Игрался я с различными вариантами (UART2 и NAND), при отключенном PLL, получал надпись о том что boot прошел успешно, но в терминале было глухо (проверял посылкой команды help).

Извините, если ответы на какие-то вопросы очевидны, просто это мой первый опыт по работе с процессорами и установкой на них ОС.

Не извиняйтесь, я буквально год назад тож впервые с этим столкнулся, и помочь никто не мог. У меня даж тут где-т на форуме есть темы, как светики зажигать под линуксом biggrin.gif
1) Да.
2) Если собираетесь использовать, то лучше включите. Но на первых порах (лишь бы запустить что-то), можно отключить.
3) drivers/serial/
4) Если грузитесь с UART№, то выбираете соответствующий UART№. Когда отработаете загрузку через UART, конвертнете в NAND и зальете этот AIS в NAND средствами U-boot. Если юбоот загрузится достаточно нажать enter, увидите promt строку, что то типа "u-boot>"
Посмотрите на SDRAM_CLK во время загрузки прошивки. Должна появится расчетная частоста. Так как прошивка грузится в SDRAM. И если прошивка не может загрузится, то виновата память скорее всего. Ну и на кварц посмотрите. У меня когда ставил, кварц генерил 8 Мгц вместо 24, емкости слишком большие нагрузочные стояли.
Go to the top of the page
 
+Quote Post
Славка
сообщение Nov 10 2011, 04:35
Сообщение #23


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 6-04-10
Пользователь №: 56 441



В общем 3 раза отправил одно и тоже, как удалить не знаю.

Сообщение отредактировал Славка - Nov 10 2011, 05:44
Go to the top of the page
 
+Quote Post
Славка
сообщение Nov 10 2011, 05:41
Сообщение #24


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 6-04-10
Пользователь №: 56 441



В общем 3 раза отправил одно и тоже, как удалить не знаю.

Сообщение отредактировал Славка - Nov 10 2011, 05:43
Go to the top of the page
 
+Quote Post
PavelG
сообщение Nov 14 2011, 15:49
Сообщение #25


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674



Получилось прошить U-boot с включенным PLL. Просто меня переклинило, и я упорно вместо резонатора выбирал генератор. SDRAM тактируеться, все прошивается (все как по UserGuide в DaVinci), однако в Hyperterminale тишина. Жал Enter и строка U-boot> не появлялась. Использую USB->UART переходник на основе CP2102, определяется как COM3.

Настройки UART для консоли
Код
#define CONFIG_SYS_NS16550
#define CONFIG_SYS_NS16550_SERIAL
#define CONFIG_SYS_NS16550_REG_SIZE -4
#define CONFIG_SYS_NS16550_COM1 DAVINCI_UART2_BASE
#define CONFIG_SYS_NS16550_CLK clk_get(DAVINCI_UART2_CLKID)
#define CONFIG_CONS_INDEX 3 //UART2?
...
Go to the top of the page
 
+Quote Post
Славка
сообщение Nov 15 2011, 07:01
Сообщение #26


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 6-04-10
Пользователь №: 56 441



Цитата(PavelG @ Nov 14 2011, 19:49) *
Получилось прошить U-boot с включенным PLL. Просто меня переклинило, и я упорно вместо резонатора выбирал генератор. SDRAM тактируеться, все прошивается (все как по UserGuide в DaVinci), однако в Hyperterminale тишина. Жал Enter и строка U-boot> не появлялась. Использую USB->UART переходник на основе CP2102, определяется как COM3.

Настройки UART для консоли
Код
#define CONFIG_SYS_NS16550
#define CONFIG_SYS_NS16550_SERIAL
#define CONFIG_SYS_NS16550_REG_SIZE -4
#define CONFIG_SYS_NS16550_COM1 DAVINCI_UART2_BASE
#define CONFIG_SYS_NS16550_CLK clk_get(DAVINCI_UART2_CLKID)
#define CONFIG_CONS_INDEX 3 //UART2?
...

1. К какому UART подключен ваш терминал?
2. С какого UART вы загружаете uboot?
Желательно, чтобы они были одинаковыми, тогда можно тупо всю начальную инициализацию закоментить.

Смотрите лучше осциллографом на UART. после того как uboot загрузится - он выдает много текста.
Код
U-Boot 2009.11 (РћРєС‚ 27 2011 - 15:45:48)

DRAM:  16 MB
In:    serial
Out:   serial
Err:   serial
ARM Clock : 300000000 Hz
Net:   88E6165 Initialized on daveth0
Can't overwrite "ethaddr"

Hit any key to stop autoboot:  0

Если там хоть что-то дергается после загрузки - значит неправильный baudrate.
Исправляйте по ситуации те места, которые я указал ранее.
Go to the top of the page
 
+Quote Post
PavelG
сообщение Nov 15 2011, 15:44
Сообщение #27


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674



Использую UART2 для прошивки и для консоли. На стадии
Код
AIS complete. Jump to address 0xC1080000
Waiting for DONE...
Boot complete successfully

Передается длинная вереница импульсов, возможно то-что нужно. Затем отсылается еще пара импульсов с жутко заваленными фронтами и переход в режим ожидания. На enter ноль реакции (команда передается, проверял осциллографом). Поменял все как Вы советовали - тишина. Если я с таймингами памяти напутал, это могло привести к таким результатам?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 15 2011, 15:55
Сообщение #28


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Проверьте скорость UART'а. Bootloader при некоторых условиях может задействовать x13 oversampling, а драйверы u-boot и ядра напрочь игнорируют регистр MDR.
Правда, в таком случае обычно наблюдается некоторый мусор, а не полная тишина в терминале.
Go to the top of the page
 
+Quote Post
PavelG
сообщение Nov 15 2011, 16:12
Сообщение #29


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674



Ура 08.gif все получилось, при компиляции для UART надо было просто оключить NAND.
Go to the top of the page
 
+Quote Post
PavelG
сообщение Nov 16 2011, 16:23
Сообщение #30


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674



Появился следующий ряд вопросов.
1) Когда пишу #undef CONFIG_USE_NAND U-boot грузиться и запускается, эхо и прочие команды работают. Если пишу #define CONFIG_USE_NAND, то U-boot грузиться, но не запускается. Как быть? Если NAND не подключить, то в консоли не доступны команды для работы с ней (nand erase, nand write и прочее), следовательно нельзя ее подготовить для заливки U-boot и ядра. Есть вариант разрешить эти команды в не зависимости от того подключена или нет NAND, но мне кажется это не корректное решение.

2) В #define CONFIG_NR_DRAM_BANKS надо писать сколько банков в подключенной SDRAM? А то у меня их 4, но U-boot пишет, что размер 2,3 и 4 равен нулю (смотрел через команду bdinfo).

3) Настройка работы с Ethernet PHY чипом ведется в разделе Network & Ethernet, или еще где-то надо вставлять строчки. Где можно посмотреть список разрешенных комманд для этого раздела и их параметры?
Go to the top of the page
 
+Quote Post
PavelG
сообщение Nov 17 2011, 11:36
Сообщение #31


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674



По поводу первого пункта. Собрал U-boot с SPI flash вместо NAND, и все благополучно запустилось. Есть подозрение на косяк в исходник связанных c NAND.
Go to the top of the page
 
+Quote Post
PavelG
сообщение Nov 22 2011, 10:40
Сообщение #32


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674



С NAND разобрался. В конфигах прописанно, что NAND подключаеться к выводу CS3, а в моем случае она подключена к CS2. Поменять порт я поменял, а вот регистр поменять на CE2 забыл, потому с NAND U-boot у меня и не запускался.
Go to the top of the page
 
+Quote Post
PavelG
сообщение Nov 24 2011, 15:24
Сообщение #33


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674



Пытаюсь запустить связку AM1705 и LAN8710 в режиме RMII. U-boot чип не видит, тактовый сигнал на MDC ножке чипа присутсвует, и что-то передаеться на ножку MDIO при чем постоянно (после запуска U-boot, сигналы смотрел осциллографом). Распаяку чипа проверял, все на месте. Подскажите, где может быть проблема? Мне кажеться, что в исходниках отсутсвует описание протоколов общения с данным PHY, но где их искать не знаю.

Сообщение отредактировал PavelG - Nov 24 2011, 15:25
Go to the top of the page
 
+Quote Post
PavelG
сообщение Nov 30 2011, 13:40
Сообщение #34


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674



Проблема оказалась в том, что в исходниках U-boot'а были выстроены настроеки на получение внешнего тактовго сигнала в 50 МГц. Поправил регистр pinmux[9] и чип нашелся, но теперь не получаеться пинговаться. Проверял снифером пакет запроса МАС адреса приходит на ПК, тот отвечает, но плата почему-то не принимает данных.
Go to the top of the page
 
+Quote Post
Славка
сообщение Dec 2 2011, 05:35
Сообщение #35


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 6-04-10
Пользователь №: 56 441



Цитата(PavelG @ Nov 30 2011, 17:40) *
Проблема оказалась в том, что в исходниках U-boot'а были выстроены настроеки на получение внешнего тактовго сигнала в 50 МГц. Поправил регистр pinmux[9] и чип нашелся, но теперь не получаеться пинговаться. Проверял снифером пакет запроса МАС адреса приходит на ПК, тот отвечает, но плата почему-то не принимает данных.

Чипы разные бывают. Читайте даташит, смотрите исходники. Даете ли Вы резет физике? Записываете нужные регистры? Для проверки можно еще посмотреть на сигнал RXDV. При приеме пакета он должен опускаться в ноль. Постоянный обмен там идет из-за вычитывания link статуса. Когда регистрируется драйвер для физики, то там передаются функции инициализации и опроса статуса. Можно не передавать функции опроса. Тогда не будет постоянного обмена, но и MAC не будет приспасабливаться к физике. Все это делается в cpu/arm926ejs/ether.c. У меня тоже было много проблем с сетью. На моем устройстве установлен marvell 88e6165 через micrel ksz8041, так как у marvell нет RMII. Тож замучался пока все это настроил. Могу скинуть исходники, если у вас ksz8041 может помогут чем-то.
Кстати, спешу сообщить, что линукс успешно запущен, сделали на днях файловую систему. Все прекрасно работает, чему я несказанно рад. Теперь делаем уже приложение под линукс.
Go to the top of the page
 
+Quote Post
PavelG
сообщение Dec 2 2011, 14:37
Сообщение #36


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674



Цитата(Славка @ Dec 2 2011, 08:35) *
Чипы разные бывают. Читайте даташит, смотрите исходники. Даете ли Вы резет физике? Записываете нужные регистры? Для проверки можно еще посмотреть на сигнал RXDV. При приеме пакета он должен опускаться в ноль.


Ресет чипа объединен с ресетом процессора, поэтому при каждой перепрашивке процессора на чип так же подается ресет (проверял осциллографом). Проверял осциллографом пины по которым идет обмен данными с процессором (RXD[0...1] и TXD[0...1]) данные есть и там и там, поэтому подозреваю, что нужно все таки править исходники. RXDV у меня почему-то все время в 0.
По команде mii device у меня выводится 'GENERIC @ 0x07', это правильно? А то смотрел ether.c, и мне показалось, что должна выводится надпись типа Ethernet PHY: [имя PHY]?

У меня эта надпись выовдится в независимости от того, пишу я #define CONFIG_MII или #undef CONFIG_MII.


Цитата(Славка @ Dec 2 2011, 08:35) *
Тож замучался пока все это настроил. Могу скинуть исходники, если у вас ksz8041 может помогут чем-то.

У меня LAN8710 подключена напрямую к AM1705, но исходники я бы у Вас попросил, возможно натолкнут меня на идею где чего подправить. Кстати, не подскажите, где искать непосредственные значения, которые записываются в регистры управление PHY чипом? В папке drivers/net/phy записанна только реализация функций при помощи которых записываются данные в PHY.

Сообщение отредактировал PavelG - Dec 2 2011, 14:39
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Dec 4 2011, 11:23
Сообщение #37


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

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



U-boot на пинги не отвечает, если что. только пинговать умеет.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
PavelG
сообщение Dec 6 2011, 16:07
Сообщение #38


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674



Разобрался, я не устанавливал маску сети. Сейчас пытаюсь загрузить U-boot из NAND.
Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 6 2011, 18:11
Сообщение #39


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



Цитата(Славка @ Nov 7 2011, 10:45) *
Проблема с перезагрузкой решена! Так как у меня на борту стоит 16Мб ОЗУ, а entrypoint u-boot установлен по умолчанию с отступом от начала на 16 Мб, чтобы linux мог развернуться. Так вот u-boot у меня писался в область памяти, где разворачивается linux + 16 Мб (старший адресс у меня на памяти не заведен вообще). Тоесть вроде все работало нечайно)) Когда исправил entry point u-boot, все заработало с пол пинка. Осталось сделать файловую систему для линукса, что в принципе не сложно, опыт есть. Но сейчас приходится заниматься старым проектом, исправлением глюков, потому откладывается на неопределенный срок.

Грузите сразу uboot без ubl.
1. Открываете инструкцию UserGuide (в папке docs SDK). Ищете инструкцию по компиляции u-boot. Компилируете.
2. Берете файл u-boot (без расширения, это ELF файл. не u-boot.bin). Запускаете AisGen.
3. В AisGen внимательно по даташиту и вашей схеме настраиваете все что у вас используется на плате (bootmode, кварц, память, PINMUX, PSC...) и генерируете AIS.
4. Грузите через UARTHOST ais файл.
5. Радуетесь biggrin.gif

Как подпилить u-boot - отдельная песня. Все зависит от того, насколько ваша плата отличается от кита. Спросите что конкретно подкрутить - я подскажу в каком месте в исходниках это делается.


вечер добрый!

сейчас у меня имеется аналогичная проблема с запуском u-boot. процессор AM1705

после минимальной конфигурации UBL ( http://processors.wiki.ti.com/index.php/Se...y_for_OMAP-L137 ) UBL запустил; плюс, проверил по минимуму SPI и NAND (простая запсиь и чтение с флешек) и проверил оперативную память, все проверял из UBL путем своих тестовых функций. все вроде работает. естественно, UBL компилировал в CCS + AISgen со всей конфигурацией, кроме EMIA.

но вот с запуском u-boot большие проблемы.
пытаюсь запустить u-boot без UBL, (вместе с UBL пока прошить в SPI не удалось).

проблема с u-boot связана вот с чем, скорее всего что-то с терминалом не то, ввиду того, что, прикрутив функционал UART от UBL к u-boot (для хоть какого то вывода на терминал), функции UARTA из UBL работают в u-boot, вижу, что юбут грузится и точно доходит до функции board_init() ! с помощью этого мне удалось выяснить, что сам u-boot падает на своей конфигурации UART.

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

в исходниках юбута изменил только размер оперативной памяти, подредактировал pinmux da830.c

Сообщение отредактировал am1808 - Dec 6 2011, 18:13
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 6 2011, 20:42
Сообщение #40


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(am1808 @ Dec 6 2011, 22:11) *
с помощью этого мне удалось выяснить, что сам u-boot падает на своей конфигурации UART.

Как проявляется это падение?

u-boot может некорректно настраивать делитель при начальной загрузке через UART.
Чтобы это исправить, измените файл ns16550.c:
Код
void NS16550_init (NS16550_t com_port, int baud_divisor)
{
    ...
#if defined(CONFIG_SOC_DA8XX)
    com_port->regD = 0;    /* 16x over-sampling */
#endif /* CONFIG_SOC_DA8XX */
}

Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 6 2011, 21:06
Сообщение #41


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



Цитата(aaarrr @ Dec 7 2011, 00:42) *
Как проявляется это падение?

u-boot может некорректно настраивать делитель при начальной загрузке через UART.
Чтобы это исправить, измените файл ns16550.c:
Код
void NS16550_init (NS16550_t com_port, int baud_divisor)
{
    ...
#if defined(CONFIG_SOC_DA8XX)
    com_port->regD = 0;    /* 16x over-sampling */
#endif /* CONFIG_SOC_DA8XX */
}


спасибо.
утром попробую и отпишусь.
прояявляется это зависанием, терминал зависает. еще очень часто бывает так, что при нажатии Enter вводится или отображается символ '='

сейчас у меня так

CODE
void NS16550_init (NS16550_t com_port, int baud_divisor)
{
com_port->ier = 0x00;
#if defined(CONFIG_OMAP) && !defined(CONFIG_OMAP3_ZOOM2)
com_port->mdr1 = 0x7; /* mode select reset TL16C750*/
#endif
com_port->lcr = UART_LCR_BKSE | UART_LCRVAL;
com_port->dll = 0;
com_port->dlm = 0;
com_port->lcr = UART_LCRVAL;
com_port->mcr = UART_MCRVAL;
com_port->fcr = UART_FCRVAL;
com_port->lcr = UART_LCR_BKSE | UART_LCRVAL;
com_port->dll = baud_divisor & 0xff;
com_port->dlm = (baud_divisor >> 8) & 0xff;
com_port->lcr = UART_LCRVAL;
#if defined(CONFIG_OMAP) && !defined(CONFIG_OMAP3_ZOOM2)
#if defined(CONFIG_APTIX)
com_port->mdr1 = 3; /* /13 mode so Aptix 6MHz can hit 115200 */
#else
com_port->mdr1 = 0; /* /16 is proper to hit 115200 with 48MHz */
#endif
#endif /* CONFIG_OMAP */
}


Сообщение отредактировал am1808 - Dec 6 2011, 21:10
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 6 2011, 21:16
Сообщение #42


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(am1808 @ Dec 7 2011, 01:06) *
прояявляется это зависанием, терминал зависает. еще очень часто бывает так, что при нажатии Enter вводится или отображается символ '='

Тогда почти наверняка оно - из-за неправильного делителя в терминал передается груда мусора, вот он и зависает.
Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 6 2011, 21:23
Сообщение #43


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



Цитата(aaarrr @ Dec 7 2011, 01:16) *
Тогда почти наверняка оно - из-за неправильного делителя в терминал передается груда мусора, вот он и зависает.

хорошо, спасибо.
утром отпишуcь.

а что за регистр такой com_port->regD = 0; ?
это с mdr как то связано?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 6 2011, 21:31
Сообщение #44


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(am1808 @ Dec 7 2011, 01:23) *
а что за регистр такой com_port->regD = 0; ?
это с mdr как то связано?

Это он и есть. Просто ROM-загрузчик при инициализации UART может выставить OSM_SEL в '1', а u-boot об этом не знает.
Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 7 2011, 13:35
Сообщение #45


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



Цитата(aaarrr @ Dec 7 2011, 01:31) *
Это он и есть. Просто ROM-загрузчик при инициализации UART может выставить OSM_SEL в '1', а u-boot об этом не знает.

aaarrr, спасибо преогромное, проблема с UART решилась beer.gif, u-boot загрузил 08.gif

Сообщение отредактировал am1808 - Dec 7 2011, 13:55
Go to the top of the page
 
+Quote Post
PavelG
сообщение Dec 7 2011, 17:01
Сообщение #46


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674



Как всегда новый этап и новая проблема smile3046.gif
Пытаюсь загрузить U-boot в NAND. Закачиваю подготовленный в AISgen бинарник для NAND8, дальше делаю так:
Код
U-Boot > tftpboot 0xc0700000 u-boot_nand.bin
  
  TFTP from server 10.0.0.2; our IP address is 10.0.0.1
  Filename 'u-boot_nand.bin'.
  Load address: 0xc0700000
  Loading: ##########
  done
  Bytes transferred = 154432 (25b40 hex)  

U-Boot > nand erase

  NAND erase: device 0 whole chip
  OK

U-Boot > nand write 0xc0700000 0x20000 0x30000
...
OK
U-Boot >

Дальше выключаю питание переключаю на загрузку из NAND, включаю питание и тишина. Судя по току, ничего даже не пыталось загрузится. В терминале тоже тихо. Подскажите, с чем это может быть связанно?
Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 7 2011, 17:02
Сообщение #47


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



вечер добрый!
образовалась проблема с ethernet в u-boot.
используемая микросхема PHY KSZ8893MQL/MBL, схема подключения к AM1705 изменена по минимуму, не использую eeprom для хранения ethaddr и KSZ8893MQL/MBL соединена с процессором по i2c1, в отличии от референсной платы, где она висела на i2c0.
в юбуте настроил i2c1, поправил частоту шины i2c1, запись/чтение работают.

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

и не понятно, куда копать, что поправить?? кто нибудь сталкивался с подобной проблемой?

и да, при попытки через tftp загрузить ядро, то юбут грузит их кусками, один кусок uImage нормально загрузит в память, следующий уже не может, потом опять кусок загрузит и опять следующий уже не может загрузить. явно что то с ethernetом в юбуте что то не то, а куда копать - совершенно не понятно?


Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 7 2011, 17:04
Сообщение #48


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(PavelG @ Dec 7 2011, 21:01) *
Дальше выключаю питание переключаю на загрузку из NAND, включаю питание и тишина. Судя по току, ничего даже не пыталось загрузится. В терминале тоже тихо. Подскажите, с чем это может быть связанно?

Наверное, стоит еще прочитать и сравнить данные из NAND средствами u-boot. Ну и осциллографом смотреть старт, если с данными все в порядке.
Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 7 2011, 17:05
Сообщение #49


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



Цитата(PavelG @ Dec 7 2011, 21:01) *
Как всегда новый этап и новая проблема smile3046.gif
Пытаюсь загрузить U-boot в NAND. Закачиваю подготовленный в AISgen бинарник для NAND8, дальше делаю так:
Дальше выключаю питание переключаю на загрузку из NAND, включаю питание и тишина. Судя по току, ничего даже не пыталось загрузится. В терминале тоже тихо. Подскажите, с чем это может быть связанно?


А чего вы взяли, что с нанда вы загрузитесь на am1705?
какая nand flash у вас?
Go to the top of the page
 
+Quote Post
PavelG
сообщение Dec 7 2011, 17:13
Сообщение #50


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674



Цитата(am1808 @ Dec 7 2011, 20:05) *
А чего вы взяли, что с нанда вы загрузитесь на am1705?


Прочитав мануалы.

Цитата(am1808 @ Dec 7 2011, 20:05) *
какая nand flash у вас?

От Samsung'а 32 Мбитная.
Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 7 2011, 17:15
Сообщение #51


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



Цитата(PavelG @ Dec 7 2011, 21:13) *
Прочитав мануалы.


сама нанд флеш позволяет бутиться с нее?
Go to the top of the page
 
+Quote Post
PavelG
сообщение Dec 7 2011, 17:25
Сообщение #52


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674



Цитата(am1808 @ Dec 7 2011, 20:15) *
сама нанд флеш позволяет бутиться с нее?


А вот этот вопрос интересный... а разве не процессор инициализирует загрузку из Flash памяти?
По крайней мере в описание на Flash я ничего подобного не читал, но есть документ от fresscale, где они как раз рассказывают про загрузку boot'a из этой флешки.

Даже в документе от TI про Bootloader, где рассказывается про NAND, таких подробностей не указывается.

Сообщение отредактировал PavelG - Dec 7 2011, 17:28
Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 7 2011, 17:37
Сообщение #53


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



Цитата(PavelG @ Dec 7 2011, 21:25) *
А вот этот вопрос интересный... а разве не процессор инициализирует загрузку из Flash памяти?

не каждая nand flash позволяет грузиться с нее.
по поводу вашей флешки и возможности грузиться с нее задайте вопрос на TI форуме
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 7 2011, 17:57
Сообщение #54


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(am1808 @ Dec 7 2011, 21:37) *
не каждая nand flash позволяет грузиться с нее.

Как то с ног на голову формулировка поставлена. Flash все равно, она и знать не знает, грузятся с нее, или еще что.
Другое дело, что bootloader процессора может не дружить с конкретной флеш, если она не ONFI-совместимая. Для такого случая в документации на загрузчик есть список поддерживаемых кристаллов.

Цитата(PavelG @ Dec 7 2011, 21:13) *
От Samsung'а 32 Мбитная.

32 мегабита - это что-то ой как мало, ничего не путаете?
Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 8 2011, 15:39
Сообщение #55


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



Цитата(am1808 @ Dec 7 2011, 21:02) *
вечер добрый!
образовалась проблема с ethernet в u-boot.
используемая микросхема PHY KSZ8893MQL/MBL, схема подключения к AM1705 изменена по минимуму, не использую eeprom для хранения ethaddr и KSZ8893MQL/MBL соединена с процессором по i2c1, в отличии от референсной платы, где она висела на i2c0.
в юбуте настроил i2c1, поправил частоту шины i2c1, запись/чтение работают.

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

и не понятно, куда копать, что поправить?? кто нибудь сталкивался с подобной проблемой?

и да, при попытки через tftp загрузить ядро, то юбут грузит их кусками, один кусок uImage нормально загрузит в память, следующий уже не может, потом опять кусок загрузит и опять следующий уже не может загрузить. явно что то с ethernetом в юбуте что то не то, а куда копать - совершенно не понятно?



up
Go to the top of the page
 
+Quote Post
osipovvo
сообщение Dec 8 2011, 16:53
Сообщение #56





Группа: Новичок
Сообщений: 2
Регистрация: 8-12-11
Пользователь №: 68 749



Цитата(aaarrr @ Dec 7 2011, 21:57) *
Как то с ног на голову формулировка поставлена. Flash все равно, она и знать не знает, грузятся с нее, или еще что.
Другое дело, что bootloader процессора может не дружить с конкретной флеш, если она не ONFI-совместимая. Для такого случая в документации на загрузчик есть список поддерживаемых кристаллов.


при загрузке с nand дело не в знании бута о том, какая флэш и что на ней, а в настройках соответствующего emiX контролера, который со стартовыми параметрами (подставленными по умолчанию) сможет обеспечить процессору доступ в nand память.

а вот про список собственно правильно
для AM1705 такими флэшками могут быть перечисленные в http://focus.ti.com/lit/an/spraba4b/spraba4b.pdf (Apendix B )

Сообщение отредактировал osipovvo - Dec 8 2011, 16:54
Go to the top of the page
 
+Quote Post
PavelG
сообщение Dec 9 2011, 13:23
Сообщение #57


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674



Цитата(am1808 @ Dec 7 2011, 20:02) *
вечер добрый!
образовалась проблема с ethernet в u-boot.
используемая микросхема PHY KSZ8893MQL/MBL, схема подключения к AM1705 изменена по минимуму, не использую eeprom для хранения ethaddr и KSZ8893MQL/MBL соединена с процессором по i2c1, в отличии от референсной платы, где она висела на i2c0.
в юбуте настроил i2c1, поправил частоту шины i2c1, запись/чтение работают.

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

и не понятно, куда копать, что поправить?? кто нибудь сталкивался с подобной проблемой?

и да, при попытки через tftp загрузить ядро, то юбут грузит их кусками, один кусок uImage нормально загрузит в память, следующий уже не может, потом опять кусок загрузит и опять следующий уже не может загрузить. явно что то с ethernetом в юбуте что то не то, а куда копать - совершенно не понятно?


Проверьте частоту. Для RMII должна быть точно 50 МГц. Проверьте провод, и попробуйте поработать на скорости 10.


Цитата(aaarrr @ Dec 7 2011, 20:57) *
Как то с ног на голову формулировка поставлена. Flash все равно, она и знать не знает, грузятся с нее, или еще что.
Другое дело, что bootloader процессора может не дружить с конкретной флеш, если она не ONFI-совместимая. Для такого случая в документации на загрузчик есть список поддерживаемых кристаллов.


32 мегабита - это что-то ой как мало, ничего не путаете?


Да, Вы правы, 32 Мбайта. Сравнивал с табличкой, должна поддерживаться. И размер страницы меньше 4К.
Выяснилось, что во флешку ничего не пишится. Разбираюсь.

Сообщение отредактировал PavelG - Dec 9 2011, 13:35
Go to the top of the page
 
+Quote Post
osipovvo
сообщение Dec 10 2011, 20:05
Сообщение #58





Группа: Новичок
Сообщений: 2
Регистрация: 8-12-11
Пользователь №: 68 749



Цитата(PavelG @ Dec 9 2011, 17:23) *
Выяснилось, что во флешку ничего не пишится. Разбираюсь.


ну тут варианта, как правило, 3и:
- сигналы ALE/CLE/CS (для первых двух надо правильно указать адрес, для последнего сконфигурить рег)
- еще есть рег в котором выбирается тип флэша и ширина шины (кажется 1 битом в нужный тип) - это где-то в настройках контроллера emi
- ошибки в реализации CFI. Дело в том, каким бы CFI общим не был - у каждой флэхи все равно есть отличия


Цитата(osipovvo @ Dec 10 2011, 23:39) *
ну тут варианта, как правило, 3и

о них собственно тут : Прикрепленный файл  AM1705_EMIF_A.zip ( 312.57 килобайт ) Кол-во скачиваний: 185
Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 10 2011, 20:59
Сообщение #59


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



Цитата(PavelG @ Dec 9 2011, 17:23) *
Да, Вы правы, 32 Мбайта. Сравнивал с табличкой, должна поддерживаться. И размер страницы меньше 4К.
Выяснилось, что во флешку ничего не пишится. Разбираюсь.


еще траблы возникнуть могут с правильным размаппиванием nand, лучше сравнить в исходниках структуру конкретной флеш с даташитом

да, еще на офиц. сайте TI на AM1705 обновились доки, можно там скачать полноценный даташит на AM1705, с полным описанием регов и периферии

Сообщение отредактировал am1808 - Dec 11 2011, 17:14
Go to the top of the page
 
+Quote Post
PavelG
сообщение Dec 12 2011, 19:44
Сообщение #60


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 11-10-11
Пользователь №: 67 674



Пока искал где в U-boot'е инициализируются регистры для асинхронной памяти возник вопрос. В исходниках нашел два варианта, на память с размером страницы 2кбита и 4кбита, у меня же страница в 512 бит, может ли быть проблема в этом?

PS
При выборе команды nand info, U-boot выводит, что подключена память с размером 32 Mib, напряжение 3,3В, 16k сектор. Так как все это определяется считыванием из флеша, как я понял, то получается проблема именно в работе с областью памяти где хранятся данные, а не с настройками регистров EMIFA?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 12 2011, 19:53
Сообщение #61


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



У EMIF'а настроек как таковых минимум - тайминги, разрядность шины, возможность прогнать 1/4bit ECC.

U-boot может правильно идентифицировать память, но это отнюдь не значит, что он будет корректно с ней работать. А память в вашем случае несколько экзотическая.
Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 23 2011, 18:57
Сообщение #62


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



приветствую всех!

у кого нибудь была проблема с запуском ядра без использования ubl?

я гружу ядро через rs232 по протоколу kermit

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

о своей проблеме написал на http://e2e.ti.com/support/embedded/linux/f...579.aspx#560785

подскажите пожалуйста куда копать и в чем может быть проблема?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 23 2011, 19:20
Сообщение #63


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



IDs, как я понимаю, неоднократно проверяли. А с памятью точно все в порядке?
Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 23 2011, 19:25
Сообщение #64


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



Цитата(aaarrr @ Dec 23 2011, 23:20) *
IDs, как я понимаю, неоднократно проверяли. А с памятью точно все в порядке?


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

с паматью, хм, вот тут не могу однозначно сказать.
юбут там работает, ядро тоже туда гружу, iminfo из юбута выдает правильную информацию, которую он берет из образа ядра, которое я загрузил в оперативку. поэтому, делаю вывод, что вроде память как нормально работает и нормально сконфигурирована в AISgene
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 23 2011, 19:36
Сообщение #65


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Ну, чтобы быть уверенным, нужно бы ее всю проверить. А то вдруг реально работает 1/4 часть, например? Загрузить uboot и ядро хватит, а вот при распаковке все и упадет.
Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 23 2011, 19:45
Сообщение #66


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



Цитата(aaarrr @ Dec 23 2011, 23:36) *
Ну, чтобы быть уверенным, нужно бы ее всю проверить. А то вдруг реально работает 1/4 часть, например? Загрузить uboot и ядро хватит, а вот при распаковке все и упадет.

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

как еще можно проверить полностью память?

Цитата(am1808 @ Dec 23 2011, 23:43) *
протестировал записью определенного числа так, что бы в цикле поочередно каждая адресная ножка поднималась.
потом считывал записанное число и оно было равно всегда тому значению, которое записал.
делал это из юбута путем добавления своей тестируемой функцией, ошибок не было.

как еще можно проверить полностью память?

протестирую каждую ячейку памяти sdram.

если предположить, что с оперативкой все в порядке, куда можно еще смотреть, куда копать?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 23 2011, 20:02
Сообщение #67


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(am1808 @ Dec 23 2011, 23:45) *
если предположить, что с оперативкой все в порядке, куда можно еще смотреть, куда копать?

Пока у меня больше идей нет.
Go to the top of the page
 
+Quote Post
sasamy
сообщение Dec 23 2011, 22:39
Сообщение #68


Знающий
****

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



Цитата(am1808 @ Dec 23 2011, 22:57) *
загрузка ядра и декомпрессия проходят удачно и после передачи управления ядра больше ничего не вижу.


1 Включите в ядре поддержку early printk и смотрите лог загрузки. (Kernel hacking --->[*] Kernel debugging) - если есть поддержка early printk для этого процессора проблему с ID вы сразу обнаружите если она есть.
2 Проверьте - включена ли поддержка консоли для последовательного порта
3 Проверьте - в какой порт по умолчанию в ядре сконфигуирован вывод консоли.
4 память можно протестировать в u-boot - там есть простейший mtest.

К сожалению точные указания не могу дать по ядру - у TI они кастомные для каждого процессора.

Прикрепленное изображение


Сообщение отредактировал sasamy - Dec 23 2011, 22:46
Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 24 2011, 08:17
Сообщение #69


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



Цитата(sasamy @ Dec 24 2011, 02:39) *
1 Включите в ядре поддержку early printk и смотрите лог загрузки. (Kernel hacking --->[*] Kernel debugging) - если есть поддержка early printk для этого процессора проблему с ID вы сразу обнаружите если она есть.
2 Проверьте - включена ли поддержка консоли для последовательного порта
3 Проверьте - в какой порт по умолчанию в ядре сконфигуирован вывод консоли.
4 память можно протестировать в u-boot - там есть простейший mtest.

К сожалению точные указания не могу дать по ядру - у TI они кастомные для каждого процессора.

Прикрепленное изображение


спасибо.
пункты 1,3,4 я проделывал, не помогло.
на счет поддержки консоли - попробую еще раз посмотреть, хотя по дефолту скорее всего с этим в порядке

еще вот можно как нибудь сделать, чтобы буффер консоли как можно раньше вывалился на последовательный порт?
если говорить про то, что ядро просто падает до инициализации консоли в ядре
Go to the top of the page
 
+Quote Post
sasamy
сообщение Dec 24 2011, 08:22
Сообщение #70


Знающий
****

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



Цитата(am1808 @ Dec 24 2011, 12:17) *
еще вот можно как нибудь сделать, чтобы буффер консоли как можно раньше вывалился на последовательный порт?
если говорить про то, что ядро просто падает до инициализации консоли в ядре


Вы лучше лог загрузки от начала и до остановки покажите и выложите свой конфиг ядра. Еще я не помню - это не у вас 16М вместо 64M EVM распаяно ? при распаковке ядро может банально само себя затереть если имидж неправильно в RAM разместить.
Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 24 2011, 08:41
Сообщение #71


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



Цитата(sasamy @ Dec 24 2011, 12:22) *
Вы лучше лог загрузки от начала и до остановки покажите и выложите свой конфиг ядра. Еще я не помню - это не у вас 16М вместо 64M EVM распаяно ? при распаковке ядро может банально само себя затереть если имидж неправильно в RAM разместить.


нет, у меня на борде 32 MB оперативки.
конфиг ядра отличается только от дефолтного включением early_printk() и отключением NET я ядре для быстроты сборки и загрузки по терминалу ядра в плату (хотя и пробовал с поддержкой сети, результат тот же)

вот лог

U-Boot > loadb
## Ready for binary (kermit) download to 0xC0700000 at 115200 bps...
## Total Size = 0x0016c1f4 = 1491444 Bytes
## Start Addr = 0xC0700000
U-Boot > bootm
## Booting kernel from Legacy Image at c0700000 ...
Image Name: Linux-2.6.33-rc4
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1491380 Bytes = 1.4 MB
Load Address: c0008000
Entry Point: c0008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.


еще хотел добавить, что я не использую ни initrd, ни rootfs.
тот же самый юбут и это же ядро через UartBootHost гружу на EVM1707, ядро запускается, лог загрузки ядра вываливается на терминал.

и для EVM1707 и для своей платы в параметре bootargs установлено mem=32M, хотя на EVM1707 фактически стоит 64 MB

Сообщение отредактировал am1808 - Dec 24 2011, 08:42
Go to the top of the page
 
+Quote Post
sasamy
сообщение Dec 24 2011, 08:42
Сообщение #72


Знающий
****

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



Цитата(am1808 @ Dec 24 2011, 12:28) *
нет, у меня на борде 32 MB оперативки.
конфиг ядра отличается только от дефолтного включением early_printk() и отключением NET я ядре для быстроты сборки и загрузки по терминалу ядра в плату (хотя и пробовал с поддержкой сети, результат тот же)


Дайте прямой линк чтобы я мог скачать ваше ядро (или ссылку на сайт TI откуда скачивали). И какой там defconfig ? при первичной конфигурации вы там делали make ARCH=arm какой-то.defconfig

Сообщение отредактировал sasamy - Dec 24 2011, 08:42
Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 24 2011, 08:48
Сообщение #73


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



Цитата(sasamy @ Dec 24 2011, 12:42) *
Дайте прямой линк чтобы я мог скачать ваше ядро (или ссылку на сайт TI откуда скачивали). И какой там defconfig ? при первичной конфигурации вы там делали make ARCH=arm какой-то.defconfig


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

да, конфигурирую ядро под определенную конфигурацию вот так:

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- clean
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- da830_omapl137_defconfig
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage

ядро: linux-03.20.00.12 из состава DaVinci-PSP-SDK-03.20.00.12, скаченного с офиц. сайта TI для AM1707

Сообщение отредактировал am1808 - Dec 24 2011, 09:29
Прикрепленные файлы
Прикрепленный файл  my_config_kernel.zip ( 9.03 килобайт ) Кол-во скачиваний: 12
Прикрепленный файл  uImage.zip ( 1.42 мегабайт ) Кол-во скачиваний: 9
 
Go to the top of the page
 
+Quote Post
sasamy
сообщение Dec 24 2011, 12:01
Сообщение #74


Знающий
****

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



Цитата(am1808 @ Dec 24 2011, 12:48) *
ядро: linux-03.20.00.12 из состава DaVinci-PSP-SDK-03.20.00.12, скаченного с офиц. сайта TI для AM1707


Скачал, посмотрел - с uart вроде все в порядке, из подозрительного - у вас сконфигурировано под am1707, у вас как я понял am1705 (нет LCD) а поддержка включена для LCD вместо NAND

Прикрепленное изображение
Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 24 2011, 12:11
Сообщение #75


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



Цитата(sasamy @ Dec 24 2011, 16:01) *
Скачал, посмотрел - с uart вроде все в порядке, из подозрительного - у вас сконфигурировано под am1707, у вас как я понял am1705 (нет LCD) а поддержка включена для LCD вместо NAND

спасибо,

да, я пробовал и с выбирать нанд вместо LCD, но это тоже не влияет
Go to the top of the page
 
+Quote Post
sasamy
сообщение Dec 24 2011, 12:38
Сообщение #76


Знающий
****

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



Цитата(am1808 @ Dec 24 2011, 16:11) *
да, я пробовал и с выбирать нанд вместо LCD, но это тоже не влияет


Не пробовали отключать кеши ? это так - как жест отчаяния sm.gif

Прикрепленное изображение
Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 24 2011, 12:49
Сообщение #77


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



Цитата(sasamy @ Dec 24 2011, 16:38) *
Не пробовали отключать кеши ? это так - как жест отчаяния sm.gif

Прикрепленное изображение

нет, не пробовал.
как то можно вывести буффер до start_kernel() и инициализации консоли?
Go to the top of the page
 
+Quote Post
sasamy
сообщение Dec 24 2011, 13:12
Сообщение #78


Знающий
****

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



Цитата(am1808 @ Dec 24 2011, 16:49) *
как то можно вывести буффер до start_kernel() и инициализации консоли?


Поддержка вывода отладочной информации до инициализации консоли для davinci есть
arch/arm/mach-davinci/include/mach/debug-macro.S

так что ничего не мешает ее использовать, странно что вообще все молчит после распаковщика..
Go to the top of the page
 
+Quote Post
sasamy
сообщение Dec 24 2011, 15:06
Сообщение #79


Знающий
****

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



Я забыл сказать - вы добавили в параметры загрузки ядра в u-boot ?

bootargs console=ttyS2,115200n8 earlyprintk
Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 24 2011, 15:10
Сообщение #80


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



Цитата(sasamy @ Dec 24 2011, 19:06) *
Я забыл сказать - вы добавили в параметры загрузки ядра в u-boot ?

bootargs console=ttyS2,115200n8 earlyprintk

нет, такой аргумент не добавлял.
даже не знал, и нигде не написано про это
Go to the top of the page
 
+Quote Post
sasamy
сообщение Dec 24 2011, 15:34
Сообщение #81


Знающий
****

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



Цитата(am1808 @ Dec 24 2011, 19:10) *
даже не знал, и нигде не написано про это


Да это я прошляпил - забыл сказать. Кстати напрямую в порт выводить символы есть ф-ции printascii, printch, printhex. Нпример в early_write
Код
static void early_write(const char *s, unsigned n)
{
        while (n-- > 0) {
                if (*s == '\n')
                        printch('\r');
                printch(*s);
                s++;
        }
}


arch/arm/kernel/debug.S

UPD Еще - чтобы проверить работоспособность earlyprintk можно намеренно неправильный MACH_ID передать из u-boot - если до загрузки ядра дело доходит и earlyprintk работает - должны увидеть как начальный загрузчик ядра заругается на неправильный MACH_ID. Вернее это даже раньше регистрации отладочной консоли сработает - через ф-ции printch пр. из arch/arm/kernel/debug.S

Сообщение отредактировал sasamy - Dec 24 2011, 16:06
Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 24 2011, 16:30
Сообщение #82


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



sasamy,
спасибо преогромное, как раз разбираю эти функции.
machid я намеренно передам другой из u-boot, в нем же выставлю правильные параметры для early_printk().
результат к сожалению смогу сказать только в понедельник.
скажите пожалуйста, до какого момента я могу использовать функции early_write(), printascii(), printch(), printhex()?

и еще такой момент,
я не использую ubl, при портировании u-boot были проблемы с выводом на консоль с его стороны, связанные с неправильной работой UART, помогла запись 0 в регистр MDR UART ( 16× over-sampling ). в драйверах ядра этот регистр никак не используется. Как то можно предположить, что проблемы с ядром связаны с регистром UART MDR?

Go to the top of the page
 
+Quote Post
sasamy
сообщение Dec 24 2011, 16:55
Сообщение #83


Знающий
****

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



Цитата(am1808 @ Dec 24 2011, 20:30) *
скажите пожалуйста, до какого момента я могу использовать функции early_write(), printascii(), printch(), printhex()?


Регистры периферии в kernel space всегда мапятся на определенные виртуальные адреса, в макросе проверяется, включен ли MMU
Код
                .macro addruart, rx
                mrc     p15, 0, \rx, c1, c0
                tst     \rx, #1                 @ MMU enabled?
                moveq   \rx, #0x01000000        @ physical base address
                movne   \rx, #0xfe000000        @ virtual base


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

Цитата
запись 0 в регистр MDR UART ( 16Ч over-sampling ). в драйверах ядра этот регистр никак не используется. Как то можно предположить, что проблемы с ядром связаны с регистром UART MDR?


До инита UART-ов порт остается с настройками кототрые сделаны в u-boot так что до этого момента все равно должно что-то валиться в порт нормально, а там видно будет - проверьте сначала как работает early printk.

Сообщение отредактировал sasamy - Dec 24 2011, 16:56
Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 24 2011, 17:01
Сообщение #84


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



спасибо огромное,
в понедельник проверю и отпишусь
Go to the top of the page
 
+Quote Post
sasamy
сообщение Dec 24 2011, 17:19
Сообщение #85


Знающий
****

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



Цитата(am1808 @ Dec 24 2011, 21:01) *
в понедельник проверю и отпишусь


Есть еще один момент, начальный загрузчик может уходить в бесконечный цикл если включен вывод начальной отладки, в этих местах
Код
                .macro  waituart,rd,rx
#ifdef FLOW_CONTROL
1001:           ldr     \rd, [\rx, #UART_MSR << UART_SHIFT]
                tst     \rd, #UART_MSR_CTS
                beq     1001b
#endif


Код
.macro  busyuart,rd,rx
1002:           ldr     \rd, [\rx, #UART_LSR << UART_SHIFT]
                and     \rd, \rd, #UART_LSR_TEMT | UART_LSR_THRE
                teq     \rd, #UART_LSR_TEMT | UART_LSR_THRE
                bne     1002b
                .endm


Так что имейте это ввиду. Например я бы вообще временно принудительно убрал управление потоком
#undef FLOW_CONTROL

Сообщение отредактировал sasamy - Dec 24 2011, 17:51
Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 24 2011, 18:33
Сообщение #86


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



ага, понял, спасибо.


а где лучше и рекомендательнее убрать FLOW_CONTROL ?
и еще вот не совсем понятно, в файле arch/arm/boot/compressed/head.S
есть по всей видимости отладка, которая спрятана под #ifdef DEBUG

никак не могу понять, где он определен, то ли через gcc передается, то ли где то статически забит или нет.
мне нужно задефайнить DEBUG или же нет? и где это лучше сделать?

и еще вот такой вопрос, как то можно включить фичу при сборке ядра, чтобы посмотреть на исходный модуль(файл) после препроцессора, например, через опцию -E gcc?
Go to the top of the page
 
+Quote Post
sasamy
сообщение Dec 24 2011, 20:50
Сообщение #87


Знающий
****

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



Цитата(am1808 @ Dec 24 2011, 22:33) *
а где лучше и рекомендательнее убрать FLOW_CONTROL ?


Прямо перед проверкой

#undef FLOW_CONTROL
#ifdef FLOW_CONTROL

Цитата
и еще вот такой вопрос, как то можно включить фичу при сборке ядра, чтобы посмотреть на исходный модуль(файл) после препроцессора, например, через опцию -E gcc?


Для файлов С совсем просто, например для arch/arm/kernel/dma.с
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- arch/arm/kernel/dma.i

Для ассемблера можно объектный файл дизассемблировать, например
arm-none-linux-gnueabi-objdump -d arch/arm/kernel/debug.o
Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 24 2011, 21:30
Сообщение #88


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



Цитата(sasamy @ Dec 25 2011, 00:50) *
Прямо перед проверкой

#undef FLOW_CONTROL
#ifdef FLOW_CONTROL

ясно, так и сделал. я к чему спросил, потому что вдруг какой то модуль тоже максрос этот подцепляет

Цитата(sasamy @ Dec 25 2011, 00:50) *
Для файлов С совсем просто, например для arch/arm/kernel/dma.с
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- arch/arm/kernel/dma.i

Для ассемблера можно объектный файл дизассемблировать, например
arm-none-linux-gnueabi-objdump -d arch/arm/kernel/debug.o

ага, ясно.
я так понимаю, в первом случае для целей с расширением i выполняется какая то шаблонная цель для препроцессинга?

еще раз спасибо большое!
Go to the top of the page
 
+Quote Post
sasamy
сообщение Dec 24 2011, 21:49
Сообщение #89


Знающий
****

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



Цитата(am1808 @ Dec 25 2011, 01:30) *
я так понимаю, в первом случае для целей с расширением i выполняется какая то шаблонная цель для препроцессинга?


да - это такая отладочная "фича" в ядре, то же самое можно сделать чтобы посмотреть что сгенерировал компилятор
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- arch/arm/kernel/compat.s

Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 26 2011, 14:51
Сообщение #90


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



итак, earlyprintk выручило.

ядро запускалось, и зависало вот где:
Код
U-Boot >

U-Boot > printenv

bootdelay=5

baudrate=115200

bootfile="uImage"

ethaddr=00:16:76:4e:64:da

bootcmd=bootm 0xC0700000

bootargs=console=ttyS2,115200n8 earlyprintk mem=32M

stdin=serial

stdout=serial

stderr=serial

ver=U-Boot 2009.11 (Dec 09 2011 - 17:49:53)



Environment size: 234/16380 bytes

U-Boot > loadb

## Ready for binary (kermit) download to 0xC0700000 at 115200 bps...

## Total Size      = 0x001eb588 = 2012552 Bytes

## Start Addr      = 0xC0700000

U-Boot > bootm

## Booting kernel from Legacy Image at c0700000 ...

   Image Name:   Linux-2.6.33-rc4

   Image Type:   ARM Linux Kernel Image (uncompressed)

   Data Size:    2012488 Bytes =  1.9 MB

   Load Address: c0008000

   Entry Point:  c0008000

   Verifying Checksum ... OK

   Loading Kernel Image ... OK

OK



Starting kernel ...



Uncompressing Linux... done, booting the kernel.

Linux version 2.6.33-rc4 (xxx@ubuntu) (gcc version 4.3.3 (Sourcery G++ Lite 20

09q1-203) ) #2 PREEMPT Fri Dec 23 16:24:34 MSK 2011

CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177

CPU: VIVT data cache, VIVT instruction cache

Machine: DaVinci DA830/OMAP-L137/AM17xx EVM

Memory policy: ECC disabled, Data cache writethrough

DaVinci da830/omap-l137 rev2.0 variant 0x9

Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 8128

Kernel command line: console=ttyS2,115200n8 earlyprintk mem=32M

bootconsole [earlycon0] enabled

PID hash table entries: 128 (order: -3, 512 bytes)

Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)

Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)

Memory: 32MB = 32MB total

Memory: 28268KB available (3736K code, 297K data, 140K init, 0K highmem)

SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1

Hierarchical RCU implementation.

NR_IRQS:245

Console: colour dummy device 80x30

Calibrating delay loop...


в чем причина - не понятно, исследование кода касаемо этой проблемы ни к чему не привело.

Но вот что интересно,
скачал последнюю версию ядра с kernel.org
собрал его с теми же опциями и все удачно!
ну плюс тут я грузил ФС через NFS, но ФС не влияет ни на что(я о проблеме выше)

вот лог:
Код
U-Boot > loadb

## Ready for binary (kermit) download to 0xC0700000 at 115200 bps...

## Total Size      = 0x001b9f80 = 1810304 Bytes

## Start Addr      = 0xC0700000

U-Boot > bootm

## Booting kernel from Legacy Image at c0700000 ...

   Image Name:   Linux-3.1.6

   Image Type:   ARM Linux Kernel Image (uncompressed)

   Data Size:    1810240 Bytes =  1.7 MB

   Load Address: c0008000

   Entry Point:  c0008000

   Verifying Checksum ... OK

   Loading Kernel Image ... OK

OK

mem.start: c0000000

mem.size: 2000000 bytes 32 MB



Starting kernel ...



debug: jump to c0008000 address

debug: start boot params address: c0000100

debug: data

debug: machID 1781

Uncompressing Linux... done, booting the kernel.

Linux version 3.1.6 (xxx@ubuntu) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-

203) ) #5 PREEMPT Mon Dec 26 15:22:34 MSK 2011

CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177

CPU: VIVT data cache, VIVT instruction cache

Machine: DaVinci DA830/OMAP-L137/AM17x EVM

bootconsole [earlycon0] enabled

Memory policy: ECC disabled, Data cache writethrough

DaVinci da830/omap-l137 rev2.0 variant 0x9

Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 8128

Kernel command line: console=ttyS2,115200n8 mem=32M noinitrd rw earlyprintk ip=1

92.168.2.144:192.168.2.87:192.168.0.1:255.255.240.0:uspd:eth0:bootp root=/dev/nf

s nfsroot=192.168.2.87:/home/xxx/Desktop/sdk_1_10_00_01/filesys,nolock

PID hash table entries: 128 (order: -3, 512 bytes)

Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)

Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)

Memory: 32MB = 32MB total

Memory: 28808k/28808k available, 3960k reserved, 0K highmem

Virtual kernel memory layout:

    vector  : 0xffff0000 - 0xffff1000   (   4 kB)

    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)

    DMA     : 0xff000000 - 0xffe00000   (  14 MB)

    vmalloc : 0xc2800000 - 0xfea00000   ( 962 MB)

    lowmem  : 0xc0000000 - 0xc2000000   (  32 MB)

    modules : 0xbf000000 - 0xc0000000   (  16 MB)

      .text : 0xc0008000 - 0xc032389c   (3183 kB)

      .init : 0xc0324000 - 0xc0346000   ( 136 kB)

      .data : 0xc0346000 - 0xc0365e60   ( 128 kB)

       .bss : 0xc0365e84 - 0xc038c24c   ( 153 kB)

SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1

Preemptible hierarchical RCU implementation.

NR_IRQS:245

Console: colour dummy device 80x30

Calibrating delay loop... 148.88 BogoMIPS (lpj=744448)

pid_max: default: 32768 minimum: 301

Mount-cache hash table entries: 512

CPU: Testing write buffer coherency: ok

DaVinci: 128 gpio irqs

print_constraints: dummy:

NET: Registered protocol family 16

bio: create slab <bio-0> at 0

Switching to clocksource timer0_0

Switched to NOHz mode on CPU #0

NET: Registered protocol family 2

IP route cache hash table entries: 1024 (order: 0, 4096 bytes)

TCP established hash table entries: 1024 (order: 1, 8192 bytes)

TCP bind hash table entries: 1024 (order: 0, 4096 bytes)

TCP: Hash tables configured (established 1024 bind 1024)

TCP reno registered

UDP hash table entries: 256 (order: 0, 4096 bytes)

UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)

NET: Registered protocol family 1

RPC: Registered named UNIX socket transport module.

RPC: Registered udp transport module.

RPC: Registered tcp transport module.

RPC: Registered tcp NFSv4.1 backchannel transport module.

msgmni has been set to 56

io scheduler noop registered (default)

start plist test

end plist test

Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled

serial8250.0: ttyS0 at MMIO 0x1c42000 (irq = 25) is a 16550A

serial8250.0: ttyS1 at MMIO 0x1d0c000 (irq = 53) is a 16550A

serial8250.0: ttyS2 at MMIO 0x1d0d000 (irq = 61) is a 16550A

console [ttyS2] enabled, bootconsole disabled

console [ttyS2] enabled, bootconsole disabled

brd: module loaded

davinci_mdio davinci_mdio.0: davinci mdio revision 1.5

davinci_mdio davinci_mdio.0: detected phy mask fffffff1

davinci_mdio.0: probed

davinci_mdio davinci_mdio.0: phy[1]: device 0:01, driver unknown

davinci_mdio davinci_mdio.0: phy[2]: device 0:02, driver unknown

davinci_mdio davinci_mdio.0: phy[3]: device 0:03, driver unknown

rtc-test rtc-test.0: rtc core: registered test as rtc0

rtc-test rtc-test.1: rtc core: registered test as rtc1

i2c /dev entries driver

cpuidle: using governor ladder

cpuidle: using governor menu

TCP cubic registered

NET: Registered protocol family 17

davinci_emac davinci_emac.1: using random MAC addr: 5e:8e:3f:87:58:15

console [netcon0] enabled

netconsole: network logging started

rtc-test rtc-test.0: setting system clock to 1970-01-01 00:00:02 UTC (2)

net eth0: no phy, defaulting to 100/full

IP-Config: Complete:

     device=eth0, addr=192.168.2.144, mask=255.255.240.0, gw=192.168.0.1,

     host=xxx, domain=, nis-domain=(none),

     bootserver=192.168.2.87, rootserver=192.168.2.87, rootpath=

VFS: Mounted root (nfs filesystem) on device 0:12.

Freeing init memory: 136K


в чем причина такого?
и по каким причинам калибровка не происходит?
Go to the top of the page
 
+Quote Post
sasamy
сообщение Dec 26 2011, 19:07
Сообщение #91


Знающий
****

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



Цитата
Calibrating delay loop...


Скорей всего не работает системный таймер - прерывания не приходят от него, поэтому зацикливается.
Цитата
pr_info("Calibrating delay loop... ");
while ((loops_per_jiffy <<= 1) != 0) {
/* wait for "start of" clock tick */
ticks = jiffies;
while (ticks == jiffies)
/* nothing */;


А вот почему не работает - это другой вопрос. Сравните инициализацию таймеров в старом и новом ядре, в старом она тут
arch/arm/mach-davinci/time.c
я не знаком с этим процессором, тут ничего не подскажу. Еще на рабочем ядре погоняйте на всякий случай мемтестер нормальный - то что в убуте не находит ошибок не дает 100% гарантии, там он слишком примитивный.

Сообщение отредактировал sasamy - Dec 26 2011, 19:17
Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 26 2011, 19:17
Сообщение #92


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



Цитата(sasamy @ Dec 26 2011, 23:07) *
Еще на рабочем ядра погоняйте на всякий случай мемтестер нормальный - то что в убуте не находит ошибок не дает 100% гарантии, там он слишком примитивный.

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

еще раз спасибо

Сообщение отредактировал am1808 - Dec 26 2011, 19:24
Go to the top of the page
 
+Quote Post
sasamy
сообщение Dec 26 2011, 19:24
Сообщение #93


Знающий
****

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



Цитата(am1808 @ Dec 26 2011, 23:17) *
извиняюсь, не совсем понял?


Ядро у вас есть рабочее - запустите memtester из-под Linux (есть например в составе buildroot), корневую в initramfs соберите, у меня какие смутные воспоминания остались что было такое из-за ошибок памяти, хотя я не уверен - для успокоения своего же потестируйте память sm.gif

Сообщение отредактировал sasamy - Dec 26 2011, 19:25
Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 26 2011, 19:26
Сообщение #94


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



Цитата(sasamy @ Dec 26 2011, 23:24) *
Ядро у вас есть рабочее - запустите там memtester (есть например в составе buildroot), корневую в initramfs соберите, у меня какие смутные воспоминания остались что было такое из-за ошибок памяти, хотя я не уверен - для успокоения своего же потестируйте память sm.gif

спасибо beer.gif , для 100% уверенности, свой тестер напишу
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 26 2011, 19:48
Сообщение #95


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(am1808 @ Dec 26 2011, 23:26) *
спасибо beer.gif , для 100% уверенности, свой тестер напишу

100% получить затруднительно. Как минимум прогоните длительно псевдослучайную последовательность и проверьте ground bounce.
Но и это не даст гарантии. Например, доработанный хавкборд замечательно проходит любые тесты памяти и работает под linux, но падает
буквально за секунды под WinCE.

В общем, если есть хоть малейшие подозрения на работу памяти - тестировать безжалостно. Потом будет меньше проблем "неясной этиологии".
Go to the top of the page
 
+Quote Post
sasamy
сообщение Dec 26 2011, 19:58
Сообщение #96


Знающий
****

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



Цитата(am1808 @ Dec 26 2011, 23:26) *
спасибо beer.gif , для 100% уверенности, свой тестер напишу


Еще гденибуть перед этим циклом распечатайте содержимое регистров контроллера прерываний, он там как раз незадолго до этого инициализируется
Цитата
NR_IRQS:245

Console: colour dummy device 80x30

Calibrating delay loop...


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

UPD все же непонятно - если это ядро работает на почти таком же процессоре но на другой плате - как оно там не зависает... и тут как раз такой ключевой момент - ожидание первого тика от таймера - это помоему первое переключение контекста в системе после старта, попробуйте все же кеши отключить, и еще в меню есть такой грозный пункт sm.gif тоже можно попробовать отключить
Прикрепленное изображение


Сообщение отредактировал sasamy - Dec 26 2011, 20:44
Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 27 2011, 14:32
Сообщение #97


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



спасибо, завтра сравню регистры и конфиги для старого ядра.

сегодня весь день провел за программированием ФС в нанд.

все казалось бы делаю по инструкции, все вроде отрабатывает, а ядро при загрузке вот паникует и вываливает следующий лог:

Код
U-Boot > loadb

## Ready for binary (kermit) download to 0xC0700000 at 115200 bps...

## Total Size      = 0x001d48c0 = 1919168 Bytes

## Start Addr      = 0xC0700000

U-Boot > bootm

## Booting kernel from Legacy Image at c0700000 ...

   Image Name:   Linux-3.1.6

   Image Type:   ARM Linux Kernel Image (uncompressed)

   Data Size:    1919104 Bytes =  1.8 MB

   Load Address: c0008000

   Entry Point:  c0008000

   Verifying Checksum ... OK

   Loading Kernel Image ... OK

OK

mem.start: c0000000

mem.size: 2000000 bytes 32 MB



Starting kernel ...



debug: jump to c0008000 address

debug: start boot params address: c0000100

debug: data

debug: machID 1781

Uncompressing Linux... done, booting the kernel.

Linux version 3.1.6 (xxx@ubuntu) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-

203) ) #10 PREEMPT Tue Dec 27 11:33:39 MSK 2011

CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177

CPU: VIVT data cache, VIVT instruction cache

Machine: DaVinci DA830/OMAP-L137/AM17x EVM

bootconsole [earlycon0] enabled

Memory policy: ECC disabled, Data cache writethrough

DaVinci da830/omap-l137 rev2.0 variant 0x9

Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 8128

Kernel command line: console=ttyS2,115200n8 mem=32M earlyprintk ip=off root=/dev

/mtdblock0 rw rootfstype=jffs2

PID hash table entries: 128 (order: -3, 512 bytes)

Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)

Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)

Memory: 32MB = 32MB total

Memory: 28584k/28584k available, 4184k reserved, 0K highmem

Virtual kernel memory layout:

    vector  : 0xffff0000 - 0xffff1000   (   4 kB)

    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)

    DMA     : 0xff000000 - 0xffe00000   (  14 MB)

    vmalloc : 0xc2800000 - 0xfea00000   ( 962 MB)

    lowmem  : 0xc0000000 - 0xc2000000   (  32 MB)

    modules : 0xbf000000 - 0xc0000000   (  16 MB)

      .text : 0xc0008000 - 0xc0358508   (3394 kB)

      .init : 0xc0359000 - 0xc037a000   ( 132 kB)

      .data : 0xc037a000 - 0xc039f080   ( 149 kB)

       .bss : 0xc039f0a4 - 0xc03c40ac   ( 149 kB)

SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1

Preemptible hierarchical RCU implementation.

NR_IRQS:245

Console: colour dummy device 80x30

Calibrating delay loop... 148.88 BogoMIPS (lpj=744448)

pid_max: default: 32768 minimum: 301

Mount-cache hash table entries: 512

CPU: Testing write buffer coherency: ok

DaVinci: 128 gpio irqs

print_constraints: dummy:

NET: Registered protocol family 16

bio: create slab <bio-0> at 0

Switching to clocksource timer0_0

Switched to NOHz mode on CPU #0

NET: Registered protocol family 2

IP route cache hash table entries: 1024 (order: 0, 4096 bytes)

TCP established hash table entries: 1024 (order: 1, 8192 bytes)

TCP bind hash table entries: 1024 (order: 0, 4096 bytes)

TCP: Hash tables configured (established 1024 bind 1024)

TCP reno registered

UDP hash table entries: 256 (order: 0, 4096 bytes)

UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)

NET: Registered protocol family 1

RPC: Registered named UNIX socket transport module.

RPC: Registered udp transport module.

RPC: Registered tcp transport module.

RPC: Registered tcp NFSv4.1 backchannel transport module.

JFFS2 version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.

msgmni has been set to 55

io scheduler noop registered (default)

start plist test

end plist test

Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled

serial8250.0: ttyS0 at MMIO 0x1c42000 (irq = 25) is a 16550A

serial8250.0: ttyS1 at MMIO 0x1d0c000 (irq = 53) is a 16550A

serial8250.0: ttyS2 at MMIO 0x1d0d000 (irq = 61) is a 16550A

console [ttyS2] enabled, bootconsole disabled

console [ttyS2] enabled, bootconsole disabled

brd: module loaded

ONFI flash detected

ONFI param page 0 valid

NAND device: Manufacturer ID: 0x2c, Chip ID: 0xf1 (Micron MT29F1G08ABADAWP)

Creating 1 MTD partitions on "davinci_nand.1":

0x000000000000-0x000008000000 : "filesystem"

davinci_nand davinci_nand.1: controller rev. 2.5

spi_davinci spi_davinci.0: DMA: supported

spi_davinci spi_davinci.0: DMA: RX channel: 14, TX channel: 15, event queue: 0

spi_davinci spi_davinci.0: Controller at 0xfec41000

davinci_mdio davinci_mdio.0: davinci mdio revision 1.5

davinci_mdio davinci_mdio.0: detected phy mask fffffff1

davinci_mdio.0: probed

davinci_mdio davinci_mdio.0: phy[1]: device 0:01, driver unknown

davinci_mdio davinci_mdio.0: phy[2]: device 0:02, driver unknown

davinci_mdio davinci_mdio.0: phy[3]: device 0:03, driver unknown

rtc-test rtc-test.0: rtc core: registered test as rtc0

rtc-test rtc-test.1: rtc core: registered test as rtc1

i2c /dev entries driver

watchdog watchdog: heartbeat 60 sec

SoftDog: cannot register miscdev on minor=130 (err=-16)

cpuidle: using governor ladder

cpuidle: using governor menu

TCP cubic registered

NET: Registered protocol family 17

davinci_emac davinci_emac.1: using random MAC addr: d2:0d:54:78:68:1c

console [netcon0] enabled

netconsole: network logging started

rtc-test rtc-test.0: setting system clock to 1970-01-01 00:00:02 UTC (2)

Root-NFS: no NFS server address

VFS: Unable to mount root fs via NFS, trying floppy.

List of all partitions:

No filesystem could mount root, tried:  jffs2

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)

[<c000d830>] (unwind_backtrace+0x0/0xf8) from [<c0284cd4>] (panic+0x60/0x1a8)

[<c0284cd4>] (panic+0x60/0x1a8) from [<c0359dcc>] (mount_block_root+0x1c8/0x224)



[<c0359dcc>] (mount_block_root+0x1c8/0x224) from [<c0359ea8>] (mount_root+0x80/0

xc8)

[<c0359ea8>] (mount_root+0x80/0xc8) from [<c0359ffc>] (prepare_namespace+0x10c/0

x1c8)

[<c0359ffc>] (prepare_namespace+0x10c/0x1c8) from [<c035928c>] (kernel_init+0xec

/0x12c)

[<c035928c>] (kernel_init+0xec/0x12c) from [<c0009c9c>] (kernel_thread_exit+0x0/

0x8)

BOOTME


bootargs=console=ttyS2,115200n8 mem=32M earlyprintk root=/dev/mtdblock0 rw rootfstype=jffs2 ip=off

корневую ФС базовую скачал с офиц. сайта.
распаковал и установил туда kernel headers and modules.

собирал jffs2.bin следующим образом:

# mkfs.jffs2 -p -d rootfs -s 2048 -e 0x20000 -l -q -o rootfs.jffs2 -v –n

NAND Organization:
– Page size x8: 2112 bytes (2048 + 64 bytes)
– Page size x16: 1056 words (1024 + 32 words)
– Block size: 64 pages (128K + 4K bytes)
– Device size: 1Gb: 1024 blocks

получившийся образ ФС я заливаю по терминалу в оперативку борды, затем делаю:
1. nand erase 0 0x08000000
2. nand write.jffs2 0xc0700000 0 $filesize

все удачно программируется, затем гружу ядро( NAND & JFFS2 включены при сборке ядра)

куда копать и что делать?
подскажите пожалуйста.

и еще, почему ядро первым делом пытается примонтировать ФС по NFS, когда я ему четко указал откуда брать корневую ФС?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 27 2011, 15:17
Сообщение #98


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Кстати, попробовать отключить кэши на "неработающем" ядре - это весьма дельный совет. Если оно после этого начнет запускаться, значит с весьма высокой вероятностью ваша железка имеет проблемы с памятью. Я бы проверил, по крайней мере.
Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 27 2011, 15:23
Сообщение #99


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



Цитата(aaarrr @ Dec 27 2011, 19:17) *
Кстати, попробовать отключить кэши на "неработающем" ядре - это весьма дельный совет. Если оно после этого начнет запускаться, значит с весьма высокой вероятностью ваша железка имеет проблемы с памятью. Я бы проверил, по крайней мере.

да, спасибо,
для ядра 3.1.6 кеши точно отключены и пунк "Reset unusing clock during boot" включен.
завтра обращу внимание на ядро 2.6.34, которое TI поставляло к EVM1707

Сообщение отредактировал am1808 - Dec 27 2011, 15:24
Go to the top of the page
 
+Quote Post
am1808
сообщение Dec 28 2011, 19:21
Сообщение #100


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



всем преогромное спасибо,
весь прикол был только в Reset unusing clock during boot, неободимо включить такой параметр.

с корневой фс вопрос решен
Go to the top of the page
 
+Quote Post

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

 


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


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