Как проверить, действительно ли зарезервирована память, которая была зарезервирована в дереве устройств

Соответствующая запись дерева устройств, которую я использую:

memory {
    device_type = "memory";
    reg = <0x0 0x40000000>;
};


reserved-memory {
    #address-cells = <1>;
    #size-cells = <1>;
    ranges;

    spw_dma@3E000000 {
        reg = <0x3E000000 0x2000000>;
    };
};

Могу ли я проверить где-нибудь в интерфейсе /sys/class, чтобы убедиться, что память действительно зарезервирована? Поскольку я обращаюсь к памяти через интерфейс /dev/mem, я фактически обхожу все меры безопасности, и поэтому было бы полезно хотя бы иметь возможность убедиться, что никто другой не будет писать в эту область памяти.

Примечание. Я знаю, что правильный путь™ заключается в написании драйвера ядра или использовании драйвера UIO с динамической памятью


person Moritz    schedule 01.02.2018    source источник
comment
вы должны увидеть в /proc/iomem, если он используется драйвером (зарезервированные области памяти должны/должны использоваться устройством/драйвером), см. wiki.xilinx.com/Linux+Reserved+Memory и kernel.org/doc/Documentation/devicetree/bindings/ для получения дополнительной информации.   -  person Prabhakar Lad    schedule 01.02.2018
comment
Спасибо за указатель /proc/mem. У меня есть только код ядра и записи данных ядра, поэтому он, вероятно, не зарезервирован. Я думаю, обязательно указать совместимое поле, чтобы применялись записи DT. Есть ли универсальное решение для этого?   -  person Moritz    schedule 01.02.2018
comment
НЕТ, нет универсального решения, но что вы можете сделать, напишите простой драйвер и зарезервируйте его. Также более простым решением было бы использовать memmap, который резервирует вас (kernel.org/doc/html/v4.14/admin-guide/kernel-parameters.html)   -  person Prabhakar Lad    schedule 02.02.2018