Re: efi/gop: do we need to check ConOut any more?

From: Ard Biesheuvel
Date: Fri Dec 13 2019 - 05:06:38 EST


On Thu, 12 Dec 2019 at 23:23, Arvind Sankar <nivedita@xxxxxxxxxxxx> wrote:
>
> Since commit 38cb5ef4473c ("X86: Improve GOP detection in the EFI boot
> stub") we check for a GOP device that implements ConOut protocol to find
> our primary output device. The commit log says that this was done to
> avoid problems with the ConSplitter device, which exports a virtual GOP
> interface. The original version by Matt Fleming checked for PCIIO
> protocol, with a note that says there are some Apple machines have GOPs
> without hardware, I assume that that was the same case, GOPs from
> ConSplitter.
>
> However, since commit 540f4c0e894f ("efi/libstub: Skip GOP with
> PIXEL_BLT_ONLY format") we skip GOP's that don't have a framebuffer.
>
> Looking at the EDK2 implementation of ConSplitter, the virtual GOP will
> advertise a framebuffer iff it is attached to exactly one GOP device, in
> which case it passes through all the information. If it is attached to a
> UGA device or to more than one GOP, it will show as a non-framebuffer
> GOP, so we will skip it anyway in those cases.
>
> Given that, is it still necessary to check for conout at all, or would
> it be enough to rely on the framebuffer check?
>

If it doesn't hurt to check, I'd prefer to keep it in. UEFI is a can
of worms, given how many buggy implementations exist in the field.