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

From: Matt Fleming
Date: Mon Oct 14 2013 - 01:08:30 EST


On Sat, 12 Oct, at 07:56:15PM, Ingo Molnar wrote:
> > +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.)

The GOP part of the spec says that the top byte is reserved, and must be
set to zero, and looking at the efifb driver it disables transparency
support when allocating the color map,

int fb_alloc_cmap(struct fb_cmap *cmap, int len, int transp)

[...]

if ((err = fb_alloc_cmap(&info->cmap, 256, 0)) < 0) {
printk(KERN_ERR "efifb: cannot allocate colormap\n");
goto err_unmap;
}


--
Matt Fleming, Intel Open Source Technology Center
--
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/