Я пытаюсь выполнить операцию DMA на моем ноутбуке Dell Inspiron 5500. Я хотел бы перенести, скажем, страницу размером Linux (4 КБ на моем компьютере) данных из одной физической памяти в другую. У меня следующие вопросы
Как определить, есть ли у меня поддержка DMA для этого? Я пытался декомпилировать и анализировать / sys / firmware / acpi / tables / DSDT, но я не уверен, какой узел сопоставляет или будет отображаться в DMA. Я значительно лучше знаком с блобами дерева устройств во встроенной системе, и этот формат ACPI мне чужд
Если я могу найти этот узел, как мне получить
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, но это давно моя машина работала в течение длительного времени, и я занимался чем-то другим.