Linuxカーネルを実行しているARM Cortex A-8デバイスでいくつかの実験を行っています。
問題なく L2 キャッシュ ロックダウン レジスタの値にアクセスして読み取ることができます。
asm volatile ("mrc p15, 1, %0, c9, c0, 0" : "=r" (i));
値を書き戻そうとすると、デバイスがすぐにクラッシュします。
asm volatile ("mcr p15, 1, %0, c9, c0, 0" : : "r" (i));
コードはカーネル モジュールとして実行されるため、権限の問題はありません。
そのレジスタ値を書き込む前に何か特別なものが欠けているのだろうか?