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을 장치 트리나 펌웨어/부트로더에서 커널로 전달된 다른 메모리 맵에 의미있게 포함할 수 없는 경우 이를 플랫폼 장치로 등록할 수 있습니다.

관련 정보