Framebuffer problem with a graphics card in the PCIe port of the T1040RDB

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Framebuffer problem with a graphics card in the PCIe port of the T1040RDB

Jump to solution
1,633 Views
mathiasparnaude
Contributor III

Hi,

I need to provide a display to the T1040RDB. With the DIU not available, I decided to plug a graphics card in the main PCIe port, choosing a Matrox G550 card.

After having added the right configs in the Linux kernel, I had to change the type of physical addresses in the drivers, as they were in 32 bits while Linux uses 64-bit values for physical addresses.

I got 2 framebuffer instances (the card has 2 DVI ports), /dev/fb0 and /dev/fb1. Using fb0, I am able to use fbset, change the resolution, switch between sleeping and active mode (to wake up the monitor). I get the Linux boot logo (4 penguins) and the message "Please wait: booting..." on screen. But my problem is whatever the tool used to send images to the framebuffer, they are never displayed.

Do you know if using a graphics card like that has been tried with success? What changes need to be applied in the Linux configuration? Do you recommend another model of graphics card?

Thanks,

Mathias

0 Kudos
1 Solution
1,129 Views
mathiasparnaude
Contributor III

I want to confirm that using this graphics card on the T1040RDB board now works (at least the first DVI output in 1024x768x32-60).

I fixed the 32-bit addresses in the Matrox driver and found a good boot command line

setenv othbootargs ramdisk_size=960000 video=matroxfb:vesa:0x118,init

But that was not enough.

One of the main structure of the framebuffer has hardcoded 32-bit values for physical addresses.

I saw in the framebuffer driver that some code to manage 64-bit physical addresses was inside a "ifdef CONFIG_COMPAT / endif" block. I failed to enable this config with a 32-bit kernel but then that worked with a 64-bit kernel!

View solution in original post

0 Kudos
3 Replies
1,130 Views
mathiasparnaude
Contributor III

I want to confirm that using this graphics card on the T1040RDB board now works (at least the first DVI output in 1024x768x32-60).

I fixed the 32-bit addresses in the Matrox driver and found a good boot command line

setenv othbootargs ramdisk_size=960000 video=matroxfb:vesa:0x118,init

But that was not enough.

One of the main structure of the framebuffer has hardcoded 32-bit values for physical addresses.

I saw in the framebuffer driver that some code to manage 64-bit physical addresses was inside a "ifdef CONFIG_COMPAT / endif" block. I failed to enable this config with a 32-bit kernel but then that worked with a 64-bit kernel!

0 Kudos
1,129 Views
Pavel
NXP Employee
NXP Employee

The display has a blanking feature that can be enabled.

Try to re-enable the display using the following command to disable blanking:

$ echo 0 > /sys/class/graphics/fb0/blank


Have a great day,
Pavel

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
1,129 Views
mathiasparnaude
Contributor III

Hi Pavel

I used that to wake up the screen after timeout. By the way, that restored the text but not the bootlogo with the 4 penguins...

I don't know what's wrong with my Linux config...

Is it a problem of flush / refresh (scan out) of the graphics to the screen? Is there a wrong association between the VT and the framebuffer? I also thought about the DVI support but as I get a display on boot...

Mathias

0 Kudos