.
board/raspberrypi/rpi/lowlevel\_init.S
1 #include <config.h>
2
3 .align 8
4 .global fw_dtb_pointer
5 fw_dtb_pointer:
6 #ifdef CONFIG_ARM64
7 .dword 0x0
8 #else
9 .word 0x0
10 #endif
11
12 /*
13 * Routine: save_boot_params (called after reset from start.S)
14 * Description: save ATAG/FDT address provided by the firmware at boot time
15 */
16
17 .global save_boot_params
18 save_boot_params:
19
20 /* The firmware provided ATAG/FDT address can be found in r2/x0 */
21 #ifdef CONFIG_ARM64
22 adr x8, fw_dtb_pointer
23 str x0, [x8]
24 #else
25 str r2, fw_dtb_pointer
26 #endif
27
28 /* Returns */
29 b save_boot_params_ret
- 3번 줄에서
- 4번 줄에서
fw_dtb_pointer
를 외부에서 호출할 수 있도록global
로 선언합니다. - 17번 줄에서
save_boot_params
도 위와 같이 선언합니다. - 21번 줄에서 우리는 32bit용으로 컴파일 했기때문에 22, 23번 줄은 수행되지 않습니다.
- 25번 줄에서 r2레지스터를
fw_dtb_pointer
주소에 저장합니다. - 6번 줄에서 우리는 32bit용으로 컴파일 했기때문에 4byte 0x0값을
fw_dtb_pointer
라벨이 선언된 곳에 저장합니다. - 즉 레지스터 r2값을
fw_dtb_pointer
라벨이 선언된 주소에 저장합니다. - 29번 라인에서
save_boot_params_ret
으로 점프합니다.