我想禁用Nvidia AGX Xavier的CPU缓存。
我尝试使用menuconfig来控制高速缓存,但是在此系统上似乎不起作用。然后我尝试使用ASM,但出现错误“非法指令(核心转储)”。
#include <stdio.h>
#include <string.h>
#include <linux/kernel.h>
#include <sys/syscall.h>
#include <unistd.h>
void L1_off(void){
__asm__(
"mrs x1, sctlr_el1;" // read SCTLR_EL1
"ldr x1, = 0xefff;"
"and x11, x11, x1;" // turn off bit 12 and store into R1 0xefff
"msr sctlr_el1, x11;"); // restore R1 into SCTLR_EL1
}
void L1_on(void){
__asm__("mrs x11, sctlr_el1;"
"ldr x2, = 0x1000;"
"orr x11, x11, x2;" // turn on bit 12
"msr sctlr_el1, x11;");
}
int main(void){
L1_off();
//L1_on();
return 0;
}
错误消息:非法指令(核心已转储)