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

 
 
> Device driver + DMA, dma_set_mask и dma_set_coherent_mask
Gleb80
сообщение Jul 2 2015, 11:13
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 75
Регистрация: 25-09-08
Из: Москва
Пользователь №: 40 470



Приветствую уважаемые! Осваиваю тему написания драйверов устройств под Linux с использованием DMA. Читаю документацию по DMA API. Там есть такие слова:
The query for streaming mappings is performed via a call to
dma_set_mask():

int dma_set_mask(struct device *dev, u64 mask);

The query for consistent allocations is performed via a call
to dma_set_coherent_mask():

int dma_set_coherent_mask(struct device *dev, u64 mask);

В целом понятно, что функции проверяют способность DMA аппаратуры работать с адресами, маска которых передается в параметре mask. Но мне не понятно следующее:
1. Что подразумевается под streaming mappings и под consistent allocations?
2. В чем различие этих двух ф-ций?
3. Что значит слово coherent в данном контексте?

Сообщение отредактировал Gleb80 - Jul 2 2015, 11:15
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
des333
сообщение Jul 2 2015, 20:24
Сообщение #2


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

Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079



DMA-отображения бывают двух типов:
  • Потоковые (Streaming)
  • Согласованные (Coherent или Сonsistent)

Согласованные отображение гарантировано доступны одновременно и процессору и устройству.
И при доступе каждая из сторон гарантировано получит "свежие" данные.
Чаще всего используются для долгоживущих буферов, например, когда буфер существует на протяжении всей жизни драйвера.
Пример использование -- память фреймбуфера.

При использовании потоковых отображений доступ возможен строго по очереди.
Чаще всего создаются на время одной операции.
Теоретически, могут быть более производительными.
Пример использования -- приём/отправка сетевых пакетов.


Уточню, что через dma_set_mask() и схожие функции Вы сообщаете ядру, с какими адресами может
работать Ваше устройство, а ядро отвечает, возможен ли DMA для такой маски.


--------------------
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 16:31
Рейтинг@Mail.ru


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