SMI 501 local bus driver

Paulo Cesar Pereira de Andrade pcpa at mandriva.com.br
Wed Oct 1 11:53:35 PDT 2008


Christian Pössinger wrote:
> Now I used the latest siliconmotion driver from the XOrg GIT and removed
> the PCI function calls to access the device via Local Plus Bus of the
> TQM5200 board.
>
> I initialize the pSmi->MapBase and pSmi->FbBase fields with a mmap() call
> to /dev/mem and the proper adresses.
>
> After the module started up I see the following output with "X -verbose 9"

  Does the kernel framebuffer work? In that case, there is a fallback
option "UseFBDev", that will not attempt to program the hardware, other
then the accel registers.

> ======================================
> (II) Loading sub module "ramdac"
> (II) LoadModule: "ramdac"(II) Module "ramdac" already built-in
> (II) do I need RAC?  No, I don't.
> (II) resource ranges after preInit:
>         [0] 0   0       0xe3e00000 - 0xe4000000 (0x200001) MX[B]
>         [1] -1  0       0x00100000 - 0x3fffffff (0x3ff00000) MX[B]E(B)
>         [2] -1  0       0x000f0000 - 0x000fffff (0x10000) MX[B]
>         [3] -1  0       0x000c0000 - 0x000effff (0x30000) MX[B]
>         [4] -1  0       0x00000000 - 0x0009ffff (0xa0000) MX[B]
>         [5] -1  0       0x80000000 - 0x8003ffff (0x40000) MX[B]
>         [6] -1  0       0x0000ffff - 0x0000ffff (0x1) IX[B]
>         [7] -1  0       0x00000000 - 0x000000ff (0x100) IX[B]
> (II) SMI(0): Physical MMIO at 0xE3E00000
> (II) SMI(0): Logical MMIO at 0x48a4c000 - 0x48c4bfff
> (II) SMI(0): DPR=0x48b4c000, VPR=0x48a4c000, IOBase=(nil)
> (II) SMI(0): DataPort=0x48b5c000 - 0x48b6bfff
> (II) SMI(0): Physical frame buffer at 0xE0000000 offset: 0x00000000
> (II) SMI(0): Logical frame buffer at 0x48c4c000 - 0x4944bfff
> (II) SMI(0): Cursor Offset: 007FF800
> (II) SMI(0): Reserved: 007FF000
> (II) SMI(0): FrameBuffer Box: 0,480 - 640,6550
> (II) SMI(0):    SMI_GEReset called from smi_accel.c line 131
> (II) SMI(0):    SMI_GEReset called from smi_accel.c line 64
> (II) SMI(0):    SMI_GEReset called from smi_accel.c line 64
> ======================================

  This is completely illogical in the current sources, but it
matches SMI sources I received, it just checks if PCIRetry is
enabled in the WaitQueue() macro, see regsmi.h:195. I hope to
investigate it soon, to understand why a macro that should be
checking the fifo, just ignores it's argument, and does something
completely different...

> The driver doesn't display anything now, instead it calls the SMI_GEReset
> function until I reset the device. When I set "pSmi->NoAccel = TRUE;"
> there seems to be no call to SMI_GEReset, at least none is displayed on
> the console, but the display is still black.
>
> I would appreciate it if anyone is able to supply me with a flash of
> inspiration.

  Other then the UseFBDev option. I hope to have a more complete
mode setting code soon, based on more recent information I received
from SMI; information about the 502 clocks, and the differences
with earlier releases, that are not clearly documented in the
pdfs available at ftp.siliconmotion.com.

> Best regards,
> Christian
Paulo




More information about the xorg mailing list