Thanks Eric Seppanen for the comments.


Each item on the list is marked as M (mandatory), R (recommended),
O (optional), A (architecture dependent, not needed on all systems),
C (chipset dependent)

Assembly startup:
M       Reset jump to start of LinuxBIOS
M       Ensure CPU is in sane state (e.g. Purge Instruction  Pipeline)
A       Put CPU into protected virtual memory mode
C       Do basic init so that DRAM will work
O       Enable serial port debugging print
O       Enable debugging prints to console graphics
O       Memory test
M       Set up C environment
M       Jump to C code

Hardware startup:
A       Configure Cache. Needed here for speed.
A       Processor-dependent steps that are required, e.g. microcode patch
M       Init C display variables. Required before printk()
M       Init malloc memory pool
O       Display processor internal details of value (e.g. intel cpuid)
O       Pick a PCI method if you need to init PCI
O       Size memory so you can tell Linux
A       Re-config the cache so that it caches all or memory
O       Configure PCI bus
A       Mainboard fixup
C       enabled extended NVRAM access
A       Handle extended machine state (e.g. MTRR)
O       Enable keyboard
O       Enable floppy
A       Enable tables that Linux uses on startup (e.g. SMPBLOCK)
O       Set up IRQ tables for Linux
R       Enable interrupts
O       Final Mainboard Fixup
A       Final  L2 Configure
M       Call non-hardware-dependent linuxbiosmain()

Kernel startup:
O       Banner
O       Check for keypress, requires that any keyboard setup have been done.
M       gunzip setup
M       gunzip
M       Linux parameter setup
(mistake! move me!)      APIC setup
M       Jump to Linux

Reply via email to