Bootloader 부트로더.

Slides:



Advertisements
Similar presentations
USB Multi Drive Card Reader/Writer Controller & Turn-Key Solution Reads : SD / MMC / SM / CF / MD.
Advertisements

Booting the TS-7300 boards VHDL and C. Overview After looking at the general approach to booting machines (generally PCs) we will now look at the TS-7300.
제 7 장 Memory - DRAM. kuic.kyonggi.ac.kr/~dssung 7.1 DRAM (Dynamic RAM) 의 특성 - Address Multiplexing Address must be supplied in row-and-column format -
Lab 4 Department of Computer Science and Information Engineering National Taiwan University Lab4 - Bootloader 2014/10/14/ 13 1.
7400 Samsung Confidential & Proprietary Information Copyright 2006, All Rights Reserved. 1/16 OfficeServ 7x00 Enterprise IP Solutions Quick Install Guide.
Handheld TFTP Server with USB Andrew Pangborn Michael Nusinov RIT Computer Engineering – CE Design 03/20/2008.
Buildroot CS-423 Dick Steflik. buildroot uClibc – C library for developing for embedded Linux –much smaller than GNU C tools to make a cross-compilation.
SD Card. 목차 SD 카드 역사 MMC 카드에서 유래 MMC: 1 bit mode 의 Data bus, Data 전송 최대지원 클럭 : 20Mhz SD : Data bus 4 개, 최대 지원 클럭 25Mhz (4*25Mhz = 100Mbps) MMC 역시 4bit.
1 Booting Linux with U-boot Jason Kridner June 7, 2010 Archived at:
History 8xxROM by Magnus Damm PPCBoot (1999) – v (2000) U−Boot−0.1.0 (2002) extended functionality, new architectures Das U-Boot.
COMPUTER SYSTEM LABORATORY Lab4 - Bootloader. Lab 4 Experimental Goal Learn how to build U-Boot bootloader for PXA /10/8/ 142.
Embedded Systems Principle of Debugger. Reference Materials kl.de/avr_projects/arm_projects/#winarmhttp://
Beagleboard and Friends Nathan Gough. Hardware – OMAP3  Based around Texas Instruments OMAP3530 “Applications Processor”  OMAP3 Platform:  Arm Cortex-A8.
Lab 3 Department of Computer Science and Information Engineering National Taiwan University Lab3 - Cross Tools 2014/10/7/ 20 1.
0 Embedded Real-Time System Leader JBOSN RTOS : 선택이 아닌 필수 Network Camera Controller S65K Series.
1 Embedded Linux porting Speaker: Yi-Ji Jheng Date:
Embedded Linux porting Kernel
Computer System Laboratory
Include/mango100.h 설명 망고 100 보드로 놀아보자 -7 cafe.naver.com/embeddedcrazyboys.
AT91RM9200 Boot strategies This training module describes the boot strategies on the AT91RM9200 including the internal Boot ROM and the U-Boot program.
SOAP 실전예제 Internet Computing KUT Youn-Hee Han.
02/2008 MATRIX VISION GmbH 1 Presentation The intelligent camera and Image processing sensor.
1 Microprocessor-based systems Course 6 Memory design.
Lab 11 Department of Computer Science and Information Engineering National Taiwan University Lab11 - Porting 2014/12/9/ 26 1.
Porting Android to Beagleboard
From UEFI Shell to Linux - UEFI Linux BootLoader Zhang Rui Software Engineer Sep 28 th 2011.
SPCA554A Mobile Camera Multimedia Processor By Harrison Tsou.
Rebis 2.6 Kernel QTE-ARM TouchScreen. 2  vi /root/work/env/qte_arm_env_26  cat /root/work/env/qte_arm_env_26  export QTDIR=/root/work/qt/qte_arm_26.
Beagle Board Fast Boot Hui Chen Keji Ren Dec 10 th, 2009 EE382N-4 Project.
Hanyang Univ.  강의 목표 ◦ 임베디드 개발 환경의 이해  강의 내용 ◦ 교차 컴파일 환경 구축 및 부트로더 실습 Hanyang Univ.
12 1 Embedded Software Lab. OS 실습 Embedded Software Lab. 박대준, 박은수 Lecture 3. Kernel fusing, printk.
Mango520에 Ubuntu 올리기 CRZ-Technology.
1 uClinux course Day 4 of 5. 2 Author: D L Johnson CPU Architectures.
COMPUTER SYSTEM LABORATORY Lab6 - Root Filesystem.
Porting Linux Linux onto the Puppeteer SA1110. The Puppeteer board –SA1110 CPU –SMSC LAN91C96I ethernet –8 Mb Flash Intel 28F320C3 Boot block flash –32.
Youn-Hee Han, In-Seok Kang {yhhan, Laboratory of Intelligent Networks Advanced Technology Research Center Korea University of Technology.
Business Enabled Communications
망고 100 보드로 놀아보자 -10 망고 100 NAND,SD map
Business Enabled Communications Maintenance. Contents System Maintenance by Web-Admin Maintenance & Diagnostic by Web-Admin Maintenance Overview by Web-Admin.
2006/JAN/20JapanTechnicalJamboree61 Improvement of bootup time using Power Management - Project Update - Hiroki Kaminaga Sony Corporation
Code : STM#561 Samsung Electronics Co., Ltd. OfficeServ SW Upgrade Distribution EnglishED01.
Internal Device Driver
Linux Development Lecture 7. Schedule Linux Root Filesystem.
Lab 5 Department of Computer Science and Information Engineering National Taiwan University Lab5 – Bootloader + OS Kernel 2015/10/27/ 25 1.
Lab 8 Department of Computer Science and Information Engineering National Taiwan University Lab8 - Root Filesystem 2015/11/10/ 22 1.
Implementation of Embedded OS
안양대학교 전기전자공학과 서 삼 준 Kernel Fusing (Boot Loader & tftp 활용 )
Prestige NAND Flash DOWNLOAD. Prepare ITEM. 1.PC - Run Tftpd32 program. (Tftpd setup.exe install ) 2. Download DVR B/D 3. Download Serial B/D 4.
System Software Lab.,POSTECH TOE(TCP/IP Offload Engine) 김광식, 백근훈
Lab 5 Department of Computer Science and Information Engineering National Taiwan University Lab5 - OS Kernel 2014/10/21/ 16 1.
Blackfin buildroot development
졸업 프로젝트 발표 1/74 Trinity Snapshot Boot 날 짜: 팀 명: Trinity
Embedded Software Design Week II Linux Intro Linux Kernel.
MVL3.0 설치를 위한 Cross 환경 설정 구 본 진. Contents  IXDP425 보드 소개  Cross 개발 환경 구축.
Chap. 4 ARM Boot Loader Internals. 2 S3C2500 ARM940T Core module ARM9TDMI CoreIC.
WP1- Documentation Booting Petalinux from TFTP and using Network file system Section for developers Zynq 7020 R. Assiro.
U-Boot CS-423 Dick Steflik. U-Boot Actual Name: Das U-Boot Universal Bootstrap Loader Used on PPC, ARM, AVR32, MIPS, x86, 68K, Nios and MicroBlaze architectures.
Pats Embedded Linux Seminar (PELS) Session 2 Wim Torfs University of Antwerp PATS research group.
Pats Embedded Linux Seminar (PELS) Session 2 Wim Torfs University of Antwerp PATS research group.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com The U-boot bootloader Michael.
By Ganesan Alagu Ganesh Feb 26, 2008
Implementation of Embedded OS
Contents Overview AT-Command TCP Communication using AT Commands
Download Image to EVB Board and Flash Programming
USB The topics covered, in order, are USB background
By Ganesan Alagu Ganesh Feb 21, 2008
ELG) System Develop. Team
Improvement of startup time using Software Suspend - Project Update -
AT91RM9200 Boot strategies This training module describes the boot strategies on the AT91RM9200 including the internal Boot ROM and the U-Boot program.
Computer System Laboratory
Presentation transcript:

