Re: [PATCH v2 2/2] x86/efi: Add EFI framebuffer earlyprintk support

From: Ingo Molnar
Date: Sat Oct 12 2013 - 13:56:32 EST



* Matt Fleming <matt@xxxxxxxxxxxxxxxxx> wrote:

> From: Matt Fleming <matt.fleming@xxxxxxxxx>
>
> It's incredibly difficult to diagnose early EFI boot issues without
> special hardware because earlyprintk=vga doesn't work on EFI systems.
>
> Add support for writing to the EFI framebuffer, via earlyprintk=efi,
> which will actually give users a chance of providing debug output.
>
> Cc: H. Peter Anvin <hpa@xxxxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: Peter Jones <pjones@xxxxxxxxxx>
> Signed-off-by: Matt Fleming <matt.fleming@xxxxxxxxx>
>
> Documentation/kernel-parameters.txt | 8 +-
> arch/x86/Kconfig.debug | 9 ++
> arch/x86/include/asm/efi.h | 2 +
> arch/x86/kernel/early_printk.c | 6 ++
> arch/x86/platform/efi/Makefile | 1 +
> arch/x86/platform/efi/early_printk.c | 191 +++++++++++++++++++++++++++++++++++
> 6 files changed, 214 insertions(+), 3 deletions(-)
> create mode 100644 arch/x86/platform/efi/early_printk.c

Looks really nice now!

Reviewed-by: Ingo Molnar <mingo@xxxxxxxxxx>

One detail:

> +static void early_efi_write_char(u32 *dst, unsigned char c, unsigned int h)
> +{
> + const u32 color_black = 0x00000000;
> + const u32 color_grey = 0x00aaaaaa;

I still think this should be white - that should be more visible than
grey, especially in brightly lit places. (And I'm really sorry about nerds
in the basement getting eye damage.)

Also, what is the highest byte typically, can that ever be part of
multiple framebuffers and can it mean an alpha channel? If yes then '0x00'
(read: fully translucent) might not be the best of choices for console
output. In that case -1 (0xffffffff) would work in a natural way.

(If it's reserved bits then it has to be all zeroes.)

Thanks,

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/