Messages in this thread | | | Date | Fri, 21 Jul 2023 10:26:30 +0200 | From | "Arnd Bergmann" <> | Subject | Re: [PATCH v2 1/9] vgacon: rework Kconfig dependencies |
| |
On Fri, Jul 21, 2023, at 06:59, Michael Ellerman wrote: > Arnd Bergmann <arnd@kernel.org> writes: >> From: Arnd Bergmann <arnd@arndb.de> >> >> The list of dependencies here is phrased as an opt-out, but this is missing >> a lot of architectures that don't actually support VGA consoles, and some >> of the entries are stale: >> >> - powerpc used to support VGA consoles in the old arch/ppc codebase, but >> the merged arch/powerpc never did > > Not disputing this, but how did you come to that conclusion? I grepped > around and couldn't convince myself whether it can work on powerpc or > not. ie. currently it's possible to enable CONFIG_VGA_CONSOLE and > powerpc does have a struct screen_info defined which seems like it would > allow vgacon_startup() to complete.
The VGA console needs both screen_info and vga_con to work. In arch/ppc we had both, but in arch/powerpc we only retained the screen_info:
$ git grep vga_con v2.6.26 -- arch/ppc arch/ppc64 arch/powerpc v2.6.26:arch/ppc/platforms/pplus.c: conswitchp = &vga_con; v2.6.26:arch/ppc/platforms/prep_setup.c: conswitchp = &vga_con;
so after arch/ppc was removed, this became impossible to use on both pplus and prep. These two platforms were also (as far as I can tell) the only ones to support vga16fb as an alternative to vgacon, but both platforms were removed later on.
> My only concern is that someone could be using it with Qemu?
I have not yet ruled out anyone using vga16fb on qemu before commit 0db5b61e0dc07 ("fbdev/vga16fb: Create EGA/VGA devices in sysfb code"), but I can see that this has been broken for 12 months without anyone complaining about it, since vga16fb no longer works with the "orig_video_isVGA == 1" setting in arch/powerpc (the device is not created).
In the qemu sources, I see five powerpc machines that intialize VGA support: mac_newworld, mac_oldworld, pegasos2, prep, and spapr. I think we can exclude prep (which was removed from the kernel) and spapr (64-bit VGA_MAP_MEM() looks broken). I think the macs always come up in graphical mode and only use offb/atifb/rivafb/matroxfb but not vga16fb that would require running the x86 VGA BIOS initialization.
I suppose it's possible to use vga16fb (not vgacon) with "qemu-system-ppc -M pegasos2 -vga std" if that still boots at all. Support for pegasos2 hardware appears to have been removed with commit 04debf21fa174 ("powerpc: Remove core support for Marvell mv64x60 hostbridges"), but it's possible that this did not break qemu support if that only uses devices under arch/powerpc/platforms/chrp/pci.c. I could not get it to boot, but did not try very hard.
Arnd
| |