Apalis T30 Console Framebuffer

Hi,

How can I turn on the console output framebuffer when the kernel boots?

I’ve tried in vain to get a splash screen working but with no success (and yes, I’ve followed the steps as per the Toradex guide).

There is only one display - its output is via LVDS. I can see the uboot console but not the kernel.

Thanks in advance.

Kind regards,
Kevin

Please have a look at the following article on our developer website.

Hi Marcel,

Unfortunately, after following these instructions I still have a blank black screen during boot.

If I do:

fw_printenv setup

I get:

setup=setenv setupargs gpt gpt_sector=${gptoffset} igb_mac=${ethaddr} no_console_suspend=1 console=tty1 console=ttyS0,${baudrate}n8 debug_uartport=lsport,0 ${memargs} fbcon=map:0

As per the documentation.

Kind regards,
Kevin

Incidentally, as soon as I start the shutdown process - I then get console output onto the display although being a linux n00b, I’m unsure as to whether uboot handles the shutdown or the kernel.

Kind regards,
Kevin

It is really the Linux kernel itself taking care of the shutdown. U-Boot is only involved at the very first stage of booting.

Getting back to your LVDS issue. First I would be interested to know the resolution and LVDS configuration of your display. What could be happening is that when the Linux kernel takes over from U-Boot it re-configures the pin muxing. As on Apalis T30 LVDS is realised by a THine transceiver connected to the regular parallel TTL display interface plus a few GPIOs for configuration those later ones are probably to blame. At a later stage during the boot process we have a shell script /usr/bin/lvds-dual-channel.sh (or alternatively lvds-single-channel.sh) being executed at the LXDM session start-up taking care of that configuration which probably makes your display come back to life. If you require your display to output something during early kernel start that configuration would need to be directly integrated into the kernel. As follows the resp. GPIOs in question:

root@apalis-t30:~# cat /sys/kernel/debug/gpio | grep -i lvds
 gpio-216 (LVDS: Single/Dual Ch) out lo
 gpio-219 (LVDS: 18/24 Bit Mode) out hi
 gpio-220 (LVDS: Output Enable ) out hi
 gpio-221 (LVDS: Power Down    ) out hi
 gpio-222 (LVDS: Clock Polarity) out hi
 gpio-223 (LVDS: Colour Mapping) out hi
 gpio-225 (LVDS: Swing Mode    ) out hi
 gpio-226 (LVDS: DDRclk Disable) out hi

One way to achieve this would probably be to just configure resp. pull-up/downs here. Alternatively one could do it here using resp. GPIOF_OUT_INIT_LOW/HIGH flags.

Hi Marcel,

Thanks for your reply.

The panel resolution is 1024x600 and is hooked up to LVDS1_A via CLK/TX0/TX1/TX2.

Here’s the state of the LVDS GPIOs:

cat /sys/kernel/debug/gpio | grep -i lvds
 gpio-216 (LVDS: Single/Dual Ch) out hi
 gpio-219 (LVDS: 18/24 Bit Mode) out hi
 gpio-220 (LVDS: Output Enable ) out hi
 gpio-221 (LVDS: Power Down    ) out hi
 gpio-222 (LVDS: Clock Polarity) out hi
 gpio-223 (LVDS: Colour Mapping) out hi
 gpio-225 (LVDS: Swing Mode    ) out hi
 gpio-226 (LVDS: DDRclk Disable) out hi

I notice that the state of gpio-216 differs from what you’ve suggested however I do believe this is correct for single channel operation.

I can confirm that the lvds-single-channel-sh is being executed at LXDM startup.

Kind regards,
Kevin

I’ve added the code into the board-apalis_t30.c file to configure the GPIO. Presently the LVDS signals are being set to GPIOF_IN for some reason - I’ve changed this to GPIOF_OUT_INIT_HIGH so that, hopefully, the LVDS will be up from the word go.

Will come back with the outcome…

Ok, so I’ve managed to get the console working on the display through the kernel and I have had 4 penguins visible at the top with the console output beneath.

I’ve since followed the instructions to load in a simple 1024x600 black and white logo image using the link you sent me initially but unfortunately no logo appears at all during the boot process.

For reference, here are my setupargs:

fw_printenv setup
setup=setenv setupargs gpt gpt_sector=${gptoffset} igb_mac=${ethaddr} no_console_suspend=1 vt.global_cursor_default=0 console=ttyS0,${baudrate}n8 debug_uartport=lsport,0 ${memargs} consoleblank=0

Could there be an issue with using purely black and white images as logos? Does a bit of colour need to be injected for sanity?

Kind regards,
Kevin

I don’t think so. I assume you followed the procedure as outlined here. I would try it with some smaller image at first as I recall us having had issues at times with full screen images depending on some console or framebuffer settings.

Hi Marcel,

I can confirm that I’ve followed your instructions to the letter.

I’ve resized the logo so it is slightly smaller - I will try again and see what happens.

Kind regards,

A smaller image works like a charm. Currently working with 820x480 rather than 1024x600 but I will re-investigate this at a later date.

Thanks for your help Marcel.

Kind regards,
Kevin

You are very welcome. You may try the following patch we had to revert due to issues at some other resolution.