The blob bootloader Thomas Petazzoni Free Electrons

Slides:



Advertisements
Similar presentations
Free Beer and Free Speech Thomas Krichel
Advertisements

Intel Do-It-Yourself Challenge Networking
Intel Do-It-Yourself Challenge Lab 5: Controlling Galileo from a webpage Nicolas Vailliet
Intel Do-It-Yourself Challenge node.js
Internet of Things with Intel Edison Getting started with your board Pierre Collet Intel.
Internet of Things with Intel Edison GPIO on Edison
12. Common Errors, a few Puzzles. © O. Nierstrasz P2 — Common Errors, a few Puzzles 12.2 Common Errors, a few Puzzles Sources  Cay Horstmann, Computing.
Internet of Things with Intel Edison Presentation Paul Guermonprez Intel Software
Object-Oriented Reengineering Patterns and Techniques Prof. O. Nierstrasz Prof. S. Ducasse T.
ESE Einführung in Software Engineering N. XXX Prof. O. Nierstrasz Fall Semester 2009.
© Oscar Nierstrasz ST — Smalltalk Basics 2.1 Change sets  Make sure your changes are logged to a new change set.
Metamodeling Seminar X. CHAPTER Prof. O. Nierstrasz Spring Semester 2008.
© Oscar Nierstrasz ST — Smalltalk Basics 2.1 Change sets  Make sure your changes are logged to a new change set.
ESE Einführung in Software Engineering X. CHAPTER Prof. O. Nierstrasz Wintersemester 2005 / 2006.
N. XXX Prof. O. Nierstrasz Thanks to Jens Palsberg and Tony Hosking for their kind permission to reuse and adapt the CS132 and CS502 lecture notes.
Internet of Things with Intel Edison Led sensor lab
OORPT Object-Oriented Reengineering Patterns and Techniques X. CHAPTER Prof. O. Nierstrasz.
CP — Concurrent Programming X. CHAPTER Prof. O. Nierstrasz Wintersemester 2005 / 2006.
12. eToys. © O. Nierstrasz PS — eToys 12.2 Denotational Semantics Overview:  … References:  …
Intel Do-It-Yourself Challenge Hello World with the Arduino IDE Nicolas Vailliet Intel.
Intel Do-It-Yourself Challenge Lab 1: Intel Galileo’s Arduino side Nicolas Vailliet
1 Semester 2 Module 2 Introduction to Routers Yuda college of business James Chen
Shell and Flashing Images Commands and upgrades. RS-232 Driver chip – ST3232C Driver chip is ST3232C Provides electrical interface between UART port and.
Embedded Systems Principle of Debugger. Reference Materials kl.de/avr_projects/arm_projects/#winarmhttp://
1 uClinux course. 2 Author: D L Johnson Overview u Day 1 +Survey of embedded operating systems - why uclinux? +The uclinux environment - the directory.
Ch.2 – Introduction to Routers
May 10, 2012 Lloyd Moore, President/Owner. Quick Start Video Building Mobility 1.2 SDK Emulator Quirks Installing On A Device Summary Overview.
Internet of Things with Intel Edison Compiling and running Pierre Collet Intel Software.
Beagle Board Fast Boot Hui Chen Keji Ren Dec 10 th, 2009 EE382N-4 Project.
Intel Do-It-Yourself Challenge Wi-Fi Nicolas Vailliet Intel Software
Making MINT64OS Chan Seok Kang 2013/01/21. 2Computer Systems and Platforms Lab Content Introduction My Approach Encountered Problem Conclusion & Future.
Ch.2 – Introduction to Routers
1 uClinux course Day 4 of 5. 2 Author: D L Johnson CPU Architectures.
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.
C omputing Making binary relevant to programming An education collaboration: Langley Grammar School.
Design of Everyday Things Part 2: Useful Designs? Lecture /slide deck produced by Saul Greenberg, University of Calgary, Canada Images from:
Ch.2 – Introduction to Routers CCNA 2 version 3.0 Rick Graziani Cabrillo College.
CCNA2 Chapter 2 Cisco IOS Software. Cisco’s operating system is called Cisco Internetwork Operating System (IOS) IOS provides the following network services:
Digital Ecosystems supporting growth and SMEs 1st cluster meeting Results and commitments 1st cluster meeting Results and commitments.
DATE S. S.. Sandstone The sandstone carries out the following tasks: 1. Set up target platform environment, 2. Load a bootable image into memory, 3. Relinquish.
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)
WP1- Documentation Booting Petalinux from TFTP and using Network file system Section for developers Zynq 7020 R. Assiro.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Free Electrons Introduction.
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 GRUB bootloader Michael.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Scratchbox The Scratchbox.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com SSH Thomas Petazzoni Free.
1 © 2007 Mauro Morsiani Laboratorio di Sistemi Operativi Anno Accademico Software Development with uMPS Mauro Morsiani Copyright © 2007 Mauro.
1 Kernel development with VirtualBox © Copyright 2009, Marco Stornelli Creative Commons Attribution-ShareAlike 3.0 license 9/30/2016 Linux development.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com The U-boot bootloader Michael.
Managing a Cisco Devices Internetwork
The GRUB bootloader Michael Opdenacker Thomas Petazzoni Free Electrons
By Ganesan Alagu Ganesh Feb 26, 2008
bitcurator-access-webtools Quick Start Guide
Implementation of Embedded OS
Computer System Laboratory
Using USB gadget drivers
By Ganesan Alagu Ganesh Feb 21, 2008
EMBEDDED LINUX #2.
Porting U-boot Michael Opdenacker Free Electrons
Data Server S/W Upgrade Samsung Electronics Co., Ltd.
Software Development with uMPS
Embedded Linux Conference - April 2009
AT91RM9200 Boot strategies This training module describes the boot strategies on the AT91RM9200 including the internal Boot ROM and the U-Boot program.
FOTW Worksheet Slides Christopher Penn, Financial Aid Podcast Student Loan Network.
Chapter 2: The Linux System Part 1
Lecture9: Embedded Network Operating System: cisco IOS
Computer System Laboratory
Lecture9: Embedded Network Operating System: cisco IOS
Presentation transcript:

