Создание физической памяти из пользовательского пространства для использования для передач DMA - PullRequest
3 голосов
/ 23 февраля 2010

Я хочу создать память для передачи DMA. (Использование Linux 2.6.18-128.el5 # 1 SMP)

У меня есть стек API + драйвер ядра для моего H / W, который может сделать это для меня, но он очень-очень медленный!

Если я использую API для создания передачи DMA, он выделяет некоторую память очень высоко в системной памяти (например, 0x7373a6f8 за один запуск). (У меня есть ICD устройства, поэтому у меня есть карта памяти mmap'd, вот как я могу найти этот адрес, и как в конце я хочу установить SET на свой собственный адрес, и, следовательно, / dev / mem на картах ниже)

Кажется, я не могу отобразить память вокруг этого старшего адреса, предположительно из-за того, что он вне моей виртуальной памяти и я заблокирован ядром?

То, что я хочу сделать, это либо использовать (сопоставить) данный адрес, чтобы я мог читать / записывать его, ИЛИ создавать собственную физическую память, которую я могу читать / записывать.

# cat /proc/iomem
00000000-0009fbff : System RAM
  00000000-00000000 : Crash kernel
000a0000-000bffff : Video RAM area
000c0000-000c7fff : Video ROM
000f0000-000fffff : System ROM
00100000-7fd64fff : System RAM        # Is this all of /dev/mem?
  00400000-00612916 : Kernel code
  00612917-006ef9db : Kernel data

# cat /proc/3450/maps
08207000-08228000 rw-p 08207000 00:00 0          [heap]
b7e7b000-b7f85000 rw-p b7e7b000 00:00 0
b7f89000-b7f8a000 rw-p b7f89000 00:00 0
b7f8a000-b7f8b000 rw-s 80114000 00:11 1541       /dev/mem
b7f8b000-b7f8d000 rw-p b7f8b000 00:00 0
bff70000-bff85000 rw-p bffea000 00:00 0          [stack]

1 Ответ

0 голосов
/ 08 марта 2011

Если я правильно вас понимаю, у вас есть драйвер устройства, который плохо работает, и вы пытаетесь обойти это, вручную выделяя физическую память из пространства пользователя? Есть ли причина, по которой вы не заинтересованы в исправлении драйвера вместо этого?

Это звучит как очень странный запрос, а не то, что большинство людей сочли бы правильным решением. Я подозреваю, что вы получите больше помощи, если будете работать над проблемой основного драйвера.

(скопировано из комментария выше.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...