I am trying to get the HDMI port of T1042D4RDB working. In order to do this, I followed section 7.2.1 of QorIQ-SDK-2.0-1703-Rev0.pdf. I have compiled kernel with DIU support enabled and also set 'video-mode' parameter of u-boot to 'fslfb:1024x768-32@60,monitor=dvi'.
I am booting the system by doing tftp of DIU enabled uImage, fsl-image-core & default .dtb file generated during kernel build. But when I attach LCD monitor to T1042 RDB via HDMI to VGA converter, I get Freescale logo during boot and a plain colored screen when boot is complete. There's no linux console available on screen.
Can someone point out the reason for this behavior?
DIU Framebuffer driver is a generic graphic display driver, it works
with pixels and is not aware of characters. If you wish to use it as
a console, you need a framebuffer console driver, fbcon. Visit the link
below for details:
http://git.freescale.com/git/cgit.cgi/ppc/sdk/linux.git/tree/Documentation/fb/fbcon.txt
Have a great day,
Platon
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Thanks bpe for response. I have enabled fbcon in kernel but now I am getting kernel panic on boot. I guess there's some issue with the DIU driver because I was getting a similar panic for X11 display as mentioned in my other thread (which is still unanswered). Below is snippet of boot dump after enabling fbcon:
Freescale Display Interface Unit (DIU) framebuffer driver Unable to handle kernel paging request for instruction fetch Faulting instruction address: 0x00000000 Oops: Kernel access of bad area, sig: 11 [#1] SMP NR_CPUS=8 CoreNet Generic Modules linked in: CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.1.35-rt41 #18 task: e5047910 ti: e5048000 task.ti: e5048000 NIP: 00000000 LR: c02ddc98 CTR: 00000000 REGS: e5049b30 TRAP: 0400 Not tainted (4.1.35-rt41) MSR: 00029002 <CE,EE,ME> CR: 24ad2e82 XER: 00000000 GPR00: c02dda6c e5049be0 e5047910 00003c19 e5770f60 297fd000 00000100 e577125f GPR08: 07400000 00000000 00000003 00000001 ea16eacc 00000000 e5770000 00000000 GPR16: 00000001 00000000 00000000 000000c4 c0888784 c098102c c09e2b88 c09e36bc GPR24: 00000001 e5800000 e577002c e5770000 c09c3610 f1934000 e5770000 e5770008 NIP [00000000] (null) LR [c02ddc98] fsl_diu_set_par+0x2d8/0x3b0 Call Trace: [e5049be0] [c02dda6c] fsl_diu_set_par+0xac/0x3b0 (unreliable) [e5049c10] [c02df3e4] fsl_diu_open+0x94/0x2f0 [e5049c30] [c02cd104] fbcon_startup+0xa4/0x310 [e5049c50] [c02fbf6c] do_take_over_console+0x11c/0x210 [e5049c80] [c02cdd74] do_fbcon_takeover+0x84/0x110 [e5049c90] [c004e740] notifier_call_chain+0x60/0xb0 [e5049cb0] [c004eb20] __blocking_notifier_call_chain+0x50/0x80 [e5049cd0] [c02d57c0] register_framebuffer+0x1f0/0x2e0 [e5049d40] [c02dec24] fsl_diu_probe+0x444/0x7c0 [e5049da0] [c0321dc0] platform_drv_probe+0x50/0x110 [e5049dc0] [c031fe88] driver_probe_device+0x1f8/0x330 [e5049de0] [c03200fc] __driver_attach+0xbc/0xc0 [e5049e00] [c031db0c] bus_for_each_dev+0x6c/0xc0 [e5049e30] [c031f308] bus_add_driver+0x178/0x250 [e5049e50] [c03208b8] driver_register+0x88/0x140 [e5049e60] [c093d868] fsl_diu_init+0x58/0x144 [e5049e90] [c0001f80] do_one_initcall+0x90/0x1f0 [e5049f00] [c0921b3c] kernel_init_freeable+0x138/0x1d0 [e5049f30] [c0002714] kernel_init+0x14/0x110 [e5049f40] [c000f198] ret_from_kernel_thread+0x5c/0x64 Instruction dump: XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX ---[ end trace e1bec74e1cbc1a6c ]--- Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b Rebooting in 180 seconds..
[EDIT]
After investigating a bit, I have found that the 'diu_ops' object in drivers/video/fbdev/fsl-diu-fb.c is not initialized. Therefore the driver is crashing whenever there is no sanity check to verify 'diu_ops'. It looks that the object is initialized in 't1042rdb_diu_init()' function in arch/powerpc/platforms/85xx/corenet_diu.c but that function is not being called. Any suggestions?
P.S: I am using QorIQ-SDK-2.0-1703