The blob bootloader Thomas Petazzoni Free Electrons

Rights to copy © Copyright 2008-2009, Free Electrons feedback@free-electrons.com Document sources, updates and translations: http://free-electrons.com/docs/blob Corrections, suggestions, contributions and translations are welcome! Latest update: 9/8/2018 Attribution – ShareAlike 3.0 You are free to copy, distribute, display, and perform the work to make derivative works to make commercial use of the work Under the following conditions Attribution. You must give the original author credit. Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. For any reuse or distribution, you must make clear to others the license terms of this work. Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above. License text: http://creativecommons.org/licenses/by-sa/3.0/legalcode

Blob bootloader Blob, Boot Loader Object, bootloader for StrongARM based platforms http://www.lartmaker.nl/lartware/blob/ Written by Jan-Derk Bakker and Erik Mouw, GPL-licensed Simple bootloader: < 15k lines of code, including the code for all supported boards Inactive mainline Latest stable release in august 2001 Latest development version in january 2002 Last serious activity in the CVS in 2004, few commits in 2006

Supported boads Shannon (aka Tuxscreen) Vercel UD-1 Jornada 720 Support for other boards can be added fairly easily Non-mainlined ports Intel Lubbock Motorola Linux phones, with download over USB Others ? Few boards supported in the released version Assabet Assabet+Neponset LART iPaq System3 Badge4 NESA PLEB

Features Initialize hardware Download a kernel and ramdisk through the serial line Write kernel and ramdisk to Flash Boot the kernel Determine the memory layout Give a command line to the kernel

Using Blob On boot, by default, Blob initializes the hardware, loads and boots the kernel. Messages are available through the serial port, 9600 bauds, 8 bits, no parity, 1 stop bit To access the command line, press any key during the ten seconds break before kernel boot blob version 2.0.3 [...] Memory Map: 0x08000000 @ 0xC0000000 (8MB) 0x08000000 @ 0xC9000000 (8MB) Loading blob from flash . done Loading kernel from flash ....... done Loading ramdisk from flash ............... done Autoboot in progress, press any key to stop ... Starting kernel ... Uncompressing Linux...done.

Using Blob : Commands reload { blob | kernel | ramdisk } Reload the blob, kernel or ramdisk from Flash to RAM reset Reset the terminal speed Set the download speed Status Get status information boot [kernel options] Boot the kernel download { blob | kernel | ramdisk } Download blob, kernel or ramdisk from serial to RAM flash { blob | kernel | ramdisk } Write blob, kernel or ramdisk from RAM to Flash Reblob Restart blob Reboot Restart the system

Using Blob: download (1) Downloading blob, the kernel or ramdisk is done through the same serial line as the console When starting the download command, the speed is set to 115200 bauds and blob waits for an uuencoded version of blob, kernel or ramdisk On blob side blob> download kernel Switching to 115200 baud You have 60 seconds to switch your terminal emulator to the same speed and start downloading. After that blob will switch back to 9600 baud.

Using Blob: download (2) On the host side, change the speed to 115200 bauds and either: Upload the file with Minicom using the ASCII method In another shell, run uuencode zImage zImage > /dev/ttySx And the end of the upload, on blob side : (Please switch your terminal emulator back to 9600 baud) Received 65536 (0x00010000) bytes. On the host side, switch back the speed to 9600 bauds

Compiling Blob Requires a cross-compiler and a configured Linux kernel source tree export CC=/path/to/arm-linux-gcc export OBJCOPY=/path/to/arm-linux-objcopy ./configure --with-linux-prefix=/path/to/linux/sources/ --with-board=boardname arm-unknown-linux-gnu make Two versions src/blob, the bootloader that can directly be booted src/blob-chain, the bootloader that can be loaded from another bootloader