ЗАО «ЗЭО»

Пожалуйста, войдите или зарегистрируйтесь.

Расширенный поиск  

Новости:

Автор Тема: Проблема с U-Boot  (Прочитано 5374 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Shkiper

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 5
Проблема с U-Boot
« : 26 Апреля, 2012, 15:20:57 »

День добрый.
Есть Теон про 2 рев 3. На нем залито ядро. КФС грузится с IDE. Все загружается и стартует. Появилась необходимость перезалить ядро, но я не могу попасть в U-boot. При старте должно быть приглашение в U-boot, но его нет. Вместо это сразу начинается загрузка ядра.
Я поискал на форуме и не нашел решение.
1. Как мне попасть в U-boot в таком случае?
2. Где хранятся переменные U-boot и как их очистить не заходя в U-boot?
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: Проблема с U-Boot
« Ответ #1 : 26 Апреля, 2012, 17:15:54 »

У вас нет перемычки на X15 выводы 1-2?
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: Проблема с U-Boot
« Ответ #2 : 26 Апреля, 2012, 17:19:53 »

Адрес переменных в U-Boot 2010.09 задаётся в include/configs/tion.h
CONFIG_ENV_ADDR, размер CONFIG_ENV_SECT_SIZE,
резервная копия CONFIG_ENV_ADDR_REDUND
Записан

Shkiper

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 5
Re: Проблема с U-Boot
« Ответ #3 : 27 Апреля, 2012, 08:55:15 »

Х15 у нас используется как входы из АЦП. Выдернул шлейф и все заработало. Хотя на некоторых экземплярах и при воткнутом шлейфе с U-boot можно работать через КОМ-порт.
Большое спасибо.
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: Проблема с U-Boot
« Ответ #4 : 27 Апреля, 2012, 10:45:51 »

> на некоторых экземплярах и при воткнутом шлейфе с U-boot можно работать через КОМ-порт.

Видимо там U-Boot 1.3.3

С отключением консоли для U-Boot 2010.09 сделано так:

1. В U-Boot добавлен функционал gpio (cmd_gpio.c из mainstream)

2. В U-Boot отключается вывод на консоль используя флаг GD_FLG_DISABLE_CONSOLE
если выводы COL0 и COL1 замкнуты вместе.

3. В U-Boot используется hush и gpio для опроса COL0 и COL1 (опять)
для явного изменения
переменных передаваемых ядру в cmdline.

bootcmd=run if_service_mode; setenv bootargs ${bootargs} ${rootargs}
${videoargs}; bootm ${kern_fladdr}
if_service_mode=gpio c 24; if gpio i 25; then setenv bootargs
${bootargs_noconsole}; else setenv bootargs ${bootargs_console}; fi;
gpio i 24
bootargs_noconsole=
bootargs_console=console=ttyAM0,57600n8
videoargs=video=ep93xxfb:vout=1,vmode=16
rootargs=root=/dev/mtdblock2 rootfstype=jffs2 ro

gpio 24 -- COL0 в документации
gpio 25 -- COL1

Далее для отключения консоли в ядре и пользовательском окружении:

4. В ядре убрана early printk (в этом ярде ещё не было такого в конфигрурации).

5. В /etc/inintab заменена строка ttyAM0 на null с вызовом скрипта
/etc/console.sh в котором
по значению console= из /proc/cmdline запускается /bin/sh, или не запускается.
Записан