ECE 320 · Week 5
Modern Computer: Embedded Systems
An EFI boot entry: what it names, and what it does not set.
Week 5 of 10 · Das Frite
ECE 320 · Week 5 · In class
An EFI boot entry: what it names, and what it does not set.
- It names a file the firmware will start.
- It does not set a boot-time budget, a power limit, or the root filesystem's mount options.
- A boot-time budget is not this week's work.
ECE 320 · Week 5 · In class
Boot a generic arm64 image through UEFI from the bootloader in SPI NOR.
- Open one entry and name it.
- Name the kernel line and the init line on the log.
- A second entry stays in your notes and off the graded page.
ECE 320 · Week 5 · Lecture
UEFI: a standard hand-off
- UEFI is a firmware interface: any image that follows it can be started the same way on any board that provides it.
- That is why a generic arm64 image boots here with no board-specific boot script.
- On this board the bootloader in SPI NOR provides the interface.
- The firmware starts an EFI application from a FAT partition on the boot drive: the EFI system partition.
ECE 320 · Week 5 · Lecture
Boot entries are variables
| Variable | Holds |
|---|---|
Boot0000, Boot0001, … | one boot entry each |
BootOrder | the entry numbers, in the order to try them |
BootCurrent | the entry this boot used |
With no usable entry, the firmware tries the default path on removable media: \EFI\BOOT\BOOTAA64.EFI for 64-bit Arm.
ECE 320 · Week 5 · Lecture
Inside one entry
- A description: the human-readable name shown in a boot menu.
- A device path: which device, which partition, which file.
- Optional data passed to that file, which some loaders read as arguments.
- Attributes, such as whether the entry is active.
ECE 320 · Week 5 · Lecture
Finding the kernel and init in the log
- The firmware's lines end where the EFI application takes over; the kernel's lines follow.
- The kernel prints a banner beginning
Linux versionearly, with its version and build. - Init is the first user-space process; find the line where the kernel starts it, or init's own first line.
- A
quietkernel command line hides many kernel lines; the capture shows what was printed, not everything that ran.
ECE 320 · Week 5 · Lab
Lab
- Boot a generic arm64 image through UEFI from the bootloader in SPI NOR. Inspect one EFI boot entry.
- Name the kernel and init lines on the log. Do not submit a boot-time budget. Second pass: open a second entry, name it in your notes, and leave it off the graded page.
- Assemble the lab hand-in: The kernel and init lines named on the log, and the EFI boot entry you inspected.
ECE 320 · Week 5 · Lab
Hand in
The kernel and init lines named on the log, and the EFI boot entry you inspected.
ECE 320 · Week 5 · Homework
Homework
- Write what an EFI boot entry names and what it does not set.
ECE 320 · Week 5 · Homework
Turn in
A paragraph on what an EFI boot entry names and what it leaves unset.
ECE 320 · Week 5 · Read
Read
On the lab site: Module 7, UEFI, and Module 8, Linux boots. This week grades the named lines and the entry you opened.
ECE 320 · Week 5 · Next
Week 6
Three labels an overlay needs for a stock driver: the compatible string, the bus address, and the status.