Here's the link to the course, which was offerend last month. I tried to contact the professor for the course to give them a free copy of the shell book, but no response. The course description says:
Every embedded system, from game consoles and cell phones to medical and networking equipment, requires boot loaders to initialize the hardware, perform initial diagnostics, setup the environment and load the target operating system. Some boot loaders, like U-BOOT, are simple. Others, such as BIOS (Basic Input/Output System) and UEFI (Unified Extensible Firmware Interface), are modular and extensible. In this course, you'll learn about BIOS and UEFI, the two most common boot loaders, and get a brief overview of U-BOOT.
The course starts with BIOS history, architecture and the evolution of BIOS over the past 20-plus years. Students learn about BIOS device enumeration and configuration. The course covers BIOS interfaces including software interrupts, option ROM interface, and boot mechanism. The BIOS section ends with option ROM limitations, and a brief introduction to ACPI and SMBIOS.
In the UEFI section of the course, students learn about UEFI history, architecture and services provided by UEFI. Students also learn the UEFI driver architecture and how to write UEFI drivers and applications. The course concludes with UEFI debugging methodologies and briefly addresses U-BOOT.
This course includes hands-on programming and homework assignments. By the end of the course, students have a broad understanding of operation and debugging techniques for various boot loaders. They are also able to identify various characteristics of the boot process and diagnose hardware issues