Booting
The boot process is fairly simple:
- Perform a first pass over the devicetree, initialize the frame allocator with memory regions found from it.
- Perform a second pass over the devicetree, initializing interrupt controllers.
- Perform a third pass over the devicetree, initializing the rest of the devices.
- Print "Hello, world!" to all serial ports.
- Panic.