On 14:51 Fri 20 Feb , Ralf Baechle wrote:
> On Fri, Feb 20, 2009 at 09:01:57PM +0800, Zhang Le wrote:
>
> > Currently, xorg-server on loongson need a patch:
> > http://www.gentoo-cn.org/gitweb/?p=loongson;a=blob;f=x11-base/xorg-server/files/xorg-server-1.5.3-loongson.patch;h=9c48b3752b7f14b6603524f46ae832f312e7c6fe;hb=HEAD#l37
> > Please note that line 37, the last parameter to mmap, which is the
> > ioBase_phys,
> > is hardcoded.
> >
> > This patch no long applies to xorg-server git master.
>
> It should have been rejected by the maintainer before. This was obviously
> fragile and had no fighting chance to ever work on anything but a Fulong.
Exactly.
[snip]
> # lspci -vvv -s 1d.1
> 00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI
> Controller #2 (rev 02) (prog-if 00 [UHCI])
> Subsystem: Dell Device 01fe
> Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
> Stepping- SERR- FastB2B- DisINTx-
> Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
> <TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0
> Interrupt: pin B routed to IRQ 21
> Region 4: I/O ports at 6f60 [size=32]
> Kernel driver in use: uhci_hcd
>
> Now let's see how to find this in sysfs:
>
> # ls -l /sys/bus/pci/devices/0000:00:1d.1/resource*
> -r--r--r-- 1 root root 4096 2009-02-20 14:13
> /sys/bus/pci/devices/0000:00:1d.1/resource
> -rw------- 1 root root 32 2009-02-20 14:20
> /sys/bus/pci/devices/0000:00:1d.1/resource4
> # cat /sys/bus/pci/devices/0000:00:1d.1/resource
> 0x0000000000000000 0x0000000000000000 0x0000000000000000
> 0x0000000000000000 0x0000000000000000 0x0000000000000000
> 0x0000000000000000 0x0000000000000000 0x0000000000000000
> 0x0000000000000000 0x0000000000000000 0x0000000000000000
> 0x0000000000006f60 0x0000000000006f7f 0x0000000000020101
> 0x0000000000000000 0x0000000000000000 0x0000000000000000
> 0x0000000000000000 0x0000000000000000 0x0000000000000000
>
> So if you want to mmap the 4th resource, just mmap the file
> /sys/bus/pci/devices/0000:00:1d.1/resource4. This leaves how to obtain
> the "0000:00:1d.1" - you have to find it by looking at the vendor and device
> files in every file in /proc/bus/pci/devices/ which contain the PCI vendor
> and device ID as hex numbers. For my example device here:
>
> [root@h5 0000:09:00.0]# cat device
> 0x1673
> [root@h5 0000:09:00.0]# cat vendor
> 0x14e4
> [root@h5 0000:09:00.0]#
>
> Hopefully X finally has some nice infrastructure for this sort of stuff.
>
> And for completeness sake, directly looking at the BARs in the PCI config
> space is another method but this one is deprecated these days as it may
> not work on some complex systems.
>
> # od -A x -t x4 -j 0x10 -N 0x20 /proc/bus/pci/00/1d.1
> 000010 00000000 00000000 00000000 00000000
> 000020 00006f61 00000000 00000000 01fe1028
> 000030
> #
Thank you for the above comment! It is very informative!
I will try to make a new patch.
Zhang, Le
|