Das U-Boot 3/25/2017 Slide NOTE:

Slides:



Advertisements
Similar presentations
So far Binary numbers Logic gates Digital circuits process data using gates – Half and full adder Data storage – Electronic memory – Magnetic memory –
Advertisements

Troubleshooting Startup Problems
Managing Cisco IOS Software. Overview The router boot sequence Locating IOS software The configuration register Recovering Passwords Backing Up the Cisco.
Cisco S2 C7 Router Operation System IOS. Routers Boot From Flash memory TFTP server ROM (not full Cisco IOS software) –Default depends on platform –Order.
CCNA2 MODULE 5.
Lab 4 Department of Computer Science and Information Engineering National Taiwan University Lab4 - Bootloader 2014/10/14/ 13 1.
Chabot College ELEC IOS Images.
Introduction to the Cisco IOS
Institute of Technology Sligo - Dept of Computing Cisco IOS & Router Config Semester 2V2 Chapter 7 Chapter 8.
CCNA 2 v3.1 Module 2.
WANs and Routers Routers. Router Description Specialized computer Like a general purpose PC, a router has:  CPU  Memory  System Bus Connecting Internal.
Embedded Systems Programming Introduction to the course.
History 8xxROM by Magnus Damm PPCBoot (1999) – v (2000) U−Boot−0.1.0 (2002) extended functionality, new architectures Das U-Boot.
1 Semester 2 Module 2 Introduction to Routers Yuda college of business James Chen
1 © 2002, Cisco Systems, Inc. All rights reserved. Router boot procedure.
Cisco 2 - Routers Perrine & modified by Brierley Page 18/18/2015 Chapter 5 IOS Internet Operating System (IOS)
COMPUTER SYSTEM LABORATORY Lab4 - Bootloader. Lab 4 Experimental Goal Learn how to build U-Boot bootloader for PXA /10/8/ 142.
What is Router? Router is a device which makes communication between two or more networks present in different geographical locations. Routers are data.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
1 Chapter 2 ROUTER FUNDAMENTALS By: Tassos Tassou.
Embedded Systems Principle of Debugger. Reference Materials kl.de/avr_projects/arm_projects/#winarmhttp://
Cisco IOS & Router Config Semester 2V2 Chapter 6.
Linux+ Guide to Linux Certification Chapter Three Linux Installation and Usage.
Fundamentals of Networking Discovery 1, Chapter 2 Operating Systems.
Guide to Linux Installation and Administration, 2e1 Chapter 3 Installing Linux.
AT91RM9200 Boot strategies This training module describes the boot strategies on the AT91RM9200 including the internal Boot ROM and the U-Boot program.
Chap 5 Startup and Setup Andres, Wen-Yuan Liao Department of Computer Science and Engineering De Lin Institute of Technology
From UEFI Shell to Linux - UEFI Linux BootLoader Zhang Rui Software Engineer Sep 28 th 2011.
Guide to Linux Installation and Administration, 2e1 Chapter 2 Planning Your System.
Porting Operating Systems Phan Duy Hùng (PhD) ES Lecturer – Hanoi FPT University.
Linux Administration. Pre-Install Different distributions –Redhat, Caldera, mandrake, SuSE, FreeBSD Redhat Server Install –Check HCL –Significant issues.
SAM9260-EK WinCE DEMO AT91 SAM9 Product Group. Version 1.0 October 2006.
7200 Samsung Confidential & Proprietary Information Copyright 2006, All Rights Reserved. 1/16 OfficeServ 7200 Enterprise IP Solutions Data Server S/W Upgrade.
Introduction to Routers
CCNA2 Chapter 2 Cisco IOS Software. Cisco’s operating system is called Cisco Internetwork Operating System (IOS) IOS provides the following network services:
7200 Samsung Confidential & Proprietary Information Copyright 2006, All Rights Reserved. 1/7 OfficeServ 7200 Enterprise IP Solutions Data Server S/W Upgrade.
© 2006 Cisco Systems, Inc. All rights reserved.Cisco PublicITE I Chapter 6 1 Router Initialization steps.
Sem 2v2 Chapter 5 Router Startup and Setup. A router initializes by loading the bootstrap, the operating system, and a configuration file. If the router.
Lab 5 Department of Computer Science and Information Engineering National Taiwan University Lab5 – Bootloader + OS Kernel 2015/10/27/ 25 1.
Router Startup and Setup Honolulu Community College Cisco Academy Training Center Semester 2 Version 2.1.
Commands 3/1/ Boot PROM Fundamentals All Sun systems have resident boot PROM firmware Provides basic hardware testing and initialization prior.
Implementation of Embedded OS
IOS Boot Procedure Can be set in Global Config –Router(config)#boot system flash If not in NVRAM as to where to get IOS, default is Flash If not in Flash,
Lab 5 Department of Computer Science and Information Engineering National Taiwan University Lab5 - OS Kernel 2014/10/21/ 16 1.
CHAPTER 3 Router CLI Command Line Interface. Router User Interface User and privileged modes User mode --Typical tasks include those that check the router.
The World Leader in High Performance Signal Processing Solutions Das U-Boot: Blackfin Guts.
Cisco 2 - Routers Perrine. J Page 16/26/2016 Chapter 2 Cisco IOS Software Cisco’s operating system is called Cisco Internetwork Operating System (IOS)
Chap. 4 ARM Boot Loader Internals. 2 S3C2500 ARM940T Core module ARM9TDMI CoreIC.
1 © 2004, Cisco Systems, Inc. All rights reserved. CCNA 2 v3.1 Module 2 Introduction to Routers.
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.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Embedded Linux system development.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com The U-boot bootloader Michael.
BY: SALMAN 1.
© 2002, Cisco Systems, Inc. All rights reserved.
BY: SALMAN.
CCNA Routing and Switching Routing and Switching Essentials v6.0
CIT 384: Network Administration
Router Startup and Setup
CHAPTER 7.
Chapter 10: Device Discovery, Management, and Maintenance
CCNA Routing and Switching Routing and Switching Essentials v6.0
AT91RM9200 Boot strategies This training module describes the boot strategies on the AT91RM9200 including the internal Boot ROM and the U-Boot program.
Chapter 10: Device Discovery, Management, and Maintenance
Cisco IOS & Router Config
Router Startup and Setup
Lecture9: Embedded Network Operating System: cisco IOS
Computer System Laboratory
Lecture9: Embedded Network Operating System: cisco IOS
Presentation transcript:

