Presentation is loading. Please wait.

Presentation is loading. Please wait.

Bootloader 부트로더.

Similar presentations


Presentation on theme: "Bootloader 부트로더."— Presentation transcript:

1 Bootloader 부트로더

2 Bootloader Bootloader 부트로더 부트로더 존재의 이유 Achro-4210 부트로더 소스 위치 부트로더 컴파일
사용가능한 하드웨어를 초기화 시스템 구성을 위한 하드웨어 제어 명령 부트로더 존재의 이유 PC와 달리 CMOS를 이용할 수 없는 특수한 환경 Achro-4210 부트로더 소스 위치 부트로더 컴파일 소스 준비 크로스 컴파일러 설정 [Achro4210 Disc]/bootloader/u-boot-yymmdd.tar.gz # mkdir /work # mkdir /work/achro4210 # cd /work/achro4210 # cp –a /media/[Achro4210 Disc]/bootloader/u-boot tar.gz /work/achro4210 # tar zxvf u-boot tar.gz # cd u-boot # vim Makefile

3 Bootloader 기존 설정 초기화 컴파일 컴파일 완료 …(중간생략)… CROSS_COMPILE = /opt/toolchains/arm-2009q1/bin/arm-none-linux-gnueabi- # make distclean # make

4 Bootloader Achro-4210 부트로더 퓨징
microSD메모리의 raw 영역이 지워진 상태에서 부트로더를 퓨징하는 방법 생성된 BL1(u-boot.bin.crc)를 MicroSD에 기록 BL2(u-boot.bin)을 MicroSD에 기록 # mkbl1 u-boot.bin u-boot.bin.crc 16392 # dd if=u-boot.bin.crc of=/dev/sdb bs=1 seek=512 count=16384 # dd if=u-boot.bin of=/dev/sdb bs=1 seek=16896 # sync OM CPU 내부에 위치 MicroSD의 RAW 영역에 위치 BL0 (iROM) BL1 (u-boot 의 상위 16K) BL2 (u-boot.bin)

5 Bootloader SD메모리 초기화 FLASH RAW AREA 최소요구 사항

6 Bootloader ACHRO4210의 Fusing 방법 - DNW Host Linux Target Board MINICOM
> DNW 0x4000… FLASH Bootloader 컴파일 Kernel 컴파일 SDRAM BL2 relocate 호스트의 USB와 타깃의 USB OTG 가 연결되어야 함. Kernel, Bootloader를 /tftpboot 디렉터리로 복사 Receive Data smdk-usbdl을 이용하여 Usb를 이용 데이터 전송 raw area TERMINAL # smdk-usbdl –f .. BL2

7 Bootloader ACHRO4210의 Fusing 방법 - TFTP Host Linux Target Board MINICOM
FLASH Bootloader 컴파일 Kernel 컴파일 SDRAM BL2 relocate 호스트에는 tftpd 가 구동, 네트워크 로 연결되어야 함 Kernel, Bootloader를 /tftpboot 디렉터리로 복사 Receive Data raw area Xinet Demon.. Service tftpd BL2

8 Bootloader 부트로더 기록 미니컴 실행 시리얼과 USB OTG케이블 연결 # minicom

9 Bootloader # dnw 0x40008000 보드 전원 인가
카운트가 0이 되기 전에 키보드의 아무키나 눌러 부트로더 상태로 진입 dnw 를 이용하여 호스트의 u-boot.bin을 다운로드할 준비 # dnw 0x

10 Bootloader # cd /work/achro4210/u-boot-120516 보드로 부트로더 바이너리 전송
부트로더 소스 디렉터리가 아니라면 부트로더 소스 디렉터리로 이동 dnw 를 이용하여 호스트의 u-boot.bin을 다운로드할 준비 데이터 전송 확인 # cd /work/achro4210/u-boot # smdk-usbdl -f u-boot.bin

11 Bootloader 부트로더 명령 도움말 개발보드 정보 출력 # movi write u-boot 0x40008000
플래시 기록 메모리 영역(0x )에 있는 이미지를 microSD로 기록 부트로더 명령 도움말 개발보드 정보 출력 # movi write u-boot 0x achro4210 # help achro4210 # bdinfo arch_number = 0x00000B16 env_t = 0x boot_params = 0x DRAM bank = 0x -> start = 0x -> size = 0x ethaddr = 00:40:5C:26:0A:5B ip_addr = baudrate = bps

12 Bootloader 부트로더 명령 메모리 관련 명령 cp md achro4210 # help cp
cp - memory copy Usage: cp [.b, .w, .l] source target count achro4210 # cp achro4210 # help md md - memory display Usage: md [.b, .w, .l] address [# of objects] achro4210 # md : : ea e59ff014 e59ff014 e59ff : e59ff014 e59ff014 e59ff014 e59ff : 2fe001e0 2fe fe002a0 2fe00300 : 2fe fe003c0 2fe `../.../ ../xV4. (이하 생략)

13 Bootloader mm mw achro4210 # help mm
mm - memory modify (auto-incrementing address) Usage: mm [.b, .w, .l] address achro4210 # mm : ? : ? : ? q (mm 명령을 종료할 때는 16진수가 아닌 값을 됨) achro4210 # help mw mw - memory write (fill) Usage: mw [.b, .w, .l] address value [count] achro4210 # mw achro4210 # md : DD

14 Bootloader microSD Command microSD(NAND) 관련 명령 movi init : SD 정보 출력
achro4210 # help movi movi init - Initialize moviNAND and show card info movi read {u-boot | kernel} {addr} - Read data from sd/mmc movi write {fwbl1 | u-boot | kernel} {addr} - Write data to sd/mmc movi read rootfs {addr} [bytes(hex)] - Read rootfs data from sd/mmc by size movi write rootfs {addr} [bytes(hex)] - Write rootfs data to sd/mmc by size movi read {sector#} {bytes(hex)} {addr} - instead of this, you can use "mmc read" movi write {sector#} {bytes(hex)} {addr} - instead of this, you can use "mmc write" achro4210 # movi init Device: S3C_HSMMC2 Manufacturer ID: 1b OEM: 534d Name: 00000 Tran Speed: 0 Rd Block Len: 512 SD version 2.0 High Capacity: No Size: 1910MB (block: ) Bus Width: 2-bit

15 Bootloader movi read {u-boot | kernel} { addr} SD의 u-boot, kernel 이미지를 읽어 SDRAM 번지에 로드 movi read rootfs {addr} [bytes(hex)] movi write {u-boot | kernel} {addr} memoy의 u-boot, kernel 데이터를 읽어 SD에 기록 achro4210 # movi read u-boot reading bootloader.. 49, 1024 MMC read: dev # 0, block # 49, count blocks read: OK completed achro4210 # movi read kernel reading kernel , 8192 MMC read: dev # 0, block # 1073, count blocks read: OK achro4210 # movI read rootfs reading RFS , 2048 MMC read: dev # 0, block # 9265, count blocks read: OK completed achro4210 # movi read u-boot reading bootloader.. 49, 1024 MMC read: dev # 0, block # 49, count blocks read: OK completed achro4210 # movi read kernel reading kernel , 8192 MMC read: dev # 0, block # 1073, count blocks read: OK

16 Bootloader movi write rootfs {addr} [bytes(hex)]
achro4210 # movi write rootfs writing RFS , 2048 MMC write: dev # 0, block # 9265, count blocks written: OK completed


Download ppt "Bootloader 부트로더."

Similar presentations


Ads by Google