<MCR|MRC>{cond}p#,<expression1>,Rd,cRn,cRm{,<expression2>}
MRC : coprocessor register을 CPU register로 이동 (L=1)
MCR : CPU register 을
coprocessor
register로 이동 (L=0)
{cond} : Two character condition mnemonic
p# : coprocessor 번호
<opcode_1> : coprocessor-specific opcode.
<opcode_1> 은 항상 0 이다.
Rd : CPU register number
cRn and cRm : coprocessor register numbers
<opcode_2> : coprocessor-specific opcode. 이 필드는 생략 할 수 있다.
< cpu/s5pc1xx/start.s 파일에서 >
/*
*************************************************************************
*
* CPU_init_critical registers
*
* setup important registers
* setup memory timing
*
*************************************************************************
*/
/*
* we do sys-critical inits only at reboot,
* not when booting from ram!
*/
cpu_init_crit:
/*
* Invalidate L1 I/D
*/
mov r0, #0 @ set up for MCR
mcr p15, 0, r0, c8, c7, 0 @ invalidate TLBs
// 1. 변환 참조 버퍼(Transition Lockaside Buffer: TLB)를 무효화
mcr p15, 0, r0, c7, c5, 0 @ invalidate icache
// 2. 명령어 캐시(instruction cache: I-cache) 무효화
출처 : http://blog.naver.com/serimo/50091160857