Перейти к содержанию

    

Настройка fpga2sdram в u-boot

Всем привет!

1) Сделал пример в qsys: генератор картинки- > фрейм буфер на памяти DDR3 ARMa -> VGA генератор

(за основу взял пример от terasic, и с их образом SD-карты мой пример работает - вижу цветные полосы на мониторе)

2) Делаю свою SD-карту по описанию https://rocketboards.org/foswiki/Documentation/AVCVGSRD161

3) Прошиваю образ на флешку и при запуске вижу следующее:

- В fpga прошивка по умолчанию (судя по терминалу плис прошивается, но потом такое ощущение, что ресет проскакивает и плис снова с прошивкой по умолчанию)

Hit any key to stop autoboot: 0

reading u-boot.scr

200 bytes read in 4 ms (48.8 KiB/s)

## Executing script at 02000000

reading soc_system.rbf

7007204 bytes read in 331 ms (20.2 MiB/s)

## Starting application at 0x3FF79584 ...

****

- После загрузка останавливается

Starting kernel ...

[ 0.000000] Booting Linux on physical CPU 0x0

****

[ 1.041385] of_cfs_init: OK

[ 1.047017] ttyS0 - failed to request DMA

[ 1.051082] Waiting for root device /dev/mmcblk0p2...

terminal.txt

Я так понимаю, что запуск fpga2sdram не прошел.

У меня есть подозрение, что я не могу использовать настройку u-boot.scr по умолчанию https://rocketboards.org/foswiki/Documentat...ProgrammingFPGA

fatload mmc 0:1 $fpgadata soc_system.rbf;

fpga load 0 $fpgadata $filesize;

run bridge_enable_handoff;

run mmcload;

run mmcboot;

 

Хочу узнать ваше мнение, это в u-boot.scr нужно дополнительно конфигурировать fpga2sdram ?

И еще вопрос, почему прошивка плис не проходит?

Изменено пользователем chirik

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что значит "в fpga прошивка по умолчанию"?

Сгенерируйте свою прошивку и положите её на карту памяти под именем soc_system.rbf, затерев таким образом оригинальную.

 

Скрипт uboot изменять не нужно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Что значит "в fpga прошивка по умолчанию"?

Сгенерируйте свою прошивку и положите её на карту памяти под именем soc_system.rbf, затерев таким образом оригинальную.

 

Скрипт uboot изменять не нужно.

 

"её на карту памяти под именем soc_system.rbf" - я так и делаю. по умолчанию это которая pof из EPCS.

 

Скрипт uboot изменять не нужно.

 

В этой статье говорят, что включение fpga2sdram необходимо выполнять в U-boot и добавляют следующие строки

https://habrahabr.ru/company/metrotek/blog/263571/

...

fpgadata=0x10000000

fpgafile=/lib/firmware/fpga/fpga.rbf

fpgaboot=setenv fpga2sdram_handoff 0x3fff; ext2load mmc 0:2 ${fpgadata} ${fpgafile}; fpga load 0 ${fpgadata} ${filesize}

bridge_enable_handoff=mw $fpgaintf ${fpgaintf_handoff}; go $fpga2sdram_apply; mw $fpga2sdram ${fpga2sdram_handoff}; mw $axibridge ${axibridge_handoff}; mw $l3remap ${l3remap_handoff}

bootcmd=run fpgaboot; run bridge_enable_handoff; run mmcboot

...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сорри, вы же про включение моста...

 

Приведите полностью текущий скрипт u-boot.scr

 

Судя по логу, прошивка ПЛИС загружается нормально, вот в этом месте:

reading soc_system.rbf
7007204 bytes read in 331 ms (20.2 MiB/s)
## Starting application at 0x3FF79584 ...
## Application terminated, rc = 0x0

 

Если пины bootsel выставлены правильно на загрузку с SD карты, то флеш epcs не должна считываться никоим образом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"если пины Bootsel выставлены на загрузку с SD карты, то считывание флешки epcs не должно происходить" И в правду я забыл о MSEL!

Теперь прошивка FPGA грузиться, вижу свои полоски на VGA мониторе, но теперь Linux не начинает грузиться..

 

Hit any key to stop autoboot: 0

reading u-boot.scr

200 bytes read in 3 ms (64.5 KiB/s)

## Executing script at 02000000

reading soc_system.rbf

