(cc Andy)
On Wed, 21 Dec 2022 at 11:54, Markuss Broks <markuss.broks@xxxxxxxxx> wrote:
Make the EFI earlycon driver be suitable for any linear framebuffers.The reason that this driver is disabled on ARM is because the struct
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.
screen_info is not populated early enough, as it is retrieved from a
UEFI configuration table.
- Markuss
early_ioremap() works fine on ARM as long as they mapping is torn down
before paging_init()
EFI early"This patch also changes ..." is usually a strong hint to self that
console was disabled on IA64 previously because of missing early_memremap_prot,
and this is inherited to this driver.
This patch also changes
the patches need to be split up.
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
- 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).
Markuss Broks (3):
drivers: serial: earlycon: Pass device-tree node
efi: earlycon: move to video/console to prepare for changes
efi: earlycon: Add support for generic framebuffers
.../admin-guide/kernel-parameters.txt | 12 +-
MAINTAINERS | 5 +
drivers/firmware/efi/Kconfig | 7 +-
drivers/firmware/efi/Makefile | 1 -
drivers/firmware/efi/earlycon.c | 246 --------------
drivers/tty/serial/earlycon.c | 3 +
drivers/video/console/Kconfig | 11 +
drivers/video/console/Makefile | 1 +
drivers/video/console/earlycon.c | 305 ++++++++++++++++++
include/linux/serial_core.h | 1 +
10 files changed, 336 insertions(+), 256 deletions(-)
delete mode 100644 drivers/firmware/efi/earlycon.c
create mode 100644 drivers/video/console/earlycon.c
--
2.39.0