CSE 451: Resources

Textbooks

Lecture Readings

Unix

x86

GCC Inline Assembly Language

PC Hardware Programming

PC Bootstrap

  • Minimal Intel Architecture Boot Loader. Intel’s description of a minimal boot loader for Intel architectures. (PDF)

  • “El Torito” Bootable CD-ROM Format Specification. Defines the bootable CD-ROM format used by BIOS-based systems, by Curtis E. Stevens and Stan Merkin. (PDF)

  • The Multiboot Specification. A standard that allows boot loaders to load operating systems in a uniform way, by Yoshinori K. Okuji, Bryan Ford, Erich Stefan Boleyn, and Kunihiro Ishiguro. (PDF)

  • Unified Extensible Firmware Interface (UEFI) Specification, Version 2.5. The UEFI firmware specification published by the UEFI Forum. (PDF)

IDE Hard Drive Controller (boot/main.c)

  • AT Attachment with Packet Interface – 6. ANSI specification describing the ATA/ATAPI storage interface. (PDF)

VGA Display (kern/console.c)

  • VESA BIOS Extension (VBE) 3.0. Defines a standard interface for graphics modes and framebuffer access. (PDF)

Keyboard and Mouse (kern/console.c)

16550 UART Serial Port (kern/console.c)

IEEE 1284 Parallel Port (kern/console.c)

ACPI (kern/acpi.c, kern/e820.c)

  • Advanced Configuration and Power Interface (ACPI) Specification, Version 6.0. Defines hardware configuration and power management interfaces, published by the UEFI Forum. (PDF)

APIC (kern/lapic.c, kern/ioapic.c)

  • 82093AA I/O Advanced Programmable Interrupt Controller. Intel documentation for the I/O APIC hardware. (PDF)

  • Intel 64 Architecture x2APIC Specification. Specification for the x2APIC interrupt architecture extension. (PDF)

PIC (kern/picirq.c)

  • 8259A Programmable Interrupt Controller. Intel documentation for the legacy PIC hardware. (PDF)

AHCI (fs/ahci.c)

  • Serial ATA Advanced Host Controller Interface (AHCI). Intel specification for SATA host controller programming. (PDF)

Timing

  • IA-PC HPET (High Precision Event Timers) Specification. Intel specification describing high-resolution hardware timers. (PDF)

  • 82C54 – CMOS Programmable Interval Timer. Intel documentation for the programmable interval timer hardware. (PDF)