On Sat, 6 Aug 2022 at 18:34, Markuss Broks <markuss.broks@xxxxxxxxx> wrote: > > Make the EFI earlycon driver be suitable for any linear framebuffers. > This should be helpful for early porting of boards with no other means of > output, like smartphones/tablets. There seems to be an issue with early_ioremap > function on ARM32, but I am unable to find the exact cause. It appears the mappings > returned by it are somehow incorrect, thus the driver is disabled on ARM. EFI early > console was disabled on IA64 previously because of missing early_memremap_prot, > and this is inherited to this driver. > > This patch also changes behavior on EFI systems, by selecting the mapping type > based on if the framebuffer region intersects with system RAM. If it does, it's > common sense that it should be in RAM as a whole, and so the system RAM mapping is > used. It was tested to be working on my PC (Intel Z490 platform), as well as several > ARM64 boards (Samsung Galaxy S9 (Exynos), iPad Air 2, Xiaomi Mi Pad 4, ...). > > Markuss Broks (2): > drivers: serial: earlycon: Pass device-tree node > efi: earlycon: Add support for generic framebuffers and move to fbdev > subsystem > > > v1 -> v2: > > - a new patch correcting serial/earlycon.c argument name to "offset" instead > of "node" > - move IA64 exclusion from EFI earlycon Kconfig to earlycon driver Kconfig > (IA64 has no early_memremap_prot) > - move driver from fbdev to console subsystem > - select EFI earlycon by default Wasn't EFI earlycon already enabled by default? > - fetch stride manually from device-tree, as on some devices it seems stride > doesn't match the horizontal resolution * bpp. > - use saner format (e.g. 1920x1080x32 instead of 1920,1080,32). > > .../admin-guide/kernel-parameters.txt | 12 +- > MAINTAINERS | 5 + > drivers/firmware/efi/Kconfig | 6 +- > drivers/firmware/efi/Makefile | 1 - > drivers/firmware/efi/earlycon.c | 246 -------------- > drivers/tty/serial/earlycon.c | 3 + > drivers/video/fbdev/Kconfig | 11 + > drivers/video/fbdev/Makefile | 1 + > drivers/video/fbdev/earlycon.c | 301 ++++++++++++++++++ > include/linux/serial_core.h | 1 + > 10 files changed, 331 insertions(+), 256 deletions(-) > delete mode 100644 drivers/firmware/efi/earlycon.c > create mode 100644 drivers/video/fbdev/earlycon.c > > -- > 2.37.0 >