This is an old revision of the document!


Lab 01 - Firmware & Bootloaders

Objectives

  • Learn about Exception Levels & the boot process for ARMv8
  • Generate a Firmware Image Package (FIP) with U-boot & Trusted Firmware-A
  • Load the FIP onto an i.MX8M board via the Serial Download Protocol

Contents

Tasks

Lecture

Before beginning the tasks, please check out the lecture slides & notes here.

Tasks

Our aim for this lab is to better understand the boot process and the role of each component making up the firmware of an ARM device.

For this, we will be using a TechNexion PICO-PI-IMX8M featuring a NXP i.MX8M Quad ARM Cortex-A53 + M4 SoC with 2GB DRAM.

The following tasks will walk you through configuring and compiling the whole boot package containing the Secondary Program Loader (BL2) with various firmware binaries embedded within, the ARM Trusted Firmware (BL31) and, of course, the normal OS bootloader (BL33).

When everything is ready, you'll get to fire up the board, upload the firmware image package using NXP's specific serial boot protocol and play with it!

A precompiled kernel and Linux will also be made available for you to fully test the goodies! Don't worry, you'll get to build them from scratch next time ;)

Suggestion #1: After manually solving each task, automate the steps you've taken by writing a Makefile. Chances are that you're going to have to rebuild things (at least partially) dozens of times, and you'll also need to reuse your scripts usable for the next labs as well!

Suggestion #2: Since you won't be working alone, run a git init and add dependent repositories as submodules so that your partner's on the same page. Don't forget to add --depth 1 to the git submodule add in order to reduce the cloning tine and size of your subrepos.

ass/laboratoare/01.1689622534.txt.gz ยท Last modified: 2023/07/17 22:35 by radu.mantu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0