Como acessar NVRAM e DPRAM no espaço do usuário do Linux?

1

Vamos adicionar NVRAM e DPRAM em nossa placa customizada, onde ambos serão mapeados no mapa de memória do sistema. Eu não estou percebendo se esses dispositivos têm alguns drivers genéricos no kernel do Linux para que eles apareçam como dispositivos no diretório dev (por exemplo, /dev/nvram ou /dev/dpram ) ou eu preciso acessá-los via /dev/mem usando mmap ?

    
por arshan 11.09.2018 / 06:29

1 resposta

1

Já que você disse "placa customizada", você deve ter especificado se é arquitetura x86, alguma variedade de ARM ou outra coisa.

No entanto, a menos que o kernel receba alguma informação informando onde a NVRAM e a DPRAM estão localizadas no mapa de memória do sistema, ele não terá nenhum conhecimento sobre elas. Essas informações podem vir do firmware (mecanismo x86: e820, UEFI, ACPI e / ou outros mecanismos PnP) ou do gerenciador de inicialização (ARM: ATAGS ou o blob da árvore do dispositivo ).

Você também deve ver se os drivers MTD são aplicáveis às suas necessidades: em particular, parece-me que o driver do kernel CONFIG_MTD_PHRAM (ou seu predecessor, o driver slram ) pode ser útil para você.

Esta questão no Stack Overflow também pode ter algumas informações úteis para você. Basicamente, você pode querer registrar sua NVRAM e DPRAM como dispositivos de plataforma, se você não puder incluí-los de forma significativa na árvore de dispositivos ou outro mapa de memória entregue do firmware / bootloader para o kernel.

    
por 11.09.2018 / 12:36