J.Joker 0 7 ноября, 2011 Опубликовано 7 ноября, 2011 · Жалоба Как подпилить 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 памяти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slavayo777 0 8 ноября, 2011 Опубликовано 8 ноября, 2011 · Жалоба Подкрутить надо 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, а дальше по обстоятельствам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
J.Joker 0 8 ноября, 2011 Опубликовано 8 ноября, 2011 · Жалоба 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ов. У меня подозрение на то, что я не правильно установил настройки периферии. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
J.Joker 0 8 ноября, 2011 Опубликовано 8 ноября, 2011 · Жалоба Проблема решена, оказываеться надо было подождать немного. В общем как-то загрузилось, но при выключенном PLL. Вопрос следующий, а как теперь проверить, как U-boot работает? Я встречал строчку про использование UART1 для терминала, и список комманд u-boot, это подойдет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slavayo777 0 9 ноября, 2011 Опубликовано 9 ноября, 2011 · Жалоба Проблема решена, оказываеться надо было подождать немного. В общем как-то загрузилось, но при выключенном 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(он об этом скажет), а потом шаманить в папках, которые я указал в предыдущих постах и исправлять под свою конфигурацию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
J.Joker 0 9 ноября, 2011 Опубликовано 9 ноября, 2011 · Жалоба Я несколько запутался, и так по порядку: 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). Извините, если ответы на какие-то вопросы очевидны, просто это мой первый опыт по работе с процессорами и установкой на них ОС. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slavayo777 0 10 ноября, 2011 Опубликовано 10 ноября, 2011 · Жалоба Я несколько запутался, и так по порядку: 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). Извините, если ответы на какие-то вопросы очевидны, просто это мой первый опыт по работе с процессорами и установкой на них ОС. Не извиняйтесь, я буквально год назад тож впервые с этим столкнулся, и помочь никто не мог. У меня даж тут где-т на форуме есть темы, как светики зажигать под линуксом 1) Да. 2) Если собираетесь использовать, то лучше включите. Но на первых порах (лишь бы запустить что-то), можно отключить. 3) drivers/serial/ 4) Если грузитесь с UART№, то выбираете соответствующий UART№. Когда отработаете загрузку через UART, конвертнете в NAND и зальете этот AIS в NAND средствами U-boot. Если юбоот загрузится достаточно нажать enter, увидите promt строку, что то типа "u-boot>" Посмотрите на SDRAM_CLK во время загрузки прошивки. Должна появится расчетная частоста. Так как прошивка грузится в SDRAM. И если прошивка не может загрузится, то виновата память скорее всего. Ну и на кварц посмотрите. У меня когда ставил, кварц генерил 8 Мгц вместо 24, емкости слишком большие нагрузочные стояли. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slavayo777 0 10 ноября, 2011 Опубликовано 10 ноября, 2011 (изменено) · Жалоба В общем 3 раза отправил одно и тоже, как удалить не знаю. Изменено 10 ноября, 2011 пользователем Славка Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slavayo777 0 10 ноября, 2011 Опубликовано 10 ноября, 2011 (изменено) · Жалоба В общем 3 раза отправил одно и тоже, как удалить не знаю. Изменено 10 ноября, 2011 пользователем Славка Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
J.Joker 0 14 ноября, 2011 Опубликовано 14 ноября, 2011 · Жалоба Получилось прошить 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? ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slavayo777 0 15 ноября, 2011 Опубликовано 15 ноября, 2011 · Жалоба Получилось прошить 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. Исправляйте по ситуации те места, которые я указал ранее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
J.Joker 0 15 ноября, 2011 Опубликовано 15 ноября, 2011 · Жалоба Использую UART2 для прошивки и для консоли. На стадии AIS complete. Jump to address 0xC1080000 Waiting for DONE... Boot complete successfully Передается длинная вереница импульсов, возможно то-что нужно. Затем отсылается еще пара импульсов с жутко заваленными фронтами и переход в режим ожидания. На enter ноль реакции (команда передается, проверял осциллографом). Поменял все как Вы советовали - тишина. Если я с таймингами памяти напутал, это могло привести к таким результатам? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 15 ноября, 2011 Опубликовано 15 ноября, 2011 · Жалоба Проверьте скорость UART'а. Bootloader при некоторых условиях может задействовать x13 oversampling, а драйверы u-boot и ядра напрочь игнорируют регистр MDR. Правда, в таком случае обычно наблюдается некоторый мусор, а не полная тишина в терминале. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
J.Joker 0 15 ноября, 2011 Опубликовано 15 ноября, 2011 · Жалоба Ура :08: все получилось, при компиляции для UART надо было просто оключить NAND. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
J.Joker 0 16 ноября, 2011 Опубликовано 16 ноября, 2011 · Жалоба Появился следующий ряд вопросов. 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, или еще где-то надо вставлять строчки. Где можно посмотреть список разрешенных комманд для этого раздела и их параметры? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться