Поиск устройства ACPI для инициации устройства платформы для API ядра DMA - PullRequest
1 голос
/ 04 мая 2020

Я пытаюсь выполнить операцию DMA на моем ноутбуке Dell Inspiron 5500. Я хотел бы перенести, скажем, страницу размером Linux (4 КБ на моем компьютере) данных из одной физической памяти в другую. У меня следующие вопросы

  1. Как определить, есть ли у меня поддержка DMA для этого? Я пытался декомпилировать и анализировать / sys / firmware / acpi / tables / DSDT, но я не уверен, какой узел сопоставляет или будет отображаться в DMA. Я значительно лучше знаком с блобами дерева устройств во встроенной системе, и этот формат ACPI мне чужд

  2. Если я могу найти этот узел, как мне получить

    struct device * dev;

в драйвере платформы для передачи

struct dma_chan *dma_request_chan(struct device *dev, const char *name);

согласно этому руководству https://www.kernel.org/doc/html/latest/driver-api/dmaengine/client.html

Обновление :

Здесь приведены ссылки на информационные файлы о системе

lspci -nk -vv

https://drive.google.com/file/d/14jNSMAVSuuQIRIBIfGMzAg1pircfX3D-/view?usp=sharing

sudo acpidump

https://drive.google.com/file/d/1bKWJvFrjv6IQec9VEdw0v_0JLGhpnpZY/view?usp=sharing

grep -H 15 /sys/bus/acpi/devices/*/status

https://drive.google.com/file/d/1jRh-iQEcK97v4Hi_jKETYLseloL0Avz3/view?usp=sharing

Если этого недостаточно, я могу добавить dmesg, но это давно моя машина работала в течение длительного времени, и я занимался чем-то другим.

...