BOOTLOADER Jo, Heeseung
부트로더컴파일 부트로더소스복사및압축해제 부트로더소스는웹페이지에서다운로드 /working 디렉터리로이동한후, wget으로다운로드 이후작업은모두 /working 디렉터리에서진행 root@ubuntu:# cp /media/sm5-linux-111031/source/platform/uboot-s4210.tar.bz2 /working 2
부트로더컴파일 부트로더소스복사및압축해제 부트로더소스를복사한디렉터리로이동 부트로더소스파일의압축을해제 압축이해제된디렉터리로이동 root@ubuntu:# cd /working/ root@ubuntu:/working# tar xjvf uboot-s4210.tar.bz2 root@ubuntu:/working# cd uboot-s4210 root@ubuntu:/working/uboot-s4210# 3
부트로더컴파일 컴파일 타겟보드설정파일을적용후컴파일 make 명령어를사용하여컴파일 - 부트로더파일을컴파일할때는크로스컴파일러가먼저설치되어있어야함 root@ubuntu:/working/uboot-s4210# make sm5s4210_linux_config Configuring for sm5s4210_linux board... root@ubuntu:/working/uboot-s4210# make 4
부트로더컴파일 컴파일 컴파일이이상없이완료되면 uboot-s4210 디렉터리아래에 uboot.bin 이라는파일이생성 root@ubuntu:/working/uboot-s4210# ls u-boot* ----------------------< 출력내용 >----------------------------------- u-boot u-boot.bin u-boot.dis u-boot.map u-boot.srec ------------------------------------------------------------------ u-boot.bin - 최종바이너리파일 - 부트롬에퓨징 u-boot - elf 포멧의 u-boot 이미지파일 u-boot.map - 컴파일된모든함수들에대한메모리상의위치정보 5
이미지들을 fastboot 명령어를통해서타겟보드에퓨징 fastboot 명령어는타겟보드의 USB OTG 를통해서 PC 에서파일을전송 메모리의해당영역 ( 부트로더 / 커널 ) 을지우고, 다운로드받은해당이미지 ( 부트로더 / 커널 ) 를해당영역에자동으로퓨징 6
fastboot.x64 install (fastboot.x64 사용 ) mkdir /opt/fastboot 웹페이지의 fastboot.x64 binary 다운로드 /opt/fastboot 밑으로 binary 복사 chmod 755 /opt/fastboot/fastboot.x64 export PATH=/opt/fastboot:$PATH 7
부트로더커맨드모드 HBE-SM5-S4210 에전원을인가하면, 부트로더가실행 부트로더는 HBE-SM5-S4210 의하드웨어를초기화한후에몇초동안사용자입력대기 - 사용자키가입력되지않을경우에는 T-Flash 에저장되어있는커널이미지를메모리를복사하여커널로부팅 - 사용자가키를입력하게되면커맨드모드로동작 8
부트로더커맨드모드 Hit any key to stop autoboot : x 라는메시지와함께사용자키입력대기, 키를입력하여커맨드모드로동작 OK U-Boot 2010.03 (Sep 02 2011-00:12:44) for SM5S4210 Linux APLL = 1000MHz, MPLL = 800MHz PMIC: ARM 1.30V, INT 1.15V, G3D 1.10V Board: sm5s4210 POP type: POP_B DRAM: 1 GB OneNAND: 0 kb MMC: This CLOCK is Not Support: 0 7580 MB *** Warning - using default environment In: serial Out: serial Err: serial Checking Boot Mode... SDMMC board_late_init Hit any key to stop autoboot: 0 SM5S4210 # 9
fastboot 명령어사용방법 help fastboot SM5S4210 # help fastboot fastboot - fastboot- use USB Fastboot protocol Usage: fastboot [inactive timeout] - Run as a fastboot usb device. - The optional inactive timeout is the decimal seconds before - the normal console resumes SM5S4210 # 10
부트로더다운로드및퓨징 명령을입력하기전에 USB OTG 케이블이연결상태이어야함 Insert a OTG cable into the connector! SM5S4210 # fastboot [Partition table on MoviNAND] ptn 0 name='bootloader' start=0x4200 len=0x80000(~512kb) (use hard-coded info. (cmd: movi)) ptn 1 name='kernel' start=0x8c000 len=0x400000(~4096kb) (use hard-coded info. (cmd: movi)) ptn 2 name='logo' start=0x48c000 len=0x200000(~2048kb) (use hard-coded info. (cmd: movi)) ptn 3 name='ramdisk' start=0x68c000 len=0x974000(~9680kb) (use hard-coded info. (cmd: movi)) ( 전송을기다리는대기상태로진입 ) Linux fastboot 명령 root@ubuntu:/tftpboot# fastboot.x64 flash bootloader u-boot.bin 12
부트로더다운로드및퓨징 콘솔창퓨징메시지확인 SM5S4210 # fastboot [Partition table on MoviNAND] ptn 0 name='bootloader' start=0x4200 len=0x80000(~512kb) (use hard-coded info. (cmd: movi)) ptn 1 name='kernel' start=0x8c000 len=0x400000(~4096kb) (use hard-coded info. (cmd: movi)) ptn 2 name='logo' start=0x48c000 len=0x200000(~2048kb) (use hard-coded info. (cmd: movi)) ptn 3 name='ramdisk' start=0x68c000 len=0x974000(~9680kb) (use hard-coded info. (cmd: movi)).completed // 생략!!... partition 'bootloader' flashed 13