7007204 bytes read in 331 ms (20.2 MiB/s)

## Starting application at 0x3FF79584 ...

## Application terminated, rc = 0x0

reading zImage

4051904 bytes read in 192 ms (20.1 MiB/s)

reading socfpga.dtb

18955 bytes read in 6 ms (3 MiB/s)

Bad Linux ARM zImage magic!

reading zImage

4051904 bytes read in 192 ms (20.1 MiB/s)

reading socfpga.dtb

18955 bytes read in 6 ms (3 MiB/s)

Bad Linux ARM zImage magic!

SOCFPGA_CYCLONE5 #

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проверьте, почему образ zimage побился.

 

Вы используете уже готовые файлы прелоадера, юбута и линукса или собирали сами?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) preloader-mkpimage.bin (Preloader image) свой генерил на основе своего проекта https://rocketboards.org/foswiki/Documentation/GSRDPreloader

2) socfpga.dtb (Device Tree Blob) свой генерил на основе своего проекта https://rocketboards.org/foswiki/Documentat...ceTreeGenerator

3) u-boot.scr (U-boot script for configuring the FPGA) стандартный по этой инструкции https://rocketboards.org/foswiki/Documentat...ProgrammingFPGA

 

4) u-boot-cyclone5.img (U-boot image) готовый брал от сюда linux-socfpga-gsrd-16.1-cv-bin.tar.gz https://releases.rocketboards.org/release/2016.10/gsrd/bin/

5) zImage (Compressed Linux kernel image) готовый из linux-socfpga-gsrd-16.1-cv-bin.tar.gz

6) altera-gsrd-image-cyclone5.tar.gz (Root filesystem as compressed tarball) готовый из linux-socfpga-gsrd-16.1-cv-bin.tar.gz

 

Собирал все это дело, как в описании скриптом make_sdimage.py https://rocketboards.org/foswiki/Documentation/GSRDSdCard

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тогда надо разбираться, почему отсутствует нужная сигнатура в памяти по адресу загрузки образа ядра.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Тогда надо разбираться, почему отсутствует нужная сигнатура в памяти по адресу загрузки образа ядра.

Интересно, а почему когда MSEL стояли на загрузку из EPCS, то ядро линукса начинало грузиться?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Интересно, а почему когда MSEL стояли на загрузку из EPCS, то ядро линукса начинало грузиться?

Это когда совсем без SD карты?

Значит, в EPCS лежат правильные образы ядра и т.п., а на SD карте у вас что-то не так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Не, с той же SD картой.

Тогда смотрите, что изменилось.

Под юбутом проверьте область памяти, откуда запускается ядро линукса - точно там лежит файл zImage, или нет?

Используйте образ, который исправно грузится прелоадером на epcs.

 

Прогоните тест памяти, могут быть сбои если неправильно настроены параметры в проекте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В epcs только прошивка для плис. Спасибо за наводящие вопросы! но я начинаю думать на socfpga.dtb...

Изменено пользователем chirik

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
но я начинаю думать на socfpga.dtb...

Просто возьмите файл .dtb с исправно загружающегося образа SD, для проверки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что касается включения мостов ПЛИС, у меня плата DE10-Nano, использую такой u-boot.script:

echo Programming FPGA...
fatload mmc 0:1 $fpgadata soc_system.rbf;
fpga load 0 $fpgadata $filesize;
run bridge_enable_handoff;

echo Setting Env Variables...
setenv fdtimage soc_system.dtb;
setenv mmcroot /dev/mmcblk0p2;
setenv mmcload 'mmc rescan;${mmcloadcmd} mmc 0:${mmcloadpart} ${loadaddr} ${bootimage};${mmcloadcmd} mmc 0:${mmcloadpart} ${fdtaddr} ${fdtimage};';
setenv mmcboot 'setenv bootargs console=ttyS0,115200 root=${mmcroot} rw rootfstype=ext4 rootwait; bootz ${loadaddr} - ${fdtaddr}';

echo Loading Kernel...
#run mmcload;
#run mmcboot;

 

U-boot собирал по инструкции Embedded Linux Beginners Guide, раздел Configure and Compile U-Boot.

По этому гайду собрал полностью подсистему линукс и работает она без проблем, по крайней мере для моих нужд на данный момент.

 

Мосты активны, sys/class/fpga_bridge/br->state->enabled (ядро 4.1).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация