Linuxユーザー空間でNVRAMとDPRAMにアクセスするには?

Linuxユーザー空間でNVRAMとDPRAMにアクセスするには?

NVRAM と DPRAM をカスタムボードに追加し、両方ともシステムメモリマップにマップします。これらのデバイスがLinuxカーネルにいくつかの共通ドライバを持っているので、ディレクトリにデバイスdev/dev/nvramまたは)として表示されるかどうか疑問に思います。それとも?を使用してアクセスする/dev/dpram必要がありますか?/dev/memmmap

答え1

「カスタムボード」と言われたので、これがx86アーキテクチャなのか、一種のARMなのか、それとも別のものなのかを指定しなければなりません。

しかし、カーネルは、システムメモリマップの位置を知らせる情報を受け取らない限り、NVRAMとDPRAMについては知りません。この情報は、ファームウェア(x86:e820メカニズム、UEFI、ACPI、および/または他のPnPメカニズム)またはブートローダ(ARM:ATAGSまたはデバイスツリーの汚れ)。

また、MTDドライバがお客様の要件に適していることを確認する必要があります。特にCONFIG_MTD_PHRAMカーネルドライバ(または以前のslramドライバ)があなたに適しているようです。

スタックオーバーフローに関するこの質問また、あなたに役立つ情報があるかもしれません。デフォルトでは、NVRAMとDPRAMをデバイスツリーまたはファームウェア/ブートローダからカーネルに渡された他のメモリマップに意味のあるものに含めることができない場合は、それをプラットフォームデバイスとして登録できます。

関連情報