Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:7
Форум » starterkit.ru » Отладочные платы » SK-MAT91SAM9G45/M10
монтаж SDRAM на плату SK-MAT91SAM9G45 и запуск платы
buletz
Добавлено 12.02.2012 13:15
0
Сообщение: 1
buletz
3

Пункты: 5920
Регистрация: 16.11.2011
Пол: Мужчина
1. смонтировали SDRAM на плату.
2. пытаюсь запустить с бутстрапом, который предложил boyko-alexey тут:
ссылк

проц резетится при копировании u-boot.bin с SD карты в память:
-I- Copy "u-boot.bin" from SdCard to 0x73f00000

выяснил, что не проходит инициализация SD карты в бутстрапе, а именно, происходит выход при проверке:

Код
if (!CardIsConnected(mciID))
{
TRACE_INFO("Card is not connected\n\r");
return 0;
}

т.е. я в логе вижу -I- Card is not connected
Примечание: в исходном коде не было этого TRACE_INFO, это я добавил сам, чтобы понять где вылетаем.

ВОПРОС:
по ссылке точно выложен работающий код? такое ощущение что для его нормальной работы требуется определенное допиливание кода...
Спуститься к концу Подняться к началу
Персональная информация
buletz
Добавлено 12.02.2012 14:24 Сообщение: 2
buletz
3

Пункты: 5920
Регистрация: 16.11.2011
Пол: Мужчина
проблема с детектом SD карты устранена, и она, как выяснилось, вообще не связана ни с SDRAM , ни с бутстрапом.
дело было в выпавшей пластинке (см. ниже).
непонятно как это произошло.

http://desmond.imageshack.us/Himg100/scaled.php?server=100&filename=clipk.png&res=medium
Спуститься к концу Подняться к началу
Персональная информация
buletz
Добавлено 12.02.2012 17:15 Сообщение: 3
buletz
3

Пункты: 5920
Регистрация: 16.11.2011
Пол: Мужчина
в общем загрузиться удалось (из DDR), но память SDRAM нормально работать не хочет.

1. как я понял, SDR мапится на адрес 20 млн (0x20000000).
из юбута пробую писать и читать оттуда.
то ли пишет то ли читает неправильно:
пытаемся записать aabbccdd, а в результате видим aa9bcc9d:
Код
U-Boot> mw 20000000 aabbccdd
U-Boot> md 20000000
20000000: aa9bcc9d 00000001 00000002 00000003 ................
20000010: 00000004 00000005 00000006 00000007 ................


2. запаяли то, что было заложено в схеме производителя на плату SK-AT91SAM9G45, а именно:
чип MT48LC16M16A2P-7E IT:D

3. В коментах бутстрапа в инициализации SDR памяти встречается комент:
//Configure DDR_MICRON_MT47H64M8.

Из этого становится непонятно, под какую SDRAM вообще этот бутстрап собран. То что названо в коментах - это вообще DDR, а не SDR.
Спуститься к концу Подняться к началу
Персональная информация
buletz
Добавлено 12.02.2012 18:31 Сообщение: 4
buletz
3

Пункты: 5920
Регистрация: 16.11.2011
Пол: Мужчина
большое спасибо Алексею Бойко за помощь, выяснили что КЗ на шине данных D5-D6.
завтра исправим, попробуем снова
Спуститься к концу Подняться к началу
Персональная информация
buletz
Добавлено 29.02.2012 17:26 Сообщение: 5
buletz
3

Пункты: 5920
Регистрация: 16.11.2011
Пол: Мужчина
наконец-то удалось запустить плату без DDR, под чистым SDRAM.
завтра будем морозить плату в камере. посмотрим сможет ли теперь она продержаться до -30С.

ниже прилагаю мини отчет о том как запустить плату на голом SDRAM (без DDR). при этом доступной RAM памяти получается всего 22 метра из 32 установленных, но это можно исправить если сдвинуть разбивку памяти (bootstrap/uboot/kernel) более плотно.


1. сначала правим бутстрап, соотв. ветка тут:
http://www.starterkit.ru/html/index.php?name=forum&op=view&id=15303
в свойствах кейловского проекта в закладке C/C++, Define:
- оставляем DESTINATION_sdram
- убираем DESTINATION_ddram
- ставим DEST_ADDR=0x21F00000
(т.к. SDRAM у нас идет с адреса 0x20000000).

2. правим u-boot:
- правим
/u-boot-2010.09/board/atmel/at91sam9m10g45ek/config.mk
Код
TEXT_BASE = 0x21f00000


- правим
/u-boot-2010.09/include/configs/at91sam9m10g45ek.h

Код
#define CONFIG_SYS_LOAD_ADDR 0x21000000 /* load address */

#define CONFIG_BOOTCOMMAND "nand read 0x21000000 0x200000 0x200000; bootm"

#define CONFIG_BOOTARGS "console=ttyS0,115200 " \
"root=/dev/ram0 rw " \
"initrd=0x21300000,0x800000 " \
"mem=32M"

#define CONFIG_EXTRA_ENV_SETTINGS \
"tftp_boot=tftpboot 20300000 zlinux; bootm 20300000\0" \
"system_update=nand erase 80000 790000; tftpboot 20300000 zlinux; nand write 20300000 80000 790000; run nand_boot\0" \
"nand_boot=nand read 20800000 80000 790000; bootm 20800000\0" \
"uboot_update= tftpboot 20200000 uboot; nand erase 20000 40000; nand write 20200000 20000 40000; reset\0" \
"bootstrap_update= tftpboot 20200000 bootstrap; nand erase 0 20000; nand write 20200000 0 20000; reset\0" \
"clean_env= nand erase 60000 20000\0" \
"safe_boot=nand read 20300000 900000 700000; bootm 20300000\0" \
"safe_update=nand erase 900000 700000; tftpboot 20300000 zlinux_safe; nand write 20300000 900000 700000; run safe_boot\0" \
"all_update=nand erase 80000 F00000; tftpboot 20200000 zlinux; nand write 20200000 80000 790000; tftpboot 20200000 zlinux_safe; nand write 20200000 900000 700000 run nand_boot\0" \
"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_boot ничего не проверял. nand_boot достаточно чтобы плата загрузилась по дефолту.

3. правим ядро (в моем примере 3.1.5)
/linux-3.1.5/arch/arm/mach-at91/Makefile.boot

Код
else ifeq ($(CONFIG_ARCH_AT91SAM9G45),y)
zreladdr-y := 0x20008000
params_phys-y := 0x20000100
initrd_phys-y := 0x20410000
Спуститься к концу Подняться к началу
Персональная информация
lexx666
Добавлено 23.08.2012 09:46 Сообщение: 6
lexx666
3.83

Пункты: 11780
Регистрация: 28.07.2011
Пол: Мужчина
Из: Барнаул
buletz спасибо за наводку. Долго не мог сообразить где править данный адрес в u-boot.

TEXT_BASE = 0x21f00000

Также дополнительно правили
#define PHYS_SDRAM 0x20000000
#define PHYS_SDRAM_SIZE 0x02000000

Ну и если надо базовый адрес LCD.
А данный дефайн CONFIG_SYS_LOAD_ADDR
значения не имеет, ибо при загрузке адреса всё равно беруться из переменных типа nand_boot и т.д.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-MAT91SAM9G45/M10