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

Проблема с работой флэш-памяти при загрузке FPGA с флэшки остаётся. Получается в данной ситуации после операции записи, операция чтения проходит со второй попытки, о чём и писал в сообщении №8 данной темы. Думаю, ресет тут помог бы, но он идёт с ножки INIT_B, по схеме Master BPI всё правильно, но не работает.

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


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

1. Если ПЛИС загружалась по JTAG, то память работает нормально (рисунок 1), MicroBlaze выполняет код:

/* Step 1: Send the Read CFI Command */
FLASH_WRITE(0x0055, CMD(0x0098));

/* Step 2: Check that the CFI interface is operable */
if( (FLASH_READ( 0x0010 ) != CMD(0x0051)) ||
       (FLASH_READ( 0x0011 )  != CMD(0x0052)) ||
       (FLASH_READ( 0x0012 )  != CMD(0x0059)) )
      return Flash_CfiFailed;

2. Если ПЛИС стартовала с флэша, то память работает криво (рисунок 2), MicroBlaze выполняет код:

/* Step 1: Send the Read CFI Command */
FLASH_WRITE(0x0055, CMD(0x0098));

/* Step 2: Check that the CFI interface is operable */
data = FLASH_READ( 0x0010 );
if( (FLASH_READ( 0x0010 )  != CMD(0x0051)) ||
       (FLASH_READ( 0x0011 )  != CMD(0x0052)) ||
       (FLASH_READ( 0x0012 ) != CMD(0x0059)) )
      return Flash_CfiFailed;

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

Для ядра AXI EMC есть настройки таймингов (рисунок 3), их взял из pg100, там как раз аналогичная память используется. Пробовал их менять, влияния не оказывают. Ещё пробовал менять частоту тактирования памяти, источник тактирования, разрешать тактирующую частоту через определённый интервал времени после загрузки прошивки - результат такой же.

Нужна помощь. Какие будут идеи?

post-63539-1454073456_thumb.png

post-63539-1454073461_thumb.png

post-63539-1454073931_thumb.png

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


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

Я с этой XilFlash чего-то намучился, в итоге забил и написал почти все сам.

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


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

Я с этой XilFlash чего-то намучился, в итоге забил и написал почти все сам.

Лучше взять драйвер у Micron, там уже всё сделано и без привязки к конкретной платформе (у меня используется из Linux User Space, пришлось подправить одну строчку в исходниках Micron).

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


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...