LINUX.ORG.RU

Выделение физического блока RAM для DMA


0

2

Здрасте,

Никто не подскажет как «сказать» linux-у 2.6.35, чтоб не использовал последние физические 64Mb RAM?

Или, что ещё лучше, как создать ramdisk (или что-то подобное), указав физичкские адресса RAM как начало и конец, тоесть создать диск с 65Mb, по 128Mb?

Спасибо!



Последнее исправление: mmaaxx (всего исправлений: 2)
Ответ на: комментарий от Ximen

Мне нужно очень быстро (~25Mbit/sec) читать данные с SPI порта и запоминать их. При этом не сильно загружая процессор (Cortex A8 ~600Mhz). Мой план - настроить DMA, чтоб он этим и занимался. DMA работаеть автономно от процессора и системы, и ему нужно выделить физический регион RAM для работы. Этот-же регион, мне позже нужно будет читать из пользовотельского приложения.

mmaaxx
() автор топика
Ответ на: комментарий от mmaaxx

Используй dma_alloc_coherent. Эта функция выделит некэшируемый кусок памяти и вернет как физический, так и виртуальный адреса.

Потом мэпнешь этот регион в пользовательское адресное пространство.

anonymous
()
Ответ на: комментарий от mmaaxx

> Мне нужно очень быстро (~25Mbit/sec) читать данные с SPI порта и запоминать их. При этом не сильно загружая процессор (Cortex A8 ~600Mhz)

С каких пор 25Мбит/с считается «быстро»?

DMA работаеть автономно от процессора и системы, и ему нужно выделить физический регион RAM

Scatter/gather твое устройство поддерживает?

tailgunner ★★★★★
()

>как «сказать» linux-у 2.6.35, чтоб не использовал последние физические 64Mb RAM?

mem=

как создать ramdisk (или что-то подобное), указав физичкские адресса RAM как начало и конец, тоесть создать диск с 65Mb, по 128Mb?

Бред.

Led ★★★☆☆
()
Ответ на: комментарий от Led

а для быстрого чтения SPI разве нету како-то стандартного API?

sn1ln
()
Ответ на: комментарий от Led

>Бред.

Вовсе нет — в Linux это запросто делается через подсистему MTD Physical system RAM.

bakugan
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.