Port-ofppc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Pegasos dmesg




Tim Rightnour wrote:
On 20-Jan-2008 Frank Wille wrote:
So the easiest solution would be to run pci_configure_bus() on the primary
PCI bus @0x80000000 only, and leave the secondary for "AGP-emulation" alone?

Yes, that is the "easiest" solution there, for pegasos, but to fix it
correctly, you should add a test for PCI_CLASS of VGA and if so, return 0.

Your solution will work for pegasos though, because of the crazy second pci
"bus", which in all reality should just be avoided by PCI_NETBSD_CONFIGURE.

I'm curious, what does pci_configure_bus() actually do that is causing the
problem, that only affects VGA cards?

Ok. For the Pegasos2 the primary pchb maps pcimem at 0x80000000-0xbfffffff.
But all the devices are usually limited to the 0x8 range.

When looking at vmparam.h, we need 0xa and 0xb for KERNEL_SR and KERNEL2_SR,
so I would limit the mem extent to 0x80000000-0x9fffffff.

In practice, it shouldn't matter too much, unless you start loading VGA cards
into every slot.  Beyond that, the issue becomes just one of BAT maps, because
bus_space_map should be able to handle those addresses anyhow.

The problem with loading VGA cards into every slot on the Pegasos is that it
will only initialize the first one it finds with the x86 emulator; which means
anything else isn't going to be brought up and ready for action and needs
some further emulation support.

Multiple VGA cards is probably a very bad idea on x86 anyway, usually the
host OS has to bring them up, not the BIOS (which only has a requirement to
drag up the first it finds, usually selected by the "VGA Boot From" switch
in the BIOS setup). Some VGA cards (ATI *snarl*) still perform the old EGA
detection routine which looks for a secondary card and initializes it in
mono mode for debuggers. Talk about 1980's... anyway this gets filtered out
by the bplan emulator. Just FYI.

--
Matt Sealey <matt%genesi-usa.com@localhost>
Genesi, Manager, Developer Relations




Home | Main Index | Thread Index | Old Index