1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Embedded Linux system development.

Slides:



Advertisements
Similar presentations
Genesis: from raw hardware to processes System booting sequence: how does a machine come into life.
Advertisements

Linux can be generally divided into four major components: 1. KERNEL – OS, ultimate boss The kernel is the core program that runs programs and manages.
Booting the Linux Kernel Dr. Michael L. Collard 1.
Linux on commodity network H/W Josh Parsons LUGOD talk August 15 th 2005.
Presented by: GREG UNGERER Lineo Inc 825 Stanley St Woolloongabba Qld 4102 Australia Ph: Building x86 Based.
Lab 4 Department of Computer Science and Information Engineering National Taiwan University Lab4 - Bootloader 2014/10/14/ 13 1.
Handheld TFTP Server with USB Andrew Pangborn Michael Nusinov RIT Computer Engineering – CE Design 03/20/2008.
1 Web Server Administration Chapter 3 Installing the Server.
WANs and Routers Routers. Router Description Specialized computer Like a general purpose PC, a router has:  CPU  Memory  System Bus Connecting Internal.
Chapter 3 Software Two major types of software
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://
Operating Systems Operating System
Linux Booting Procedure
Embedded Linux Systems Presented By: Kitrek Riese.
AT91RM9200 Boot strategies This training module describes the boot strategies on the AT91RM9200 including the internal Boot ROM and the U-Boot program.
Beagle Board Fast Boot Hui Chen Keji Ren Dec 10 th, 2009 EE382N-4 Project.
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.
CCNA 2 Week 1 Routers and WANs. Copyright © 2005 University of Bolton Welcome Back! CCNA 2 deals with routed networks You will learn how to configure.
Implementation of Embedded OS Lab3 Porting μC/OS-II.
Linux Kernel Programming (LKP). LKP New sub-course New sub-course We will learn together We will learn together Evaluation of this part of course will.
졸업 프로젝트 발표 1/74 Trinity Snapshot Boot 날 짜: 팀 명: Trinity
CIT 140: Introduction to ITSlide #1 CSC 140: Introduction to IT Operating Systems.
Chapter 3 Getting Started. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. Objectives To give an overview of the structure of a contemporary.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Free Electrons Introduction.
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 GRUB bootloader Michael.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Free Electrons Linux kernel.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Block filesystems Michael.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com SSH Thomas Petazzoni Free.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Embedded Linux Training System.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com TI OMAP 3530 power management.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Block filesystems Michael.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com The U-boot bootloader Michael.
The GRUB bootloader Michael Opdenacker Thomas Petazzoni Free Electrons
By Ganesan Alagu Ganesh Feb 26, 2008
The Boot Process The process of bringing the system from an "off" status to a running state is known as “booting”. The boot process takes place in four.
Homework Reading Machine Projects Labs
Ottawa Linux Symposium 2007
Operating System & Application Software
Using USB gadget drivers
Credits: 3 CIE: 50 Marks SEE:100 Marks Lab: Embedded and IOT Lab
Welcome to Linux Chap#1 Hanin Abdulrahman.
Basic Computer Hardware & Software
FIRMWARE PPT By:Hanh Nguyen.
Linux Operating System Architecture
Structure of Unix OS.
The blob bootloader Thomas Petazzoni Free Electrons
Drill Translate the following message:
Basic Computer Hardware and Software.
Embedded XINU and WRT54GL
Lecture 3 The Hardware.
Computer Science I CSC 135.
AT91RM9200 Boot strategies This training module describes the boot strategies on the AT91RM9200 including the internal Boot ROM and the U-Boot program.
Virtualization Techniques
Chapter 2: The Linux System Part 1
9.0 EMBEDDED SOFTWARE DEVELOPMENT TOOLS
The Boot Process The process of bringing the system from an "off" status to a running state is known as “booting”. The boot process takes place in four.
SUSE Linux Enterprise Desktop Administration
Chapter 2: Operating-System Structures
Embedded XINU and WRT54GL
Computer System Laboratory
Welcome to Linux Chap#1 Hanin Abdulrahman.
Welcome to Linux Chap#1.
Chapter 2: Operating-System Structures
The Boot Process The process of bringing the system from an "off" status to a running state is known as “booting”. The boot process takes place in four.
Computer Memory.
Presentation transcript:

