Ник:
Пароль:

Контакты

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 » Embedded Linux
HolaDuo-PC с разной DDR
garrik61
Добавлено 31.01.2022 14:38
0
Сообщение: 1
garrik61
0

Пункты: 5660
Регистрация: 26.03.2012
Собрал buildroot-2021.08-sk на базе ядра 5.10.9 для i.mx6 quad/dual/solo . Собралось без ошибок . Сборка на базе дерева
(HolaDuo-PC + VCEB) , добавил свои устройства.
switch DDR to 528 MHz выключен.
У меня в работе две платы HolaDuo-PC с разными DDR.
С одной запускается без проблем . А вот вторая глючит на DDR.
Подскажите как настроить DDR в uboot.
ARM architecture --> starterkit imx6 DDR calibration --->
[ ] Display DDR calibration result (2) DDR On-die-termination (6) DRAM Drive strength (1) RTT_NOM
(1) RTT_WR (5) Read additional latency (0) Write additional latency (1) Refresh period
(7) Number of refreshes
Это то что у меня сейчас

С уважением Garrik
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 31.01.2022 16:34 Сообщение: 2
Pavel Ivanchenko
Admin
4.39

Пункты: 91824
Регистрация: 24.03.2009
Пол: Мужчина
С какими чипами не работает и с какими работает?
HolaDuo-PC с крайней сборкой я еще не пробовал.
Hola платы очень чувствительны получились к партии печатных плат и ревизии памяти, роутинг ddr 1 в 1 с sodimm, только на sodimm даже намеков на капризы не наблюдается, а hola я уже раза 4 настройки для ddr обновлял ...
Для начала возьмите значения близкие к настройкам от предыдущей версии сборки (hola_dual.cfg).
Обычно, все сводится к поиску варианта силы буферов и ODT терминации.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 31.01.2022 17:31 Сообщение: 3
sasamy
4.70

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

Для начала возьмите значения близкие к настройкам от предыдущей версии сборки (hola_dual.cfg)


в этой версии майнстримный u-boot и настройка памяти сделана по-другому - через загружаемый в SRAM код (SPL) который настраивает и калибрует DDRC, так просто не перенести из старой версии, по этой же причине меню

Цитата

switch DDR to 528 MHz выключен


есть но оно сейчас ни на что не влияет, попробуйте изменить вручную

buildroot-2021.08-sk/output/build/uboot-custom/board/starterkit/sk_imx6qdl/spl.c

Цитата

static void spl_dram_init(void)
{
...
} else if (is_cpu_type(MXC_CPU_MX6D)) {
printf("cpu type i.MX6D 32-bit bus 2x256Mx16\n");
sysinfo.dsize = 1;
ddrtype = &ddr_4g;
ddrtype->mem_speed = 800;
...


чтобы "мягко" пересобрать только то что изменилось в u-boot, нужно просто набрать

make uboot-menuconfig

и сразу выйти из меню, после этого собрать в buildroot

make

Если пересобирать "с нуля" через скрипт uboot_rebuild.sh все измнения сбрасываются до начальных из архива.

Цитата

Обычно, все сводится к поиску варианта силы буферов и ODT терминации.


тут тоже после измнений параеметров памяти через меню (make uboot-menuconfig) пересобрать

make
Спуститься к концу Подняться к началу
Персональная информация
garrik61
Добавлено 31.01.2022 18:32 Сообщение: 4
garrik61
0

Пункты: 5660
Регистрация: 26.03.2012
К сожалению не прокатило...
Загрузка тормозит на:

U-Boot 2021.10 (Jan 31 2022 - 18:20:17 +0300)

CPU: Freescale i.MX6D rev1.3 996 MHz (running at 792 MHz)
CPU: Extended Commercial temperature grade (-20C to 105C) at 25C
Reset cause: POR
Model: Starterkit SK-iMX6D-HOLA Board
DRAM: 1 GiB
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 31.01.2022 23:53 Сообщение: 5
sasamy
4.70

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

К сожалению не прокатило...


Попробуйте добавить в файле

buildroot-2021.08-sk/output/build/uboot-custom/board/starterkit/sk_imx6qdl/spl.c

выделенный текст

Цитата

static void ccgr_init(void)
{
struct mxc_ccm_reg *ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR;

writel(0x00c03f3f, &ccm->CCGR0);
writel(0x0030fc03, &ccm->CCGR1);
writel(0x0fffc000, &ccm->CCGR2);
writel(0x3ff00000, &ccm->CCGR3);
writel(0xfffff300, &ccm->CCGR4);
writel(0x0f0000c3, &ccm->CCGR5);
writel(0x000003ff, &ccm->CCGR6);

/* DDR to 400MHz */
writel(0x00060324, &ccm->cbcmr);

}
Спуститься к концу Подняться к началу
Персональная информация
garrik61
Добавлено 01.02.2022 05:46 Сообщение: 6
garrik61
0

Пункты: 5660
Регистрация: 26.03.2012
Большое спасибо.
С поправками в коде прокатило.

static void spl_dram_init(void)
{
...
} else if (is_cpu_type(MXC_CPU_MX6D)) {
printf("cpu type i.MX6D 32-bit bus 2x256Mx16\n");
sysinfo.dsize = 1;
ddrtype = &ddr_4g;
ddrtype->mem_speed = 800;
static void ccgr_init(void)
{
struct mxc_ccm_reg *ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR;

writel(0x00c03f3f, &ccm->CCGR0);
writel(0x0030fc03, &ccm->CCGR1);
writel(0x0fffc000, &ccm->CCGR2);
writel(0x3ff00000, &ccm->CCGR3);
writel(0xfffff300, &ccm->CCGR4);
writel(0x0f0000c3, &ccm->CCGR5);
writel(0x000003ff, &ccm->CCGR6);

/* DDR to 400MHz */
writel(0x00060324, &ccm->cbcmr);
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 03.02.2022 11:50 Редактировалось 03.02.2022 12:03 Сообщение: 7
sasamy
4.70

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

С поправками в коде прокатило.


исправил buildroot и u-boot, сейчас можно как раньше из меню менять частоту 528/400 МГц, по умолчанию 400 МГц. Для контроля - SPL пишет на какой частоте DDR для imx6dq (у соло всегда 400 МГц)

Цитата

U-Boot SPL 2021.10 (Feb 03 2022 - 11:04:15 +0300)
cpu type i.MX6D 32-bit bus 2x256Mx16
DDR clock 400 MHz
calibration completed successfully
Trying to boot from MMC1
Спуститься к концу Подняться к началу
Персональная информация
garrik61
Добавлено 04.02.2022 19:50 Сообщение: 8
garrik61
0

Пункты: 5660
Регистрация: 26.03.2012
Спасибо.
В другом посте опишу проблемы с gstreamer1.0
В выходные пришлю .
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux