Coreboot: the open source BIOS. Lennart Benschop Presentation at T-DOSE 2011 Sunday 2011-11-06 10:00.

Slides:



Advertisements
Similar presentations
© 2003, Cisco Systems, Inc. All rights reserved..
Advertisements

Routers and Routing Basics WANs And Routers. Intro To WANs.
Genesis: from raw hardware to processes System booting sequence: how does a machine come into life.
9.0 EMBEDDED SOFTWARE DEVELOPMENT TOOLS 9.1 Introduction Application programs are typically developed, compiled, and run on host system Embedded programs.
Linux Booting Procedure
Linux on commodity network H/W Josh Parsons LUGOD talk August 15 th 2005.
Operating Systems High Level View Chapter 1,2. Who is the User? End Users Application Programmers System Programmers Administrators.
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
Wednesday, June 07, 2006 “Unix is user friendly … it’s just picky about it’s friends”. - Anonymous.
Porting Plan 9 to the PowerPC Architecture Ian Friedman Ajay Surie Adam Wolbach.
System initialisation
WXES2106 Network Technology Semester /2005 Chapter 5 Routers CCNA2: Module 1 and 2.
Embedded Real-Time Systems Design Selecting memory.
1-1 Embedded Software Development Tools and Processes Hardware & Software Hardware – Host development system Software – Compilers, simulators etc. Target.
CCNA 2 v3.1 Module 2.
FreeBSD/arm on the Atmel AT91RM9200 Warner Losh Timing Solutions, Inc BSDcan 2006 May 12, 2006 Experiences.
1 Semester 2 Module 2 Introduction to Routers Yuda college of business James Chen
© 2004 Cisco Systems, Inc. All rights reserved. Managing Your Network Environment Managing Router Startup and Configuration INTRO v2.0—9-1.
What is Router? Router is a device which makes communication between two or more networks present in different geographical locations. Routers are data.
Operating Systems Operating System
CCNA2 Chapter 1 Wide Area Networks and Routers. WAN is a data communications network that operates beyond a LAN’s geographic scope. Users subscribe to.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Chapter 5 Basic Input/Output System (BIOS)
Basic Input Output System
Slides created by: Professor Ian G. Harris Test and Debugging  Controllability and observability are required Controllability Ability to control sources.
Embedded Linux Systems Presented By: Kitrek Riese.
BIOS. Accessing System BIOS You can use the System Setup utility to change variable BIOS information, such as the type of hard drive you have installed.
Three fundamental concepts in computer security: Reference Monitors: An access control concept that refers to an abstract machine that mediates all accesses.
From UEFI Shell to Linux - UEFI Linux BootLoader Zhang Rui Software Engineer Sep 28 th 2011.
Microcontroller Presented by Hasnain Heickal (07), Sabbir Ahmed(08) and Zakia Afroze Abedin(19)
Porting Operating Systems Phan Duy Hùng (PhD) ES Lecturer – Hanoi FPT University.
Firmware Storage : Technical Overview Copyright © Intel Corporation Intel Corporation Software and Services Group.
J. Christiansen, CERN - EP/MIC
1. 2 Router is a device which makes communication between two or more networks present in different geographical locations. Routers are data forwarding.
RL78 Code & Dataflash.
Boot Sequence, Internal Component & Cisco 3 Layer Model 1.
Introduction to Routers
Hands-On Virtual Computing
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
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)
1 © 2004, Cisco Systems, Inc. All rights reserved. CCNA 2 v3.1 Module 2 Introduction to Routers.
Embedded Linux By Gus Wirth. What makes it embedded? ● Rather nebulous, line has blurred over the years ● Limited purpose ● Small resources compared to.
Virtualization Neependra Khare
Introduction to Operating Systems Concepts
Homework Reading Machine Projects Labs
Chapter 6: BIOS.
Operating System Review
Lec 3: Introduction to Switched Networks
ECE354 Embedded Systems Introduction C Andras Moritz.
Course on Embedded Systems Introduction
Chapter 2: Operating-System Structures
Operating System Structure
Lesson Objectives Aims Key Words
FIRMWARE PPT By:Hanh Nguyen.
Virtualization overview
Introduction to Computers
Chapter 2: Introduction to Switched Networks
Chapter 2: Introduction to Switched Networks
Operating System Review
Section 1: Introduction to Simics
Chapter 3: Operating-System Structures
9.0 EMBEDDED SOFTWARE DEVELOPMENT TOOLS
BIOS Chapter 6.
Outline Chapter 2 (cont) OS Design OS structure
Lecture9: Embedded Network Operating System: cisco IOS
TPM, UEFI, Trusted Boot, Secure Boot
System calls….. C-program->POSIX call
資訊網路專題 Router & Practice
In Today’s Class.. General Kernel Responsibilities Kernel Organization
Lecture9: Embedded Network Operating System: cisco IOS
Presentation transcript:

Coreboot: the open source BIOS. Lennart Benschop Presentation at T-DOSE 2011 Sunday :00

Overview ● Inroduction ● Why Coreboot? ● Architecture ● Practical matters ● Demo (using virtual machine) ● Questions

Introduction ● What is Coreboot? ● - Free firmware for the x86 architecture, alternative to BIOS ● When was the project started? ● - In 1999, at Los Alamos National Laboratory as LinuxBIOS ● Why? ● - Enable unattended booting of cluster nodes

Why Coreboot? ● Applications: ● - Embedded x86 systems ● - Rackmounted servers and clusters ● - Normal PCs

Why for embedded systems? ● Embedded x86 applications: ● - media centers, smart TVs, PVRs ● - Test & measurement, logic analyzers etc. ● - Industrial control ● - Ticket vending machines, voting machines, photo kiosks etc.

But Why? ● No royalty payment (only relevant for high volume products) ● Fast booting ● Reliable untattnded booting

Why for servers and clusters? ● Reliable unattended booting ● - No keyboard ● - Do not depend on CMOS parameters ● - Control of which device to boot from ● - Independent of local harddisks, boot using network protocols

Why for normal PCs? ● Because we can ● Continued updates/bug fixes ● Stay in control of your own hardware (secure boot)

Architecture ● Payload ● Coreboot proper ● - RAM stage (running from RAM) ● - ROM stage (running from ROM) ● - C part ● - Assembly part (boot block)

Payloads ● Hardware independent (comparable to Linux kernel) ● Types of payload ● - SeaBIOS (implementation of legacy BIOS) ● - Linux kernel ● - Boot loader (FILO) ● - Application (game, diagnostics). ● - In future: Tiano Core (UEFI implementation)

PC Architecture

Startup Sequence ● Switch to protected mode (assembly) ● Enable Cache as RAM (assembly) ● Initialize RAM (C, ROM stage) ● - read SPD ROMs ● - configure memory module in Northbridge ● Initialize PCI devices (C, RAM stage) ● Run option ROMs ● Start payload

CBFS ● Read-only file system in ROM ● Named entries (e.g. fallback/ramstage) ● Entries can be compressed (LZMA) ● Stages, payload, option ROMs, config files

Coding ● Almost completely in C ● Almost completely in 32-bit protected mode ● - Real mode parts restricted to: ● - 16 instructions at startup ● - Option ROMs ● - SeaBIOS (has to provide legacy interface)

Practical Matters ● Obtaining sources ● - Git repository ● Compiling ● Flashing ● Debugging ● Development

Compiling ● Cross-compiler required in most cases ● Configuring (make menuconfig) ● Compile payload separately (for some payloads) ● Make ● Add files to ROM image (cbfstool)

Flashing ● Project flashrom at coreboot.org ● - Allows flashing under Linux ● Need to recover ● - PROM programmer (expensive) ● - Dedicated programmer for one chip (cheap) ● - Hot swapping (dangerous) ● - BIOS Savior ● - ROM emulator

Debugging ● POST codes on port (0x80) easy on ISA, harder on PCI. ● Serial output ● EHCI debug port ● Debug payloads and higher layers under QEMU ● AMD SimNow ● ROM emulator ● In-circuit emulator (expensive)

Development ● Payload develment ● - Libpayload as library for payloads ● - Hardware independent (perfectly fine on QEMU) ● Porting to new hardware (more challenging) ● - Documentatiion hard to obtain ● - Very hardware dependent ● - Can only be debugged on real hardware

Resources ● Website ● Mailing lists ● Git repository ● Related projects: ● - flashrom ● - SeaBIOS