Das U-Boot 3/25/2017 Slide NOTE: Help the field to keep the messages clean and clear to customers, and add speaker notes for their use. Include at least major bullet points to be used as discussion points with customers during a presentation.

Boot Terminology Loader Bootloader / Bootstrap Boot PROM Boot Manager 3/25/2017 Boot Terminology Loader Program that moves bits from non volatile memory to memory and then transfers CPU control to the newly “loaded” bits (executable) Bootloader / Bootstrap Program that loads the “first program” (the kernel) Boot PROM Persistent code that is “already loaded” on power-up Boot Manager Program that lets you choose the “first program” to load Loading is an important and often over-looked OS concept. Loading is increasingly accomplished “on-demand” via dynamic linking-loaders. The Linux kernel module mechanism is essentially an advanced application of dynamic linking/loading. People often mistakenly think that “bootstrap” refers to boot laces. The “bootstrap” metaphor refers to the nonsensical image of someone lifting themselves up off the ground by their own bootstrap. The impossibility of this image adds to the mystery of the boot process. There are lots of related types of “firmware”: ROM, PROM, EPROM, EEPROM, NVRAM, Flash RAM and who knows what else. PROM in “Boot PROM” or “PROM Monitor” is used informally. In the SPARC architecture, these are actually contained in EEPROMs. The phrase “first program” is in quotes for a reason. Often the first program loaded is itself a boot manager, like LILO. LILO introduces the concept of “chain loaders”. Why not have one loader load another loader which might load another loader…

What’s a Loader? memory loader bits flash cpu bits 3/25/2017 What’s a Loader? A program that moves bits from flash or disk to memory and then transfers control to the newly loaded bits (executable). loader memory bits flash bits cpu A great reference is “Linkers & Loaders” by John Levine Morgan Kaufmann 2000. Loaders are also sometimes responsible for allocating memory, setting protection bits, updating memory maps, etc.

Loading through Das U-boot SDRAM Memory 0x1000 Reset CPU Kernel Root File-System ROM BMODE 00 ByPass PROM 0x20000000 Bootloader uboot Bootloader uboot Kernel Image Optional compressed Root File System

3/25/2017 Das U-Boot The "Universal Bootloader" ("Das U-Boot") is a monitor/MicroOS program. Started in October of 1999 by Dan Malek, supported by Wolfgang Denk (Denx Engineering) as of July 2000 Free Software: full source code under GPL Hosted on SourceForge: http://sourceforge.net/projects/u-boot · Production quality: Used as default boot loader by several board vendors · Portable and easy to port and to debug Many supported architectures: PPC, ARM, MIPS, x86, m68k, NIOS, Microblaze, and Blackfin More than 216 boards supported by public source tree Uboot – very powerful and supports: Network boot Flash based boot Multiple protocols Splash screen (display image in CRT)

