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

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Буфер для PCI Express
RobFPGA
сообщение Oct 2 2015, 14:49
Сообщение #31


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

Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643



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

Цитата(doom13 @ Oct 2 2015, 16:31) *
Т.е. мост хочет, чтобы в Translation был 0 на месте, где в Aperture Hight Address стоит 1, либо говорит, что параметр задан неправильно.
Это можно как-то объяснить или это какой-то баг?

Вобще то это большой секрет фирмы Xilinx но благодоря утечкам Вы можете ознакомится с ним в PG194 AXI Bridge for PCI Express Gen3 v1.1 стр 37. sm.gif
Это просто такая оптимизация трансляции адреса в железе не нужен длинный сумматор

Успехов! Rob.
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 2 2015, 16:07
Сообщение #32


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

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



Что-то я вообще запутался, как оно работает.
А как мне тогда для апертуры Aperture Base Address 0x00000000_00000000 и Aperture Hight Address 0x00000003_FFFFFFFF задать смещение
0x00000000_С0000000? Как вижу это невозможно.
Тогда самый главный вопрос - что записывается в регистры Translation? Я писал туда адрес блока памяти, который возвращала функция virt_to_phys и оно работало, сейчас думай - как? Может ещё тут что посоветуете?
Go to the top of the page
 
+Quote Post
krux
сообщение Oct 2 2015, 17:56
Сообщение #33


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

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



Цитата
Что-то я вообще запутался, как оно работает.

зависит от того, с чем вы хотите разобраться.

если с PCI-Express, то предлагаю выкинуть AXI-to-PCIe bridge и по-человечески разобраться c PCI-Express при помощи "заката солнца вручную", без посторонних инструментов. Например сделав простой DMA для передачи всего лишь 4КБайт. С BAR-ами и прочими обязательными аттрибутами этого интерфейса.

если же с мостом AXI-to-PCIe bridge, то предполагается что с PCI-E "врукопашную" вы уже знакомы.
отделите мух от котлет, станет попроще.


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 2 2015, 19:52
Сообщение #34


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

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



Цитата(krux @ Oct 2 2015, 20:56) *
зависит от того, с чем вы хотите разобраться.

если с PCI-Express, то предлагаю выкинуть AXI-to-PCIe bridge и по-человечески разобраться c PCI-Express при помощи "заката солнца вручную", без посторонних инструментов. Например сделав простой DMA для передачи всего лишь 4КБайт. С BAR-ами и прочими обязательными аттрибутами этого интерфейса.

если же с мостом AXI-to-PCIe bridge, то предполагается что с PCI-E "врукопашную" вы уже знакомы.
отделите мух от котлет, станет попроще.

Разбираться с Transaction Layer пока не хотел, как понимаю, мост делает это за меня. PCIe to AXI BAR работает и всё понятно, а вот с AXI to PCIe BAR есть какое-то непонимание.
Объясните, если я задаю Aperture 16 ГБ (как в посте выше), Translation 0, получается, должно позволить адресовать 16 ГБ системной памяти? А система выделяет буфер с физическим адресом за пределами этих 16 ГБ. Вот и как получить к нему доступ?
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Oct 2 2015, 21:03
Сообщение #35


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

Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643



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

Цитата(doom13 @ Oct 2 2015, 22:52) *
Разбираться с Transaction Layer пока не хотел, как понимаю, мост делает это за меня. PCIe to AXI BAR работает и всё понятно, а вот с AXI to PCIe BAR есть какое-то непонимание.
Объясните, если я задаю Aperture 16 ГБ (как в посте выше), Translation 0, получается, должно позволить адресовать 16 ГБ системной памяти? А система выделяет буфер с физическим адресом за пределами этих 16 ГБ. Вот и как получить к нему доступ?
Никак!
Мне не понятно Ваше желание ограничить свободу DMA без предявления оному внятных обвинений а нам не менее внятных обяснений. Ведь DMA он мелкая сошка - и делает то что прикажет бугор (драйвер). Поэтому разбирайтес с бугром и его боссом (програмистом) почему они возволяют себе такое безобразие.

Вы судя по всему устаете под вечер вот очевидных вещей и не видете - я же уже вредлагал - сделайте аппертуру в 64 бит и смещение 0 - и тогда хитрый CPU не сможет нигде от Вас спрятатся sm.gif
Ой - и да - при этом получается вариант как "заката солнца вручную" - ну разве что катить светило на тележке удобнее.

Успехов! Rob.
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 3 2015, 08:29
Сообщение #36


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

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



Цитата(RobFPGA @ Oct 3 2015, 00:03) *
Поэтому разбирайтес с бугром и его боссом (програмистом) почему они возволяют себе такое безобразие.

Тут я сам себе босс sm.gif, поэтому и вопросов очень много.

Цитата(RobFPGA @ Oct 3 2015, 00:03) *
сделайте аппертуру в 64 бит и смещение 0 - и тогда хитрый CPU не сможет нигде от Вас спрятатся sm.gif
Ой - и да - при этом получается вариант как "заката солнца вручную" - ну разве что катить светило на тележке удобнее.

Апертуру 0 - 2^64 и смещение 0 ??? Это можно, но нет уверенности что физический адрес буфера за пределами RAM будет соответствовать ему же записанному в дескрипторе. Или будет? Т.е. физический адрес буфера записываю в дескриптор и такая апертура позволит DMA добраться к любому адресу?
Цитата(RobFPGA @ Oct 3 2015, 00:03) *
Мне не понятно Ваше желание ограничить свободу DMA без предявления оному внятных обвинений а нам не менее внятных обяснений.

Свободу DMA ограничивать не хотел, просто не понимаю как система выделяет буфер за пределами адресов моего RAM.
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 6 2015, 08:59
Сообщение #37


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

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



Цитата(RobFPGA @ Oct 3 2015, 00:03) *

Цитата(krux @ Oct 2 2015, 20:56) *

Приветствую!
Спасибо за помощь.
Сделал апертуру 0x0000000000000000 - 0x7FFFFFFFFFFFFFFF, DMA может добраться к дескрипторам и буферам для данных не зависимо от того, где выделила для них память система.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 27th July 2025 - 14:36
Рейтинг@Mail.ru


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