I have run into an unsual (to me) situation, and I was hoping someone here has expertise on the subject they'd be willing to share.
I have a Mac G4 with Yellow Dog Linux 2.1 (kernel 2.4.10-12a). I have put a second video card in the system (first one being the "standard" ATI Rage128 RF which came with the system). At the boot time, the Linux kernel spits out a message I haven't seen before: Linux version 2.4.10-12a (gcc version 2.95.3 20010111 (prerelease/franzo/20010111)) #1 Tue Oct 9 04:29:39 EDT 2001 PowerMac model: PowerMac3,1 Uninorth at 0xf8000000 Uni-N revision: 3, KeyLargo revision: 2 Registered 1 feature controller(s) Found UniNorth PCI host bridge at 0xf0000000. Firmware bus number: 0->0 Found UniNorth PCI host bridge at 0xf2000000. Firmware bus number: 0->1 Found UniNorth PCI host bridge at 0xf4000000. Firmware bus number: 0->0 PCI: Cannot allocate resource region 2 of PCI bridge 2 PCI: resource is 80000000..8fffffff (200), parent c0468068 PCI:02:03.0: Resource 0: 82000000-82ffffff (f=1208) PCI: Cannot allocate resource region 0 of device 02:03.0 PCI: parent is c0468068: 80000000-8fffffff (f=200) PCI:02:03.0: Resource 1: 81000000-81ffffff (f=1208) PCI: Cannot allocate resource region 1 of device 02:03.0 PCI: parent is c0468068: 80000000-8fffffff (f=200) PCI:02:03.0: Resource 2: 80084000-80084fff (f=200) PCI:02:03.0: Resource 4: 800a0000-800affff (f=200) PCI:02:03.0: Resource 5: 00001000-000010ff (f=101) Once the system is up, all the PCI BARs are marked as disabled. I used 'setpci' to enable them: setpci -s 02:03.0 COMMAND=0007 After it successfully completes, 'lspci -vv' reports the following: 02:03.0 VGA compatible controller: Number 9 Computer Company Revolution 4 (rev 02) (prog-if 00 [VGA]) Subsystem: Unknown device Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 0 Interrupt: pin A routed to IRQ 53 Region 0: Memory at 81000000 (32-bit, prefetchable) [size=16M] Region 1: Memory at 82000000 (32-bit, prefetchable) [size=16M] Region 2: Memory at 80084000 (32-bit, non-prefetchable) [size=4K] Region 4: Memory at 800a0000 (32-bit, non-prefetchable) [size=64K] Region 5: I/O ports at 1000 [size=256] Expansion ROM at 80090000 [disabled] [size=64K] Capabilities: [80] AGP version 1.0 Status: RQ=15 SBA- 64bit- FW- Rate=x1,x2 Command: RQ=0 SBA- AGP- 64bit- FW- Rate=<none> Capabilities: [90] Power Management version 1 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- Things look fairly normal to me, so am I understanding the situation correctly if I assume that the kernel swapped the values in BAR[0] and BAR[1] at the boot time? Does that mean that the device is OK to use now? Unfortunately, the first inl() causes the system to core dump. It's a static server, so a quick back trace points to the first inl() which is trying to access the first I/O port from BAR[5] (i.e. inl( 0x00001000 ) is what causes the core dump). Looking at the <compiler.h>, there is a need for the 'ioBase' variable to be set prior to using inl()/outl() on a PPC system. I assume that the value for 'ioBase' would be the value in the BAR[5]. So I would do something like: ioBase = 0x00001000; /* I get 0x00001000 by reading BAR[5] */ first_reg = inl( 0 ); /* Zero being the offset from ioBase */ Is this correct way to use inl() on PPC? I cannot find an example in the source code which sets the 'ioBase' prior to using inl()/outl() on a PPC system. Am I overlooking such an example? Has anyone done such a thing? I don't see why else there would be inl()/outl() implementation in the <compiler.h>... Perhaps I should mention that I'm not looking to set things up as a multihead system. I only want to test some code for the #9 card on a PPC system, and this G4 is the best I got (and not too bad, might I add). So the server would only look for, and use the #9 card. BTW, The #9 card does not support any Open Firmware functions. Many thanks, in advance, ======================================================================== Nikola Miljanic [Nick] | | Metro Link, Inc. [EMAIL PROTECTED] | | http://www.metrolink.com ======================================================================== progress [n.] 1. In computing; advancing from one error message to the next _______________________________________________ Xpert mailing list [EMAIL PROTECTED] http://XFree86.Org/mailman/listinfo/xpert