SIGN IN SIGN UP

Buffer early log messages for future display (#936)

* The early logger can now be initialized without serial port
  output sinks, in which case it saves logged messages to
  an internal statically-sized memory buffer.

* This allows Theseus to preserve early log messages on
  some architectures like aarch64, where memory mgmt
  is required to access early I/O devices like serial ports.

* The early log buffer is then outputted after being
  re-initialized with actual serial port outputs.

* The early log will be truncated if too many messages
  are logged and there is insufficient space to buffer them.
  Currently the buffer is 16KiB on aarch64 and 0 on x86_64.

* Logger initialization functions are now infallible.

* Makefile: added `gdb_aarch64` command to make it easier
  to start GDB and connect it to Theseus on aarch64 QEMU.

---------

Co-authored-by: Kevin Boos <kevinaboos@gmail.com> 9b941bc435093585473c417b4138191b5dfc0828
K
kevinaboos committed
4292cf81f7bf2cee68586dd3bed994b89bbd57f9
Parent: 3928b90