(Linux)coprocessor를 이용한 CPUID 확인

leeky1124의 이미지

#include<linux/init.h>
 
#include<linux/kernel.h>
#include<linux/module.h>
 
int asm_mrc_ex ( void );
 
asm("                                                   \n\
.global asm_mrc_ex                              \n\
        asm_mrc_ex:                             \n\
        mrc     p15, 0, r0, c0, c0, 0           \n\
        mov     pc, lr                          \n\
");
 
int device_init (void){
 
        int ret;
 
        printk("\nProgram Start\n");
 
        ret = asm_mrc_ex();
 
 
        printk("Main ID Register = %08X\n\n", ret );
 
        return 0;
}
 
void device_exit (void){
        printk("\nProgram End\n\n");
}
 
module_init(device_init);
module_exit(device_exit);
MODULE_LICENSE("Dual BSD/GPL");

위의 코드를 사용하여 Main ID Register를 device driver로 읽는 것을 해보았습니다.

target board(cortex-A15 MPCore)에 관한 CPUID를 읽어오고 싶은데,

manual에 CPUID를 읽어올 수 있는 cp15의 정보를 찾을 수가 없어서요.

어떤부분을 수정해야 제가 원하는 정보를 얻을 수 있는지 잘 모르겠습니다.

도와주세요..ㅠ