SM501 Frame Buffer driver on PPC

Martin Krause Martin.Krause at tqs.de
Thu Nov 3 19:19:08 EST 2005


Hi Russell,

Absolut Hunter wrote on Thursday, November 03, 2005 2:40 AM: 
> The TQM5200 Board uses this driver, but I am gathering this is a PCI
> based 
> video setup?; Our board uses a local bus memory interface. I.e. we
> have 
> setup the SM501 to be in the SH-3/4 Slave mode.

On the TQM5200 the SM501 is connected over the local bus, not over
PCI. The SH-4 Interface is used.

> We have dedicated 32Megs of Video memory to be local only to the
> SM501, and mapped it to 0xF8000000 on /CS6, placing the registers at
> 0xFBE00000 
> 
> Anyway, I have the UPMA machine setup to communicate with the SM501
> and have verified basic communication with registers, etc.. When
> using Linux the 
> kernel Oops's when register_framebuffer is called. I have setup the
> voyager.h file to use the correct addresses.

Yes,

#define FB_PHYSICAL_ADDR	0xF8000000
#define REG_PHYSICAL_ADDR	0xFBE00000 

should do the job (if the addresses are correct).

> Has anyone used the SM501 driver with this type of NON-Unified memory
> architecture? I am guessing this can be confusing to the driver since
> the 
> frame buffer registers inside the SM501 need to be using offset ZERO
> instead 
> of the 0xF8000000 like the MPC8280 sees.

I'm not sure, what you mean with NON-Unified memory. Note that the
TQM5200 uses the memory integrated in the SM501 as framebuffer. So
the SM501 is configured to use internal memory. If you want to use 
external memory, you have to change the SM501 initialisation. Take
a look at the DRAM Control register of the SM501. Pin GPIO12 is
used during reset to enable or disable "Embedded Memory Control".

Please note, that the framebuffer driver does all register accesses
32-bit wide. Make sure your hardware supports this.

Maybe you have to change endianness (little/big).

Regards,
Martin



More information about the Linuxppc-embedded mailing list