Bootloader 부트로더

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-120516.tar.gz /work/achro4210 # tar zxvf u-boot-120516.tar.gz # cd u-boot-120516 # vim Makefile

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

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)

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

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

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

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

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

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

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

Bootloader 부트로더 명령 메모리 관련 명령 cp md achro4210 # help cp cp - memory copy Usage: cp [.b, .w, .l] source target count achro4210 # cp 40008000 40008100 100 achro4210 # help md md - memory display Usage: md [.b, .w, .l] address [# of objects] achro4210 # md 40008000 40008000: 00002000 00000000 00000000 00000000 . .............. 40008000: ea000013 e59ff014 e59ff014 e59ff014 ................ 40008000: e59ff014 e59ff014 e59ff014 e59ff014 ................ 40008000: 2fe001e0 2fe00240 2fe002a0 2fe00300 .../@../.../.../ 40008000: 2fe00360 2fe003c0 2fe00420 12345678 `../.../ ../xV4. (이하 생략)

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

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: 3911680) Bus Width: 2-bit

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 40008000 reading bootloader.. 49, 1024 MMC read: dev # 0, block # 49, count 1024 ...1024 blocks read: OK completed achro4210 # movi read kernel 40008000 reading kernel.. 1073, 8192 MMC read: dev # 0, block # 1073, count 8192 ...8192 blocks read: OK achro4210 # movI read rootfs 40008000 100000 reading RFS.. 9265, 2048 MMC read: dev # 0, block # 9265, count 2048 ...2048 blocks read: OK completed achro4210 # movi read u-boot 40008000 reading bootloader.. 49, 1024 MMC read: dev # 0, block # 49, count 1024 ...1024 blocks read: OK completed achro4210 # movi read kernel 40008000 reading kernel.. 1073, 8192 MMC read: dev # 0, block # 1073, count 8192 ...8192 blocks read: OK

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