реклама на сайте
подробности

 
 
> VC707 доступ к Linear Flash, Либо загрузка, либо доступ
ConstHw
сообщение Mar 25 2016, 12:51
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 12-11-15
Пользователь №: 89 287



Всем привет

Плата в режиме BPI Config
http://www.xilinx.com/support/documentatio...707_Eval_Bd.pdf
( Страница 80 )

1.1 Берем проект для Xilinx VC707 - BIST
http://www.xilinx.com/products/boards-and-...l#documentation
1.2 Скачиваем, смотрим внутри на наличие внутри ядра AXI_EMC в режиме Linear Flash
1.3 Собираем bit файл system_wrapper.bit
1.4 Экспортируем hdf в SDK
1.5 В SDK создаем бутлоадер. Задаем оффсет
1.6 Создаем в SDK прошивку download.bit - инициализируем файл BRAM в system_wrapper.bit бутлоодером
1.7 Генерим SREC файл из того что хотим сделать нашим приложением
1.8 Открываем опять Вивадо, собираем mcs файл
Код
Addr1         Addr2         Date                    File(s)
0x00000000    0x007B616F    Mar 25 14:22:08 2016    D:/Users/vinogradovk/rdf0195-vc707-bist-c-2015-1/bins/download.bit
0x02000000    0x0209B29F    Mar 25 12:22:55 2016    D:/Users/vinogradovk/rdf0195-vc707-bist-c-2015-1/bins/lwip_echo_server.srec

1.9 Загружаем mcs файл во флэшку

Дальше начинаются чудеса
2.1. Плата по прежнему в режиме "грузись с флэшки"
2.2 Дергаем питание и смотрим в консоль
Код
SREC Bootloader
Loading SREC image from flash @ address: 62000000
ERROR: Error while reading an SREC line from flash

2.3 То есть плиса прошилась, бутлоадер оказался в памяти BRAM, но не смог прочитать SREC
2.4 Оставляя плису прошитой, открываем SDK, запускаем бутлоадер из SDK на платформе
2.5 Ставим точку останова перед началом чтения памяти и открываем смотрелку памяти из SDK memory
2.6 Видим фигу - по адресу 0x60000000, где лежит битфайл с которого плиса только что грузилась, лежат нули. Остальные памяти, например DDR3 через МИГ видны и доступны

Исключаем чудеса
3.1 Открываем Hw_Manager, берем файл download.bit грузим его в ПЛИС и О ЧУДО
Код
SREC Bootloader
Loading SREC image from flash @ address: 62000000

Executing program starting at address: 00000000


-----lwIP TCP echo server ------
TCP packets sent to port 6001 will be echoed back
Start PHY autonegotiation

3.2 Запускаем на прошитой через JTAG плисе любое приложение, ставим останов
3.3 В SDK инструменте Memory видим битник прошивки плис по адресу 0x600000 и SREC приложения по адресу 62000000

Выводы
Если ПЛИСа была загружена с BPI FLASH, то доступа к этой BPI FLASH у нее уже нет

Как такое может быть?
И как это победить?
Чем плиса залитая из флэшки отличается от плисы залитой с jtag?
Помню была ситуация когда ножка SCK для SPI конфигурационной флэшки была доступна после ухищирений, но ведь тут в ПЛИСу заливаются абсолютно одинаковые битфайлы, отличающиеся путем попадания в ПЛИСу.
Положение джамперов на плате не меняется, всегда в режиме "грузись с BPI"
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ConstHw
сообщение Mar 25 2016, 13:52
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 12-11-15
Пользователь №: 89 287



doom13, спасибо! Стало намного понятнее, но ряд вопросов остался

1) Чтобы в EMC контроллере был доступен register Интерфейс, надо включить режим Custom и выбрать режим памяти отличный от Linear Flash. Какой режим выбрать? И тогда в бутлоадер надо будет добавить команду инициализации контроллера флэшки в режим linear flash?

2) Про примитив Startupe2.
Тот, что доступен в 7Series имеет вход только для клока. При этом на 707 клок выходит из флэшки и заходит в конфигурационный порт. Для работы EMC не используется
http://www.xilinx.com/support/documentatio...ries_Config.pdf
http://www.xilinx.com/support/answers/52626.html
Вы в своей теме упомянули пример со Startupe3, но во-первых для Ultrascale, во вторых пропускат данные.
Нужен ли блок startupe на 7 серии при linear flash?

3) Как выключить синхронный режим чтения при конфигурации? В командах генерации битстрима и MCS не нашел таких опций

Код
write_bitstream  [-force] [-verbose] [-raw_bitfile] [-no_binary_bitfile]
                 [-mask_file] [-readback_file] [-logic_location_file]
                 [-bin_file] [-reference_bitfile <arg>] [-cell <arg>] [-quiet]
                 <file>
write_cfgmem  [-force] -format <arg> -size <arg> [-interface <arg>] [-checksum]
              [-disablebitswap] [-loadbit <arg>] [-loaddata <arg>] [-quiet]
              [-verbose] <file>


