Ник:
Пароль:

Контакты

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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:7
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9G45/M10
Сброс AT91SAM9G45
sasamy
Добавлено 24.08.2012 15:12 Редактировалось 24.08.2012 15:42 Сообщение: 11
sasamy
4.70

Пункты: 77333
Регистрация: 14.08.2009
Собрал u-boot 2012.07, бутсрап - с этого форума (который может грузить ядро сам), тестировал минут 20, не знаю сколько сотен раз он перезагрузился (bootcmd=reset) но так и не завис. Проверял на плате SK-AT91SAM9G45

PS штатный uboot который идет с платой виснет как вы описали, независисмо от того какой бутстрап прошит.
Спуститься к концу Подняться к началу
Персональная информация
lexx666
Добавлено 25.08.2012 10:42 Сообщение: 12
lexx666
3.83

Пункты: 11780
Регистрация: 28.07.2011
Пол: Мужчина
Из: Барнаул
2 sasamy
А базовый адрес LCD у вас при этом где был ? В новом u-boot ? В DDR2 ?

Собрал новый u-boot по умолчанию. Зашил, проверил - вышеописанного эффекта нет. Всё работает.

Правлю размеры памяти, докручиваю LCD под нужный девайс, меняю LCD_BASE на SDRAM, докручиваю Ethernet и чото ещё по мелочи - вшиваю получаем теже грабли.

Пока проверяю связку bootstrap+u-boot без ядра.
Работает при следующих вариантах:
1) Отключить SDRAM в любом bootstrap`е. Хоть в KEIL, хоть тот, который умеет всё - ядро грузить сразу из nand или с sd, грузить u-boot и чото там ещё.
2) Если LCD_BASE в DDR2. Делаешь его в SDRAM получаем вышеописанный эффект.

Ушел проверять с ядром.
Спуститься к концу Подняться к началу
Персональная информация
lexx666
Добавлено 25.08.2012 11:34 Сообщение: 13
lexx666
3.83

Пункты: 11780
Регистрация: 28.07.2011
Пол: Мужчина
Из: Барнаул
Вообщем да. Если размещать framebuffer в DDR2 работает и ядро. Перегружается уже дофига раз.

Попробую сейчас прикрутить swap в SDRAM тогда будет попонятнее. Интересно именно обращение к SDRAM приводит к такому эффекту...
Спуститься к концу Подняться к началу
Персональная информация
lexx666
Добавлено 25.08.2012 16:49 Редактировалось 25.08.2012 16:52 Сообщение: 14
lexx666
3.83

Пункты: 11780
Регистрация: 28.07.2011
Пол: Мужчина
Из: Барнаул
Ну вообщем тестилось долго. Всё отлично.

LCD в DDR2.
Цитата

....atmel_lcdfb atmel_lcdfb.0: backlight control is not available
atmel_lcdfb atmel_lcdfb.0: 750KiB frame buffer at 73900000 (mapped at ffa00000)
....


Swap в SDRAM на 32 Мб.
Цитата

....
Starting sshd: OK
phram: swap device: 0x2000000 at 0x20000000
Setting up swapspace version 1, size = 33550336 bytes
Adding 32764k swap on /dev/mtdblock2. Priority:-1 extents:1 across:32764k
........


в автозагрузке добавлено ресорсоёмкое QT-приложение и memtester:
Цитата

cd /root
./qt_test -qws &
sleep 10
memtester 50 50 &
sleep 30
reboot


С ssh консоли проверем задействие swap командой free.
Top почему то про swap ничего не знает и не показывает.
Наверное busybox староват...

Цитата

# free
total used free shared buffers
Mem: 61048 59344 1704 0 0
-/+ buffers: 59344 1704
Swap: 32764 5396 27368


Работает с обеда без зависаний и желаний перескочить на SD карту. ПОхоже баг где-то в LCD-драйвере при использовании SDRAM. Пока оставлю так. Всем спасибо!
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 27.08.2012 11:35 Редактировалось 27.08.2012 11:38 Сообщение: 15
sasamy
4.70

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

Если LCD_BASE в DDR2. Делаешь его в SDRAM получаем вышеописанный эффект.


Странный эффект. SDR прекрасно работает - проверял на m10, там она для видеодекодера используется и видеобуфер там же был, никаких проблем не было. Ее же использовал в микроядре L4 для буферов DMA перефирии паравиртуальзованного ядра Linux - опять же все нормально было. Надо будет получше посмотреть - может просто внимания на перезагрузку не обращал, да и nand я там не использовал - все на SD было.
Спуститься к концу Подняться к началу
Персональная информация
lexx666
Добавлено 27.08.2012 13:26 Сообщение: 16
lexx666
3.83

Пункты: 11780
Регистрация: 28.07.2011
Пол: Мужчина
Из: Барнаул
Если на SD то да - всё хорошо, эффекта нет. Возможно LCD драйвер надо "гасить" как то корректно при таком использовании...
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 27.08.2012 13:39 Сообщение: 17
Pavel Ivanchenko
Admin
4.39

Пункты: 91452
Регистрация: 24.03.2009
Пол: Мужчина
Кстати, вспомнил, на плате SK-MAT91SAM9G45 я намеренно отключил в u-boot LCD т.к. он при этом "чудеса чудил" ...
Драйвер LCD уже в ядре тоже со странностями был, 16бит режим намеренно включен, в противном случае его данные каким то чудом залетали в область GPIO регистров, проявилось в том что тачскрин переставал работать и осциллом видно было последовательности на пинах на которых их не должно было быть ...
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 01.09.2012 17:11 Редактировалось 01.09.2012 17:11 Сообщение: 18
Pavel Ivanchenko
Admin
4.39

Пункты: 91452
Регистрация: 24.03.2009
Пол: Мужчина
Пересмотрел еррату, похоже что это все происки бага под названием "RSTC: Software Reset During DDRAM Accesses" ...
Спуститься к концу Подняться к началу
Персональная информация
lexx666
Добавлено 05.09.2012 10:13 Сообщение: 19
lexx666
3.83

Пункты: 11780
Регистрация: 28.07.2011
Пол: Мужчина
Из: Барнаул
NAND и SDRAM сидят на EBI.
DDR2 на своём контроллере. Возникает предположение, что lcd драйвер нужно корректно выгружать при использовании буфера на SDRAM. Чтобы не было обращения по шине EBI в момент софтверного ресета. Хотя данный сабж может возникнуть и при нажатии на кнопку reset`а т.е. при аппаратном.

Немножко не в тему возможно.
Достал с полки SD-карту с debian 6 под armel, собранный debootstrap`ом - там вообще при poweroff или halt экран не тухнет и даже курсор мигает... Как правильно "гасить" lcd-драйвер ?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 05.09.2012 10:35 Редактировалось 05.09.2012 10:59 Сообщение: 20
sasamy
4.70

Пункты: 77333
Регистрация: 14.08.2009
Цитата
NAND и SDRAM сидят на EBI.
DDR2 на своём контроллере. Возникает предположение, что lcd драйвер нужно корректно выгружать при использовании буфера на SDRAM. Чтобы не было обращения по шине EBI в момент софтверного ресета.


универсальней сделать как в barebox например
Код

reset_cpu: ldr r0, .at91_va_base_sdramc @ preload constants
ldr r1, .at91_va_base_rstc_cr

mov r2, #1
mov r3, #AT91_DDRSDRC_LPCB_POWER_DOWN
ldr r4, =AT91_RSTC_KEY | AT91_RSTC_PERRST | AT91_RSTC_PROCRST

.balign 32 @ align to cache line

str r2, [r0, #AT91_DDRSDRC_RTR] @ disable DDR0 access
str r3, [r0, #AT91_DDRSDRC_LPR] @ power down DDR0
str r4, [r1] @ reset processor

b .

.at91_va_base_sdramc:
.word AT91_BASE_SYS + AT91_DDRSDRC0
.at91_va_base_rstc_cr:
.word AT91_BASE_SYS + AT91_RSTC_CR


в ядре и в u-boot, только для DDRSDRC1 - так как исполняемого кода там нет то неважно где размещен код - icache, sram, sdram.

Цитата

Хотя данный сабж может возникнуть и при нажатии на кнопку reset`а т.е. при аппаратном.


errata

Цитата

When a software reset (CPU and peripherals) occurs during DDRAM read access, the CPU will stop the DDRAM clock.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9G45/M10