[head-common.S] virt& phys 사이의 offset 구하는 코드 관련해서 문의 드립니다.
글쓴이: songcode78 / 작성시간: 월, 2011/08/22 - 1:59오후
head-common.S 파일에서 아래의 부분을 보면 virt&phys 사이의 offset 을 구하는 코드가 있는데 해당 코드가 어떻게 offset을 구하는지 알 수 없어서 이렇게 질문 드립니다.
코드 상으로는 "4: .long ." 부분의 위치한 실제 어드레스와 "4: .long ."의 값을 빼서 offset을 구하는것 같은데요
실제로 "4: .long ."값이 이 무엇을 의미하는지 모르겠습니다.
고수님들의 도움 부탁드립니다.
__lookup_processor_type: adr r3, 3f ldmia r3, {r5 - r7} add r3, r3, #8 sub r3, r3, r7 @ get offset between virt&phys add r5, r5, r3 @ convert virt addresses to add r6, r6, r3 @ physical address space 1: ldmia r5, {r3, r4} @ value, mask and r4, r4, r9 @ mask wanted bits teq r3, r4 beq 2f add r5, r5, #PROC_INFO_SZ @ sizeof(proc_info_list) cmp r5, r6 blo 1b mov r5, #0 @ unknown processor 2: mov pc, lr ENDPROC(__lookup_processor_type) .align 2 3: .long __proc_info_begin .long __proc_info_end 4: .long . .long __arch_info_begin .long __arch_info_end
Forums:
댓글 달기