0

ARM Linux が phys_to_virt および virt_to_phys のランタイム パッチをサポートしていることを理解しています。 http://lists.infradead.org/pipermail/linux-arm-kernel/2011-January/037089.html

これにより、再コンパイルを必要とせずに、カーネル イメージが異なる物理ベース アドレスをサポートできるようになります。

0x8000_0000 から 0xFFFF_FFFF までの物理メモリを備えた 2GB ボードがあります。ボードを使用すると、次の結果が表示されます。

カーネル ロードの物理アドレス: 0xC0008000 - OK (カーネルが起動)

カーネル ロードの物理アドレス: 0xC8008000 - OK (カーネルが起動)

カーネル ロードの物理アドレス: 0xD0008000 - NOT OK (カーネルの起動でハングアップ)

カーネル ロードの物理アドレス: 0xE0008000 - NOT OK (カーネルの起動でハングアップ)

私のLinuxカーネルコマンドラインbootargs mem = 512M.

カーネルの有効なロードアドレスの制限を理解したいです。これは、 www.arm.linux.org.uk/developer/memory.txtで文書化されています。

フォーマットがめちゃくちゃになるので、ここにコピーして貼り付けることができません。

ドキュメントでは、制限に従わないとカーネルが起動しないと述べていますが、これは私が直面しているものですが、カーネルの開始アドレスの制限を理解できません。

私はhighmemを使用していません。

制限 Linux 開始アドレス + lowmem_size は <= ff000000 - VMALLOC_SIZE である必要があります。

4

0 に答える 0