On Tue, Aug 1, 2023, at 19:05, Russell King (Oracle) wrote: > On Fri, Jul 07, 2023 at 11:52:23AM +0200, Arnd Bergmann wrote: >> From: Arnd Bergmann <arnd@xxxxxxxx> >> >> 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 >> >> - arm lists footbridge, integrator and netwinder, but netwinder is actually >> part of footbridge, and integrator does not appear to have an actual >> VGA hardware, or list it in its ATAG or DT. > > Integrator/AP has PCI, and I have had PCI VGA cards plugged in to that > hardware when I've had it. I'm pretty sure it can no longer work and broke a while ago, so I would prefer to leave it out unless someone actually has a reason to use it and puts the work in to restore the support. >From what I can tell, it's broken in at least three ways with the new PCI host driver: - the PCI memory space is identity mapped to its CPU physical address as of d3721efce22d1 ("ARM: dts: integratorap: Fix PCI windows"), which is generally better for compatibility with broken drivers that read the BAR directly, but it prevents memory mapped ISA-style devices including VGA text buffer. - vga_base is no longer set by the new PCI host driver, so any accesses to the text buffer just end up in user space memory at (__iomem*)0xb8000 - there is no DT binding for setting the global screen_info to whatever the boot firmware has initialized the VGA BIOS to, and the default 80x30 on Arm does not match the typical 80x25 text that would be set by the BIOS. > Provided any platform sets up PCI in a compatible way, and can run the > VGA's BIOS to initialise the card, then vgacon is supportable. It looks like only footbridge does at this point, all the other platforms would need to fix at least some of the three things I mentioned above, in particular plat-orion is the only thing setting vga_base but also has the identity map issue. My impression is that nobody has cared about vgacon on most Arm systems since it's harder to get working than fbcon with a native PCI driver (or the built-in pl110 on integrator) but also less useful. Arnd