问题现象:
Cortex A5 MPcore寄存器TPIDRPRW复位值不为零,造成Linux Kernel不能启动的问题。
问题原因分析:
由于Linux Kernel内核配置使能了CONFIG_TRACE_IRQFLAGS,内核在跟踪关闭硬件中断行为时(trace_hardirqs_off_caller()),调用内核中__my_cpu_offset()(以汇编指令mrc p15, 0, r2, c13, c0, 4实现)以获取寄存器TPIDRPRW的值来获取当前线程/进程信息时…
Cortex A5 MPcore寄存器TPIDRPRW复位值不为零,造成Linux Kernel不能启动的问题。
由于Linux Kernel内核配置使能了CONFIG_TRACE_IRQFLAGS,内核在跟踪关闭硬件中断行为时(trace_hardirqs_off_caller()),调用内核中__my_cpu_offset()(以汇编指令mrc p15, 0, r2, c13, c0, 4实现)以获取寄存器TPIDRPRW的值来获取当前线程/进程信息时…