Port-powerpc archive

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

Re: range of resource of PCI memory for PowerPC



Hi! Michael,


From: Michael <macallan%netbsd.org@localhost>
Date: Sun, 14 Dec 2008 14:40:28 -0500

> On Dec 14, 2008, at 1:33 PM, KIYOHARA Takashi wrote:
> 
> > I know, bebox and prep (and ibmnws?) has resource problem of PCI  
> > memory.
> > We extent memory region at start 0x00000000.  However
> > xf86PciBusAccWindowsFromOS() add to resource-list at 0x80000000.
> 
> That's the Xserver trying to play operating system and configure PCI  
> devices. This list is largely bogus anyway - just set your entries to  
> something big enough to cover any PCI memory or IO address legal on  
> your hardware.
> The start at 0x80000000 is more or less macppc-specific - all host  
> bridges Apple ever used in PowerPC boxes have a rimilar address space  
> layout - the lower 2GB for RAM and the upper 2GB for PCI space,  
> firmware and various hardware registers. They even did that on the G5  
> ( with more RAM above 4GB ). Many IBM and Motorola hostbridges use a  
> very similar layout ( in fact Apple used Motorola's MPC106 and IBM's  
> CPC9x5 host bridges in some Macs, either can be found in prep or ofppc  
> machines as well )
> 
> > Shall we define PCI_MAGIC_MEM_RANGE_{START,END} in param.h, just like
> > PCI_MAGIC_IO_RANGE?
> 
> I don't see a need for that as long as you can  
> mmap(some_pci_bus_address) via ttyE0 you should be fine.
> 


hmm?
Then, should I make xf86PciBusAccWindowsFromOS() for __ powerpc__?


#if defined(__powerpc__)

xf86PciBusAccWindowsFromOS(void)
{
  :

    RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock);
    ret = xf86AddResToList(ret, &range, -1);

  :
}

#elif defined(__alpha__) || defined(__amd64__) || defined(__arm__) || \
    defined(__mips__)

  :



When the problem of this space is not solved, we see the following message.
And, this address will fixup forcedly.

(WW) ****INVALID MEM ALLOCATION**** b: 0x8000000 e: 0xbffffff correcting^G

And, we fail in mmap() to a wrong address...


Thanks,
--
kiyohara


Home | Main Index | Thread Index | Old Index