Blackfin U-boot features

Where to get U-boot sources

User Interface (1) U-Boot uses a simple command line interface (CLI), usually over a serial console port. Two different command interpreters are available: Simple CLI · Bourne compatible shell (HUSH shell from Busybox) · Configuration parameters and commands / command sequences (scripts !) can be stored in "environment variables" which can be saved to non-volatile storage (flash, EEPROM, NVRAM, etc.)

3/25/2017 User Interface (2) U-Boot supports many different ways to load and boot an image. Serial Port: "loads" (S-Record), "loadb" (Kermit binary protocol) Ethernet: "tftp", "bootp", "dhcp", "nfs“ Harddisk, CDROM: "ide read" CompactFlash card etc.: "ide read" USB Mass Storage Device: "usb read" SCSI Disk and CDROM: "scsi read" NAND flash with JFFS2 filesystem: "nboot" Disk on Chip: "doc read" PCI Bus: copy Commands Memory Commands Flash Memory Commands Execution Control Commands User interface for Uboot – command line for serial port either net. Flexible and powerful – can configure your system and only compile what you need. Network Commands Bootp Cdp dhcp loadb oads Nfs ping rarpboot tftpboot Environment Variables Commands Printenv saveenv Askenv setenv run Bootd Information Commands bdinfo coninfo flinfo iminfo imls help

Boot Image Image: Header: Actions: Header + Payload Creation Timestamp Data Load Address Entry Point Address Data CRC Checksum Operating System CPU architecture Image Type Compression Type Image Name Actions: test CPU architecture and OS test checksum (optional) if compressed, uncompress copy to load address prepare boot arguments start at entry point

Image Types Standalone Programs OS Kernel Images RAMDisk Images 3/25/2017 Image Types Standalone Programs OS Kernel Images RAMDisk Images Multi-File Images Firmware Images Script files Standalone Programs Directly runnable in the environment provided by U-Boot; it is expected that you can continue to work in U-Boot after return from the Standalone Program. OS Kernel Images Usually images of some Embedded OS which will take over control completely. Usually these programs will install their own set of exception handlers, device drivers, set up the MMU, etc. RAMDisk Images Data blocks, and their parameters (address, size) are passed to an OS kernel that is being started. Multi-File Images Contain several images, typically an OS (Linux) kernel image and one or more data images like RAMDisks. This construct is useful for instance when you want to boot over the network using BOOTP etc., where the boot server provides just a single image file, but you want to get for instance an OS kernel and a RAMDisk image. Firmware Images Binary images containing firmware (like U-Boot or FPGA images) which usually will be programmed to flash memory. Script files Command sequences that will be executed by U-Boot's command interpreter; this feature is especially useful when you configure U-Boot to use a real shell (hush) as command interpreter.

Configuring U-Boot Configuration depends on the combination of board and CPU type; all such information is kept in a configuration file "include/configs/<board_name>.h". Example: For a STAMP board, all configuration settings are in "include/configs/stamp.h". For all supported boards there are ready-to-use default configurations available; just type "make <board_name>_config". Example: For the STAMP board type: cd u-boot make stamp_config For configuration details, check the U-Boot README and the Wiki – docs.blackfin.uclinux.org

Building U-Boot (1/2) Building U-Boot has been tested in x86 cross environments (running RedHat 6.x and 7.x Linux, SuSE 9.0 and 9.1 Linux on x86). It is assumed that you have the GNU cross compiling tools available in your path and named with a prefix of “bfin-elf". If this is not the case, you must change the definition of CROSS_COMPILE in Makefile.

Building U-Boot (2/2) U-Boot is intended to be simple to build. After installing the sources you must configure U-Boot for one specific board type. This is done by typing: cd u-boot make clean; make mrproper make stamp_config make all You should get some working U-Boot images ready for download to / installation on your system: "u-boot.bin" is a raw binary image "u-boot" is an image in ELF binary format "u-boot.srec" is in Motorola S-Record format

U-Boot Source Code Official U-boot Source Code is at: 3/25/2017 U-Boot Source Code Official U-boot Source Code is at: http://sourceforge.net/projects/u-boot Unofficial Blackfin Branch is at: http://blackfin.uclinux.org/projects/uboot533 U-Boot uses a 3 level version number containing a version, a sub-version, and a patchlevel "U-Boot-2.34.5" means: version "2", sub-version "34", and patchlevel "4". The patchlevel is used to indicate certain stages of development between released versions, i. e. officially released versions of U-Boot will always have a patchlevel of "0". Location of Uboot source code…

