http://processors.wiki.ti.com/index.php/The_Boot_Process#2nd_Stage_Bootloader:_SPL
부팅프로세스 4단계에 대한 설명
내장 메모리가 작기 때문에 부팅 프로세스의 단계를 나눠 처리한다.
요기까지는 2015/10/08 10:23 작성.
요기부터는 2015/12/29 작성
요약을 해볼 생각이다. 간간이 "(주. 이런저런 내용)" 로 번역하다가 내 생각도 넣었다.
기본적으로 반말로 작성하고, 만나서 이야기할때는 존대말로 해줄꺼다.
위 링크를 가보면 아래와 같은 그림이 나온다. 부트로더가 이렇게 4개로 짜개져 있다는 소리다.
참고 : SPL (or Secondary Program Loader)
첫번째 부트로더 : ROM Code
디바이스가 전기가 딱!! 들어와서 기동될때 처음으로 읽어 들이는 명령어로 롬에 장착된 코드이다.
하는 일은 크가 두가지로 나뉘는데
-디바이스 환경설정과 프라이머리 페리페럴의 초기화
* Stack setup
* 와치독 타이머 1 환경설정(3분으로 설정)
* PLL과 시스템 클럭 환경설정
-다음 부트로더를 위한 디바이스 준비
* 다음 부트로더(SPL) 체크
* 다음 부트로더를 메모리로 이동
다음부트로더의 설정은 SYSBOOT[15:0]핀의 전압(V) 레벨로 한다. (주의 이 핀들은 다른 부트 파리미터-크리스탈 프리퀀시, 외부 메모리 버스 너비같은 거-도 설정한다. 데이터 쉬트 보고 자기 보드에 맞게 설정하란다. 글지.. 각자 보드 상황이 다를테니깐... 내장 낸드가 있는지 없는지 티플레시로 할껀지... 등등 상황이 다르것지..) 자세한건 데이터시트의 부트 파라미터 정보나 테크니털 레퍼런스 메뉴얼 컬러드 텍스트 26장을 보랜다... (주. 친절한데... 이런거까지 번역하니 쫌 그렇네.., 참고 : http://processors.wiki.ti.com/index.php/AM335x_U-Boot_User's_Guide#Two_stage_U-Boot_design )
두번째 부트로더 : SPL(Secondary Program Loader)
대략 MLO 파일을 SPL이라고 한다. SPL은 U-Boot의 첫번째 단계이고, 부트 소스에서(주. 부팅되는 미디어인 듯..) 램으로 읽히고, 아주 기본적인 환경설정이나 사용자 명령, 그리고 다음 부트로더인 U-Boot를 실행시킨다.
세번째 부트로더 : U-BOOT
시리얼을 통해 다양한 명령과 커널 부팅 환경을 설정할 수 있게 한다. 커널부트 파라미터와 커널 부트 커맨드를 사용할 수 있다. uEnv.txt(주. ramfs의 /boot 에 uEnv.txt가 있다.)에 있는 환경 변수도 사용 가능하다. printenv, setenv, saveenv로 명령을 조회, 수정, 저장할 수 있다.
네번째 부트로더 : Linux Kernel
uimage는 커널에 해더가 추가된 이미지이다. 해더는 64kB이고, 타켓 아키텍쳐, OS, 커널 사이즈, 엔트리 포인트(주. 커널이 시작되는 진입점) 등등의 정보를 가지고 있다. U-Boot에 의해 uImage가 부팅될때 해더정보가 표시된다.
부팅이 메모리 맵은 다음과 같다.