i386 vs radeondrmkms problem - isa attachments suck
matthew green <mrg <at> eterna.com.au>
2015-02-28 09:44:46 GMT
i've been trying to find a least-ugly solution to the radeondrmkms
on i386 problem. quick summary of what's wrong:
radeondrmkms doesn't complete attachments (and most
importantly create a wsdisplay) until mountroot completes.
this means it happens quite late in boot. in i386 GENERIC,
vga <at> isa and pcdisplay <at> isa are still enabled and they will
attach to the legacy vga device, and present a wsdisplay0
to the system. later, radeon0 attaches, and we get a
wsdisplay1 that has taken over the console output.
this leaves us with a non-working console output, and the inability
to run X11 even if accessed remotely.
my first attempt (that is currently commited), made the radeondrmkms
driver attempt to map the isa vga registers to reserve them from the
vga <at> isa, and while that worked on my serial console machine, it does
not work on a normal system due to x86 consinit() attaching the
basic vga console driver (so we get early console output.) in this
case, it has already mapped these registers (ie, radeon is unable
to map them) and the later real attachment knows not to attempt it
again. so that method doesn't work.
we could have the vga driver detach itself at the right point, but
that leaves the console detached for quite a while, during the time
that drm is getting setup (ie, we'd miss several of its early
messages.) that seems less than desireable.