1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Embedded Linux system development Bootloaders Thomas Petazzoni Michael Opdenacker Free Electrons © Copyright , Free Electrons. Creative Commons BY-SA 3.0 license Latest update: 9/26/2016, Document sources, updates and translations: Corrections, suggestions, contributions and translations are welcome!

2 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Bootloaders The bootloader is a piece of code responsible for Basic hardware initialization Loading of an application binary, usually an operating system kernel, from flash storage, from the network, or from another type of non-volatile storage. Possibly uncompression of the application binary Execution of the application Besides these basic functions, most bootloaders provide a shell with various commands implementing different operations. Loading of data from storage or network, memory inspection, hardware diagnostics and testing, etc.

3 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Bootloaders on x86 (1) The x86 processors are typically bundled on a board with a non- volatile memory containing a program, the BIOS. This program gets executed by the CPU after reset, and is responsible for basic hardware initialization and loading of a small piece of code from a non-volatile storage. This piece of code is usually the first 512 bytes of an hard disk This piece of code is usually a 1 st stage bootloader, which will load the full bootloader itself. The bootloader can then offer all its features. It typically understands filesystem formats so that the kernel file can be loaded directly from a normal filesystem.

4 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Bootloaders on x86 (2) GRUB, Grand Unified Bootloader, the most powerful one. Can read many filesystem formats to load the kernel image and the configuration, provides a powerful shell with various commands, can load kernel images over the network, etc. See our dedicated presentation for details: LILO, the original Linux Loader Syslinux, for network and removable media booting

5 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Bootloaders on embedded architectures (1) On embedded architectures, the low-level booting process is very CPU and board dependent Some boards have a NOR flash from which the CPU starts executing instructions after reset. In that case, the bootloader must directly be flashed inside the NOR at the proper location Some CPUs have an integrated bootcode in ROM that automatically loads a small portion of a DataFlash or NAND flash, usually to a static RAM. In that case, a minimal first stage bootloader is required, that will load the main bootloader (BootROM on AT91SAM CPUs, Steppingstone on S3C24xx CPUs, etc.). The bootloader on embedded architectures starts right after CPU reset, so it must initialize all the devices, including the memory controller in order to access the DRAM. As the boot process is very CPU and board dependent, refer to the vendor documentation.

6 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Bootloaders on embedded architectures (2) We will focus on the generic part, the main bootloader, offering the most important features. There are several open-source generic bootloaders. Here are the most popular ones: U-Boot, the universal bootloader by Denx The most used on ARM, also used on PPC, MIPS, x86, m68k, NIOS, etc. The de- facto standard nowadays. We will study it in detail. Barebox, a new architecture-neutral bootloader, written as a successor of U- Boot. Better design, better code, active development, but doesn't yet have as much hardware support as U-Boot. There are also a lot of other open-source or proprietary bootloaders, often architecture-specific RedBoot, Yaboot, PMON, etc.

7 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Embedded Linux system development Accessing a serial console

8 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Minicom (1) Definition: serial communication program Available in all GNU / Linux distributions Capabilities (all through a serial link): Serial console to a remote Unix system File transfer Modem control and dial-up Serial port configuration

9 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Minicom (2) Start by running minicom -s to setup Minicom A bit austere at first glance, but quickly gets friendly (see the labs for details)

10 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Other terminal emulators GTKTerm: Graphical. Less powerful than Minicom, but with a simpler and more attractive interface. Available in recent distros. CuteCom: Another graphical and user-friendly terminal emulator. Available in recent distros. picocom: Tiny terminal emulator (20K), can be used in embedded systems. GNU Screen: can also be used on a serial console: screen Example: screen /dev/ttyS