Switch to alternative printf
Currently we make use of libc (newlib) printf which takes a whole 22kB alone. Especially in the bootloader this kind of overhead hurts. Instead, we should switch to an alternative printf implementation (like this one, for example) to reduce this unnecessary bloat.
Other libc functions will probably pull in similar amounts of unneeded overhead ...