- Mastering Embedded Linux Programming
- Chris Simmonds
- 290字
- 2021-07-30 09:45:01
Booting with UEFI firmware
Most embedded PC designs and some ARM designs have firmware based on the Universal Extensible Firmware Interface (UEFI) standard, see the official website at described in the preceding section:
Phase 1: The processor loads the UEFI boot manager firmware from flash memory. In some designs, it is loaded directly from NOR flash memory, in others there is ROM code on-chip which loads the boot manager from SPI flash memory. The boot manager is roughly equivalent to the SPL, but may allow user interaction through a text-based or graphical interface.
Phase 2: The boot manager loads the boot firmware from the EFI System Partition (ESP) or a hard disk or SSD, or from a network server via PXE boot. If loading from a local disk drive, the EXP is identified by a well-known GUID value of C12A7328-F81F-11D2-BA4B-00A0C93EC93B. The partition should be formatted using the FAT32 format. The third stage bootloader should be in a file named <efi_system_partition>/boot/boot<machine_type_short_name>.efi
.
For example, the file path to the loader on an x86_64 system is: /efi/boot/bootx64.efi
Phase 3: The TPL in this case has to be a bootloader that is capable of loading a Linux kernel and an optional RAM disk into memory. Common choices are:
- GRUB 2: This is the GNU Grand Unified Bootloader, version 2, and it is the most commonly used Linux loader on PC platforms. However, there is one controversy in that it is licensed under GPL v3, which may make it incompatible with secure booting since the license requires the boot keys to to be supplied with the code. The website is https://www.gnu.org/software/grub/.
- gummiboot: This is a simple UEFI-compatible bootloader which has since been integrated into systemd, and is licensed under LGPL v2.1 The website is https://wiki.archlinux.org/index.php/Systemd-boot.
- Python 3.7網(wǎng)絡(luò)爬蟲快速入門
- 數(shù)據(jù)庫原理及應(yīng)用(Access版)第3版
- Learning Docker
- Microsoft Dynamics 365 Extensions Cookbook
- HBase從入門到實戰(zhàn)
- 精通Scrapy網(wǎng)絡(luò)爬蟲
- Visual C
- Android底層接口與驅(qū)動開發(fā)技術(shù)詳解
- Python Data Analysis Cookbook
- Go語言精進之路:從新手到高手的編程思想、方法和技巧(1)
- 從零開始學Linux編程
- Solutions Architect's Handbook
- Learning Kotlin by building Android Applications
- 從零開始構(gòu)建深度前饋神經(jīng)網(wǎng)絡(luò):Python+TensorFlow 2.x
- 例說FPGA:可直接用于工程項目的第一手經(jīng)驗