Огромное спасибо за помощь

Сообщение отредактировал ConstHw - Mar 25 2016, 15:29
Go to the top of the page
 
+Quote Post
doom13
сообщение Mar 25 2016, 18:35
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(ConstHw @ Mar 25 2016, 16:52) *
1) Чтобы в EMC контроллере был доступен register Интерфейс, надо включить режим Custom и выбрать режим памяти отличный от Linear Flash. Какой режим выбрать? И тогда в бутлоадер надо будет добавить команду инициализации контроллера флэшки в режим linear flash?

Я использовал AXI EMC в режиме Linear flash.
Цитата(ConstHw @ Mar 25 2016, 16:52) *
2) Про примитив Startupe2.
Тот, что доступен в 7Series имеет вход только для клока. При этом на 707 клок выходит из флэшки и заходит в конфигурационный порт. Для работы EMC не используется...
Вы в своей теме упомянули пример со Startupe3, но во-первых для Ultrascale, во вторых пропускат данные.
Нужен ли блок startupe на 7 серии при linear flash?

Через startupe2 на flash memory заводится нужная частота, у меня было 100 MHz (при старте загрузчик FPGA тактирует память таким же клоком), думал, может для SYNC mode многовато, может развелось криво, сбрасывал до меньших значений но SYNC mode так и не заработал, хз в чём проблема и что делал не так. Для ASYNC mode может клок и не нужен, без доки не скажу?
Цитата(ConstHw @ Mar 25 2016, 16:52) *
3) Как выключить синхронный режим чтения при конфигурации?

ug908 стр. 64
Цитата
BITSTREAM.CONFIG.BPI_SYNC_MODE

но, если не меняли, то должен быть ASYNC mode.

PS:
Ссорри, невнимательно прочитал Ваше первое сообщение, решил, что проблема аналогична моей.
Проблема тут:
Цитата(ConstHw @ Mar 25 2016, 15:51) *
2.5 Ставим точку останова перед началом чтения памяти и открываем смотрелку памяти из SDK memory
2.6 Видим фигу - по адресу 0x60000000, где лежит битфайл с которого плиса только что грузилась, лежат нули. Остальные памяти, например DDR3 через МИГ видны и доступны

так писать/читать BPI flash memory не получится (через указатель, как с DDR3 тут работать не будет), смотрите в сторону Common Flash Memory Interface. Если проще - то xilflash в помощь, там всё сделали за нас, ещё можно скачать драйвер для работы с памятью с сайта Micron (я именно его и использовал). Там всё круто (у Micron), мегакросплатформенно сделано, если master для flash memory не MicroBlaze, то самое то.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ConstHw   VC707 доступ к Linear Flash   Mar 25 2016, 12:51
- - doom13   Цитата(ConstHw @ Mar 25 2016, 15:51) Выво...   Mar 25 2016, 13:20
- - Muscat   1) Если EMC в режиме linear flash, то нет доступа ...   Mar 25 2016, 19:32
|- - doom13   Цитата(Muscat @ Mar 25 2016, 22:32) 2) Не...   Mar 25 2016, 20:31
- - Muscat   Да, с направлением клока ошибся Так, то есть если...   Mar 25 2016, 21:02
|- - doom13   Цитата(Muscat @ Mar 26 2016, 00:02) 1) ПЛ...   Mar 25 2016, 21:23
- - Muscat   Ну вроде разобрались Если дефолтный режим асинхр...   Mar 25 2016, 21:26
|- - doom13   Цитата(Muscat @ Mar 26 2016, 00:26) Если ...   Mar 25 2016, 21:47
- - doom13   Маленький нюанс подключения AXI EMC к BPI Flash (у...   Mar 28 2016, 06:56
- - ConstHw   Адресацию оставил как есть, то есть использую внеш...   Mar 28 2016, 15:31
|- - doom13   Цитата(ConstHw @ Mar 28 2016, 18:31) Адре...   Mar 28 2016, 18:19
- - ConstHw   Я все таки думаю дело в другом, потому что в асинх...   Mar 29 2016, 09:41
|- - doom13   Цитата(ConstHw @ Mar 29 2016, 12:41) Я вс...   Mar 29 2016, 14:38
- - doom13   Посмотрите pg100-axi-emc, третий раздел Designing ...   Mar 29 2016, 20:21
- - doom13   Цитата(ConstHw @ Mar 25 2016, 15:51) 1.1 ...   Mar 30 2016, 06:49
- - ConstHw   Спасибо огромное за дизайн! У вас с ним работа...   Mar 30 2016, 11:37
|- - doom13   Цитата(ConstHw @ Mar 30 2016, 14:37) Спас...   Mar 30 2016, 13:21
- - ConstHw   doom13, заработало в асинхроне, задача стартовать ...   Apr 5 2016, 08:46
- - doom13   Цитата(ConstHw @ Apr 5 2016, 11:46) doom1...   Apr 5 2016, 08:58


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 11:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01416 секунд с 7
ELECTRONIX ©2004-2016