SKKU2006
1.1. 이 문서의 목적 ¶이 문서는 김기오님의 U-boot 1.1.2 Porting Guide to PXA270을 참고하여 실제로 pxa270 보드에 u-boot를 포팅 작업을 하는 과정을 메모한 것입니다. 현재 진행중입니다.
1.2. START ¶
1.3.1. include/configs/skku.h ¶
1.3.2. 초기화 코드 수정하기 ¶
1.3.2.1. cpu/pxa270/start.S ¶
.globl _start
_start: b reset 이 부분은 파일의 시작 지점으로 물리적으로 0x00000000번지에 놓이게 된다. 0x00000000번지에는 플래쉬 메모리가 놓여 있다. 즉, _start 지점이 0x00000000 번지에 놓이게 되며, "b reset" 명령어는 0x00000000 번지에 놓이는 최조의 명령어가 된다. 이 명령어에 의해 CPU는 reset 위치로 뛴다. ".globl _start"에서 .globl은 전체 목적 파일을 링크할 때 _start 심벌을 링커,로더가 볼수 있도록 하는 역활을 한다.
.balignl 16,0xdeadbeef
이 부분은 다음에 올 코드를 16 바이트 경계(바인더리인지 모인지, word단위로 맞추는것)에 놓고 중간에 비게 되는 부분을 4바이트 크기의 0xdeadbeef값으로 채우라는 어셈블러 지시어.
reset:
mrs r0,cpsr bic r0,r0,#0x1f orr r0,r0,#0xd3 msr cpsr,r0 여기는 cpsr 레지스터의 값을 r0 레지스터로 읽어온후, r0 레지스터의 하위 다섯 비트를 이진수 00000으로 채우고 다시 하위 5 비트와 5,6,7번 비트를 이진수 11010011(0xd3) 값으로 채운후, 수정한 r0 레지스터의 값을 cpsr 레지스터에 쓰는 부분이다.
이 부분은 CPU를 SVC32 mode로 전환을 하며, IRQ와 FIQ를 끄는 역활을 한다.
1.4.1. board/skku/memsetup.S ¶
1.4.1.1. Synchronous DRAM ¶Synchronous DRAM?
1.4.1.1.1. SDRAM 어드레싱 기본원리 ¶
1.5. 2006.03.08 ¶
1.7. 2006.03.15 ¶
|
Stop searching forever. Happiness is unattainable. |