NVRAM と DPRAM をカスタムボードに追加し、両方ともシステムメモリマップにマップします。これらのデバイスがLinuxカーネルにいくつかの共通ドライバを持っているので、ディレクトリにデバイスdev
(/dev/nvram
または)として表示されるかどうか疑問に思います。それとも?を使用してアクセスする/dev/dpram
必要がありますか?/dev/mem
mmap
答え1
「カスタムボード」と言われたので、これがx86アーキテクチャなのか、一種のARMなのか、それとも別のものなのかを指定しなければなりません。
しかし、カーネルは、システムメモリマップの位置を知らせる情報を受け取らない限り、NVRAMとDPRAMについては知りません。この情報は、ファームウェア(x86:e820メカニズム、UEFI、ACPI、および/または他のPnPメカニズム)またはブートローダ(ARM:ATAGSまたはデバイスツリーの汚れ)。
また、MTDドライバがお客様の要件に適していることを確認する必要があります。特にCONFIG_MTD_PHRAM
カーネルドライバ(または以前のslram
ドライバ)があなたに適しているようです。
スタックオーバーフローに関するこの質問また、あなたに役立つ情報があるかもしれません。デフォルトでは、NVRAMとDPRAMをデバイスツリーまたはファームウェア/ブートローダからカーネルに渡された他のメモリマップに意味のあるものに含めることができない場合は、それをプラットフォームデバイスとして登録できます。