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

    

BPI flash read/write

Всем привет, с наступающим!

У меня возникла необходимость общения с флешкой Micron MT28GU01GAAA1EGC-0SIT на плате vcu108. Раньше с bpi флешками не работал поэтому глупый вопрос. Для spi флешек все понятно - там стандартный spi и есть уже готовое решение от тех же ксайлинкс. Для работы с bpi flash я так понимаю нужно использовать axi emc в качестве готового решения? Или как вообще это делается? Поверхностный гуглеж дает много информации о прошивке флешки через джтаг, но пока не нашел информации как общаются с флешкой из ПЛИС внутри прошивки.

P.S. Задача - в адресном  пространстве под прошивкой хранить свои данные для микроблейза.

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


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

Я решил освоить emc, в качестве примера взял экзампл дизайн на это ядро и пробую его развести для своей платы. И тут сразу возникла проблема - Vivado не может разместить ноги dq0,1,2,3, clk и cen. Судя по раскладке это Config пины - их нельзя использовать внутри прошивки? Как тогда эту флешку использовать кроме как для выгрузки прошивки в ПЛИС?

image.png.32b2797c5c414842aed041249e1e7d6a.png

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


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

Приветствую!

12 minutes ago, Lutovid said:

Я решил освоить emc, в качестве примера взял экзампл дизайн на это ядро и пробую его развести для своей платы. И тут сразу возникла проблема - Vivado не может разместить ноги dq0,1,2,3, clk и cen. Судя по раскладке это Config пины - их нельзя использовать внутри прошивки? Как тогда эту флешку использовать кроме как для выгрузки прошивки в ПЛИС?

 

Естественно не может так как эти ноги  выделенные для конфигурации и напрямую user их пользовать не может. 

Для этого есть STARTUP примитив который работает прокладкой межу user логикой и этими ногами

STARTUPE3 #(
  .PROG_USR     ("FALSE"), // Activate program event security feature. Requires encrypted bitstreams.
  .SIM_CCLK_FREQ(0.0    )  // Set the Configuration Clock Frequency (ns) for simulation
) i_STARTUPE3 (
  .CFGCLK   (cfgclk          ), // 1-bit output: Configuration main clock output
  .CFGMCLK  (cfgmclk         ), // 1-bit output: Configuration internal oscillator clock output
  .EOS      (mcap_eos        ), // 1-bit output: Active-High output signal indicating the End Of Startup
  .PREQ     (                ), // 1-bit output: PROGRAM request to fabric output
  .PACK     (1'b0            ), // 1-bit input: PROGRAM acknowledge input
  .DI       (p_flash_d_i[3:0]), // 4-bit output: Allow receiving on the D input pin
  .DO       (p_flash_d_o[3:0]), // 4-bit input: Allows control of the D pin output
  .DTS      ({4{p_flash_dts}}), // 4-bit input: Allows tristate of the D pin
  .FCSBO    (p_flash_nce_o   ), // 1-bit input: Controls the FCS_B pin for flash access
  .FCSBTS   (1'b0            ), // 1-bit input: Tristate the FCS_B pin
  .GSR      (1'b0            ), // 1-bit input: Global Set/Reset input (GSR cannot be used for the port)
  .GTS      (1'b1            ), // 1-bit input: Global 3-state input (GTS cannot be used for the port name)
  .KEYCLEARB(1'b1            ), // 1-bit input: Clear AES Decrypter Key input from Battery-Backed RAM (BBRAM)
  .USRCCLKO (emcclk_gclk     ), // 1-bit input: User CCLK input
  .USRCCLKTS(~gpio05_o[2]    ), // 1-bit input: User CCLK 3-state enable input
  .USRDONEO (gpio05_o[0]     ), // 1-bit input: User DONE pin output control
  .USRDONETS(~gpio05_o[1]    )  // 1-bit input: User DONE 3-state enable output
);

Удачи! Rob

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


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

Нашел вот такой крутой пример

http://www.xilinx.com/support/documentation/application_notes/xapp1282-us-post-cnfg-nor-axi-emp-ip.pdf

Хочется с ним досконально разобраться, но возникла проблема - на вивадо 16.1(на которой написан пример) все работает, а при переходе к 17.1(на которой я работаю в основном) стандартная библиотечная функция XFlash_Initialize возвращает ошибку XFLASH_CFI_QUERY_ERROR. Я попробовал залить софт из sdk 17.1 в хард старой версии - все работает - то есть дело не в обновлении библиотек, как я понимаю.

 

Апгрейд лог вроде ничего критичного не выдает по части emc(прикрепил файл). Адреса после апгрейда все сохранились старые.

Поискал на форуме ксайлинкса проблему - не нашел.

Подскажите пожалуйста, сталкивался кто с такой проблемой?

 

ip_upgrade.log

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


Ссылка на сообщение
Поделиться на другие сайты
On 1/11/2019 at 7:22 PM, Lutovid said:

Нашел вот такой крутой пример

http://www.xilinx.com/support/documentation/application_notes/xapp1282-us-post-cnfg-nor-axi-emp-ip.pdf

Хочется с ним досконально разобраться, но возникла проблема - на вивадо 16.1(на которой написан пример) все работает, а при переходе к 17.1(на которой я работаю в основном) стандартная библиотечная функция XFlash_Initialize возвращает ошибку XFLASH_CFI_QUERY_ERROR. Я попробовал залить софт из sdk 17.1 в хард старой версии - все работает - то есть дело не в обновлении библиотек, как я понимаю.

 

Апгрейд лог вроде ничего критичного не выдает по части emc(прикрепил файл). Адреса после апгрейда все сохранились старые.

Поискал на форуме ксайлинкса проблему - не нашел.

Подскажите пожалуйста, сталкивался кто с такой проблемой?

 

ip_upgrade.log

Проверьте ключи библиотеки XilFlash в BSP - совпадают лт они для BSP разных версий.

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


Ссылка на сообщение
Поделиться на другие сайты
On 1/14/2019 at 7:39 AM, Bad0512 said:

Проверьте ключи библиотеки XilFlash в BSP - совпадают лт они для BSP разных версий.

Совпадают, я уже заметил такой момент - если добавить чипскоуп на emc в новой версии, то все начинает работать, с времянкой все ок... что-то видимо в примере недоконстрейнчено или оптимизируется без скоупа

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


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

Как-то была проблема с работой памяти на плате с Virtex 7, в SYNC mode не хотела работать, всё решалось переходом в ASYNC mode и работой в данном режиме.

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


Ссылка на сообщение
Поделиться на другие сайты
4 hours ago, doom13 said:

Как-то была проблема с работой памяти на плате с Virtex 7, в SYNC mode не хотела работать, всё решалось переходом в ASYNC mode и работой в данном режиме.

Спасибо, это я уже на форуме ксайлинкса нашел - это решило другую проблемы

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


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

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

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

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

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

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

Войти

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

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