Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:1
Поисковых ботовПоисковых ботов:2
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9XXXXX-S3E
Как исправить bad crc u-boot'a
leen
Добавлено 19.04.2011 10:02
0
Сообщение: 1
leen
0

Пункты: 623
Регистрация: 29.12.2009
Пол: Мужчина
Здравствуйте.
Есть две недавно купленных платы с у-бутом версии 1.1.5.
При загрузке у-бута обе жалуются на плохой crc настроек и загружают настройки по-умолчанию. Нанд не перепрограммировался. Serial DataFlash DD2 отсутствует, надо полагать, настройки у-бута хранятся в нанд. Не хотелось бы пересобирать загрузчик для внесения своих настроек (сетевые адреса - подсеть совсем другая и изменить ее я не могу, скрипты, да тот же мак-адрес). К тому же на этапе отладки каждый раз при изменении одного параметра пересобирать у-бут не хочется.
Есть ли какие-либо способы вылечить эту болезнь? Поиск по форуму гуглом ничего не дал, хотя упоминаний данной фразы "warning. bad crc" много. Или это зло, с которым придется смириться?
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 19.04.2011 10:28 Сообщение: 2
Pavel Ivanchenko
Admin
4.39

Пункты: 91438
Регистрация: 24.03.2009
Пол: Мужчина
Смотрите в файле конфига uboot (include/configs/(имя не помню)), это все "хозяйство" там макросами и задается.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 19.04.2011 11:16 Сообщение: 3
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Есть ли какие-либо способы вылечить эту болезнь? Поиск по форуму гуглом ничего не дал, хотя упоминаний данной фразы "warning. bad crc" много. Или это зло, с которым придется смириться?

покопайте в сторону команды U-boot - saveenv
для переменных окружения Юбута отводится область во флеш-памяти. посмотрите в сорцах - возможно для Нанда надо что-то поправить..
Цитата
сетевые адреса - подсеть совсем другая и изменить ее я не могу, скрипты, да тот же мак-адрес

а команды в Юбуте не работают?
Код
setenv тру-ля-ля

а что пишет на команду
Код
saveenv


минимум информации ссылка

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
leen
Добавлено 20.04.2011 07:42 Редактировалось 20.04.2011 09:06 Сообщение: 4
leen
0

Пункты: 623
Регистрация: 29.12.2009
Пол: Мужчина
Нашел причину, почему у-бут не хочет загружать конфигурацию: в файле include/configs/at91sam9260ek.h указано
Код
#undef CFG_ENV_IS_IN_FLASH
#define CFG_ENV_IS_IN_DATAFLASH
#undef CFG_ENV_IS_IN_NAND
и дальше - если конфиг в нанде, то его смещение 0х60000, а там лежит ядро. А датафлешь на моих платах не установлена. Вариантов я вижу два: либо передвинуть на сектор ядро, либо установить датафлешь. Да и еще - пересобрал у-бут, загрузил его в плату, проверил переменные - все правильно. Облом ждал в виде сети - пинг существующего адреса зависает, tftpboot зависает, показав звездочку. При этом во время загрузки у-бут говорит
Код
KS8721 PHY Detected
ETH: 100M Full Duplex.
End of Autonegociation

Вернул старый вариант - работает. Пока не знаю, где накосячил. Пересобирал с помощью команды
Код
MAKEALL at91sam9260ek
. Буду пробовать другие варианты.
2 Jury093 - setenv работает, только она вчера и спасала. saveenv - не работает из-за отсутствующей микросхемы.
upd: собрал по ссылке Юрия - та же ерунда, сеть не работает. Из вариантов - изменил мак. Вернул обратно - не помогло.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 20.04.2011 13:03 Сообщение: 5
sasamy
4.70

Пункты: 77331
Регистрация: 14.08.2009
Цитата

Вариантов я вижу два: либо передвинуть на сектор ядро, либо установить датафлешь.


Из-за конфига ставить датафлешь - это жескач :) разве нельзя изменить адрес где хранится конфиг в nand ? у меня была плата на 9260 - там только датафлешь была - и то все вслезало, включая корневую.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 20.04.2011 13:14 Сообщение: 6
sasamy
4.70

Пункты: 77331
Регистрация: 14.08.2009
Кстати - счас посмотрел - на другой правда плате, адрес ядра - 0x80000, выложите где-нибуть свой конфиг, не думаю что они сильно отличаются будут.
Спуститься к концу Подняться к началу
Персональная информация
leen
Добавлено 20.04.2011 15:06 Редактировалось 20.04.2011 16:54 Сообщение: 7
leen
0

Пункты: 623
Регистрация: 29.12.2009
Пол: Мужчина
Можно. Я так и сделаю, когда разберусь, почему у меня сейчас у-бут капризничает с работой с сетью. А в моих платах чдро действительно лежит в 60000 хекс.
upd: все, кажется, разобрался.
Что было - не было носителя настроек у-бута. Физически.
Что сделал:
- в исходниках у-бута в файле include/configs/at91sam9260ek.h вместо
Код
#undef CFG_ENV_IS_IN_FLASH
#define CFG_ENV_IS_IN_DATAFLASH
#undef CFG_ENV_IS_IN_NAND
сделал
Код
#undef CFG_ENV_IS_IN_FLASH
#undef CFG_ENV_IS_IN_DATAFLASH
#define CFG_ENV_IS_IN_NAND
Собрал бинарный файл прилагаемым компилером (в этот момент заработала сеть). Заодно в CONFIG_EXTRA_ENV_SETTINGS исправил все адреса ядра 60000 на 80000.
Вручную перенес лежавшее по адресу 0х60000 ядро:
Код
nand read 20400000 60000 7a0000
nand erase 80000 7a0000
nand write 20400000 80000 7a0000
Самбой перезалил бинарный файл у-бута (см. местную вики).
Загрузив у-бут, сохранил дефолтовые настройки командой
Код
saveenv
Проверил работу, изменив и записав адрес платы - сохранился. После этого в режиме автозагрузки попробовал загрузить ядро. Получил облом - bad magic number. Похоже, вылез за границы чего-то, пока непонятно чего. Но моя цель, в общем-то достигнута - настройки есть и они работают.
upd2: сообразил, в чем промахнулся - вышел за 8М: 7А0000 + 80000 = 8,125М.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 20.04.2011 16:51 Сообщение: 8
sasamy
4.70

Пункты: 77331
Регистрация: 14.08.2009
А чего там разбираться ? Все настройки задаются в переменных окружения
Цитата

"ipaddr=192.168.0.136\0" \
"netmask=255.255.255.0\0" \
"ethaddr=00:1f:f2:00:00:00\0" \
"serverip=192.168.0.2\0"


берете убут от своей платы да правите. Там же и адреса правите - откуда читается ядро и корневая. Потом только нужно их положить по соответствующим адресам в nand. Можно конечно и через saveenv но только мне лично удобнее в редакторе на PC конфиг поправить чем набивать в убуте :)
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9XXXXX-S3E