Dmian ATM, the different platforms behave differently:
- Allwinner H3 has a framebuffer driver, but the console is on the serial port only. You therefore see a blinking cursor during bootup, but no messages.
- RPi4 has a framebuffer driver as well, and that one is actually used as the console and therefore shows kernel messages.
- PC has the console on VGA and, at some point, switches to a DRM-based framebuffer console (IIRC), which display the kernel messages.
Silencing the messages is easy, and I'm going to do that as soon as I trust this stuff to work on most supported devices. (NB: For PC, that probably means never.)
Showing a splash screen at the right time and for the right duration is considerably more difficult. On the SBCs, the control of the display is passed from the boot loader to the framebuffer console, and then to the DRM application (Engine BASIC). On the PC, it goes from the boot loader to the VGA console driver, to the framebuffer console and then to the DRM application. By the time anything can be displayed on the screen from Linux userspace that actually stays there and doesn't get wiped out immediately by the next stage, the boot process is basically done.
The way to display something that stays there until the application (Engine BASIC) starts is to disable all the stuff that uses the display without being asked (VGA console, framebuffer console), and have the boot loader show a splash screen. I already don't like that simply because each of the three existing flavors has a different boot loader.
Apart from that, I am not at all comfortable with the idea of disabling the standard console drivers. The framebuffer device might be required by legacy applications people might want to run on their BE systems, and not having an on-screen console means there is no way to interact with the system or even to indicate an error if something goes wrong on the OS level.
To sum it up, showing a splash screen is something that needs to be done on a per-platform basis and it would either be imperfect (showing up only during some parts of the boot process) or require removal of functionality from the kernel. I don't like it.