Запустил DMA PCI-устройства. Принимаю данные в адресное пространство ядра (в драйвер). DMA буфер получаю так:
dma_buff = __get_dma_pages(GFP_KERNEL, PAGE_ORDER);
dma_buff_phys = __pa(dma_buff);
Контроллеру скармливаю dma_buff_phys, а данные потом читаю из dma_buff. Все нормально. Но хотелось бы, чтоб по DMA данные писались прямо в пространство пользовательского процесса. Как это можно сделать??? Вот родилась идея: в пользовательском процессе выделить буфер, его адрес (виртуальный) в драйвер, там получить физический и его в контроллер. Вот только вопрос как из виртуального физ. получить (вернее логический, физ. то я из логического получу __pa()) и со страницами, чтоб все нормально было???
Ответ на:
комментарий
от blackice
Ответ на:
комментарий
от senjy
Ответ на:
комментарий
от idle
Ответ на:
комментарий
от senjy
Ответ на:
комментарий
от idle
Ответ на:
комментарий
от senjy
Ответ на:
комментарий
от karak
Ответ на:
комментарий
от karak
Ответ на:
комментарий
от senjy
Ответ на:
комментарий
от karak
Ответ на:
комментарий
от karak
Ответ на:
комментарий
от senjy
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Прием данных через DMA (2007)
- Форум Получение данных по DMA (2001)
- Форум STM32 DMA SPI теряет данные (2020)
- Форум DMA (2011)
- Форум dma (2007)
- Форум DMA (2006)
- Форум Передача данных через DMA и PCIe (2020)
- Форум DMA ISA (2012)
- Форум DMA память (2011)
- Форум k3b dma (2010)