Ich habe ein SoC-FPGA (DE0-Nano-Soc), das eine ARM-Cortex-A9-CPU mit einem Cyclone V-FPGA auf einem einzelnen Chip enthält. Die CPU hat Zugriff auf 1 GB DDR3-Speicher, das FPGA kann jedoch auch auf diesen Speicher zugreifen, um Daten gemeinsam zu nutzen.
Jetzt habe ich Linux so konfiguriert, dass nur 900 MB des gesamten Arbeitsspeichers mithilfe des Boot-Parameters angezeigt werden mem=900M
. Auf diese Weise habe ich etwas RAM übrig, das Linux nicht berührt, das ich verwenden kann, um mit dem FPGA zu kommunizieren. Ich möchte diesen Teil des RAM mit schreiben /dev/mem
. Ich erhalte eine Fehlermeldung, dass mir die Erlaubnis verweigert wurde, wenn ich die entsprechende Adresse speichere. Ich vermute, das liegt daran, dass mein Kernel die Adresse CONFIG_STRICT_DEVMEM
festgelegt hat.
Jetzt möchte ich das nicht wirklich deaktivieren, da ich wirklich nur an Adressen schreiben muss, die Linux nicht verwendet. Gibt es eine Möglichkeit, dem Linux-Kernel mitzuteilen, dass es in Ordnung ist, in diesen bestimmten Teil zu schreiben, aber der normale Speicher ist immer noch begrenzt?
quelle
memmap=900!124
900 bei Versatz 124 reservieren würdememmap=124!900
. Ich möchte 124 bei Versatz 900 reservieren, also wäre die richtige Option .