본문 바로가기

운영체제/ARM Core

ezboot 분석 bootloader bl0

우선 시작하기에 앞서 bl0 부분이 뭐하는 부분이고 뭘 담당하는지를 알아보고자 한다.


bl0 이라하면 iROM code section 을 의미하는 것으로써 internel Memory(iROM)에 상주 하면서 각종 하드웨어적인 초기화를 담당하게 된다.


이러한 초기화 과정에서 CPU의 상태를 인지하도록 되어있으며 부팅 저장소를 결정하도록 되어있다.

이러한 부팅 저장소로는 SD-Card / T-Flash, SATA, SSD 등이 될 수 있다.


자 !! 그럼 여기서 iRom이 뭔지 궁금할 수 있다.

각종 인터넷의 자료를 찾아보면 CPU의 내부영역 즉 Internal 영역에는 각각 작은 메모리 저장공간인 ROM과 RAM 이란것이 존재하며 이는 CPU내부에 존재한다 하여  Internal 을 축약해 iROM, iRAM 이라는 이름으로 불리게 된다.

이렇게 최조 전원이 인가되게 되면 CPU로 전원이 공급되고 iROM 내부에 저장된 코드를 이용하여 하드웨어적인 초기화를 진행하도록 되어있다.


이러한 각종 초기화를 진행한 뒤 부팅 모드를 설정하게 되어있는데 이는 특정 비트값을 셋팅하는것으로 모드를 전환하게 되어있다. 이를 (Operation Mode) OM pin 이라고 한다.

http://dev.odroid.com/wiki/odroid-t/pds/FrontPage/s5pv210_irom_applicationnote_preliminary_20091126.pdf


이러한 핀설정 상태에 따라 부팅모드가 달라지게 되는데 s5pv210 에서는 아무리 찾아봐도 OM pin 이 보이지 않는다.

이건 추후 회로도를 보고 작성하도록 하겠다.


하지만 이 iROM과 iRAM 이란 것이 저장가능한 용량이 작기때문에 이 속에 시스템의 제어부 전부를 집어 넣을 수 없어 이후 소스의 진행은 bl1 부분으로 점프하도록 되어있다.


여기서 여러가지를 축약하여 점프한다고 하였지만 bl1의 코드를 iSRAM 에 적제하여 그 시작코드 부분으로 Program Counter 를 넘겨주는 것을 의미한다.


다음에는 bl1의 정의에 대해 알아보고자 한다.