More U-Boot information The U-Boot project is hosted at Sourceforge: http://sourceforge.net/projects/u-boot There is a pretty active u-boot-users mailing list. The Mailing list archive can be viewed at sourceforge.net http://lists.sourceforge.net/lists/listinfo/u-boot-users/ The DENX U-Boot and Linux Guide is a Wiki based documentation documenting U-Boot and its interaction with Linux. It can be viewed (and improved) at www.denx.de. The whole DULG web packed into a single HTML page or a PDF file is also available (PowerPC is the example) The current README file can be viewed through viewcvs at sourceforge.net

Backup slides

Das U-Boot Introduction Porting Guide Directory Structure Material in this presentation is taken from the project README file, and from http://www.denx.de/twiki/bin/view/UBootdoc/Presentation and http://www.denx.de/twiki/bin/view/DULG/Manual

Supported Platforms Architecture Processor Number of Boards PPC 5xx 2   5xxx 6 8xx 71 824x 15 826x 26 85xx 3 7xx/74xx 11 4xx 38 ARM StrongARM 5 ARM720T ARM92xT Architecture Processor Number of Boards ARM (cont) S3C44B0 1   AT91RM9200 XScale 8 x86 SC520 2 m68k Coldfire MIPS32 4Kc Au1x00 3 MIPS64 5Kc NIOS32 Microblaze Blackfin BF533/BF535

Das U-boot Design Principles Easy to port to new architectures, new processors, and new boards Easy to debug: serial console output as soon as possible · Features and commands configurable · As small as possible · As reliable as possible

Image Support Although U-Boot can support any OS or standalone application, the main focus has always been on Linux during the design of U-Boot. U-Boot includes many features that so far have been part of some special "boot loader" code within the Linux kernel. Also, any "initrd" images to be used are no longer part of one big Linux image; instead, kernel and "initrd" are separate images.

U-Boot Basic Command Set (1/4) Information Commands bdinfo - print Board Info structure ¨ coninfo - print console devices and informations flinfo - print FLASH memory information iminfo - print header information for application image imls - list all images found in flash help - print online help Memory Commands base - print or set address offset crc32 - checksum calculation cmp - memory compare cp - memory copy md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nm - memory modify (constant address) loop - infinite loop on address range Flash Memory Commands cp - memory copy (program flash) flinfo - print FLASH memory information erase - erase FLASH memory protect - enable or disable FLASH write protection Execution Control Commands autoscr - run script from memory bootm - boot application image from memory bootelf - Boot from an ELF image in memory bootvx - Boot vxWorks from an ELF image go - start application at address 'addr'

U-Boot Basic Command Set (2/4) Network Commands bootp - boot image via network using BOOTP/TFTP protocol cdp - Perform Cisco Discovery Protocol network configuration dhcp - invoke DHCP client to obtain IP/boot params loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line nfs - boot image via network using NFS protocol ping - send ICMP ECHO_REQUEST to network host rarpboot- boot image via network using RARP/TFTP protocol tftpboot- boot image via network using TFTP protocol Environment Variables Commands printenv- print environment variables saveenv - save environment variables to persistent storage askenv - get environment variables from stdin setenv - set environment variables run - run commands in an environment variable bootd - boot default, i.e., run 'bootcmd'

U-Boot Basic Command Set (3/4) Filesystem Support (FAT, cramfs, JFFS2, Reiser) chpart - change active partition fsinfo - print information about filesystems fsload - load binary file from a filesystem image ls - list files in a directory (default /) fatinfo - print information about filesystem fatls - list files in a directory (default /) fatload - load binary file from a dos filesystem nand - NAND flash sub-system reiserls- list files in a directory (default /) reiserload- load binary file from a Reiser filesystem Special Commands i2c - I2C sub-system doc - Disk-On-Chip sub-system dtt - Digital Thermometer and Themostat eeprom - EEPROM sub-system fpga - FPGA sub-system ide - IDE sub-system kgdb - enter gdb remote debug mode diskboot- boot from IDE device icache - enable or disable instruction cache dcache - enable or disable data cache diag - perform board diagnostics (POST code) log - manipulate logbuffer pci - list and access PCI Configuraton Space regdump - register dump commands usb - USB sub-system sspi - SPI utility commands

U-Boot Basic Command Set (4/4) Miscellaneous Commands bmp - manipulate BMP image data ¨ date - get/set/reset date & time ¨ echo - echo args to console ¨ exit - exit script ¨ kbd - read keyboard status ¨ in - read data from an IO port ¨ out - write datum to IO port ¨ reset - Perform RESET of the CPU ¨ sleep - delay execution for some time ¨ test - minimal test like /bin/sh ¨ version - print monitor version ¨ wd - check and set watchdog ¨ ? - alias for 'help' ¨