<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic How to make Opengl render on virtual framebuffer in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/How-to-make-Opengl-render-on-virtual-framebuffer/m-p/1168819#M163576</link>
    <description>&lt;P&gt;Hi All:&lt;/P&gt;&lt;P&gt;I have built the vfb driver as module, below is the command of insmod driver sequence.&lt;/P&gt;&lt;P&gt;insmod fb_sys_fops.ko&lt;BR /&gt;insmod syscopyarea.ko&lt;BR /&gt;insmod sysfillrect.ko&lt;BR /&gt;insmod sysimgblt.ko&lt;BR /&gt;insmod vfb.ko vfb_enable=1 videomemorysize=3&lt;SPAN&gt;6864&lt;/SPAN&gt;00&lt;/P&gt;&lt;P&gt;my display resolution is 1280x720-32bpp, so I modify the&amp;nbsp;fb_videomode in vfb.c as below:&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;static&lt;/SPAN&gt; &lt;SPAN&gt;const&lt;/SPAN&gt; &lt;SPAN&gt;struct&lt;/SPAN&gt; &lt;SPAN&gt;fb_videomode&lt;/SPAN&gt; &lt;SPAN&gt;vfb_default1&lt;/SPAN&gt;&lt;SPAN&gt; = {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;.refresh = &lt;/SPAN&gt;&lt;SPAN&gt;60&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;.xres = &lt;/SPAN&gt;&lt;SPAN&gt;1280&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;.yres = &lt;/SPAN&gt;&lt;SPAN&gt;720&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;.pixclock = &lt;/SPAN&gt;&lt;SPAN&gt;13426&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;.left_margin = &lt;/SPAN&gt;&lt;SPAN&gt;192&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;.right_margin = &lt;/SPAN&gt;&lt;SPAN&gt;64&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;.upper_margin = &lt;/SPAN&gt;&lt;SPAN&gt;22&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;.lower_margin = &lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;.hsync_len = &lt;/SPAN&gt;&lt;SPAN&gt;136&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;.vsync_len = &lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;.vmode = &lt;/SPAN&gt;&lt;SPAN&gt;FB_VMODE_NONINTERLACED&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;};&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (!&lt;/SPAN&gt;&lt;SPAN&gt;fb_find_mode&lt;/SPAN&gt;&lt;SPAN&gt;(&amp;amp;&lt;/SPAN&gt;&lt;SPAN&gt;info&lt;/SPAN&gt;&lt;SPAN&gt;-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;var&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;info&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;mode_option&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;NULL&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;, &amp;amp;&lt;/SPAN&gt;&lt;SPAN&gt;vfb_default1&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;32&lt;/SPAN&gt;&lt;SPAN&gt;)){&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;fb_err&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;info&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"Unable to find usable video mode.&lt;/SPAN&gt;&lt;SPAN&gt;\n&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;retval&lt;/SPAN&gt;&lt;SPAN&gt; = -&lt;/SPAN&gt;&lt;SPAN&gt;EINVAL&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;goto&lt;/SPAN&gt; &lt;SPAN&gt;err1&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;after insmod the vfb driver, I got /dev/fb8&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;however, when my test program run the code:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;FONT color="#0000FF"&gt; eglNativeDisplayType = fbGetDisplayByIndex(8);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I got the error and kernel panic as below:&lt;/DIV&gt;&lt;DIV&gt;my question is how to use Opengles render on virtual frame buffer.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;********************************************************************************************&lt;/DIV&gt;&lt;DIV&gt;&lt;P&gt;[ 74.713232] Probing I2c client @ 0x6a on I2C bus #0.&lt;BR /&gt;[ 74.718074] Generic camera I2c driver added successfully.&lt;BR /&gt;[ 74.723301] Probing I2c client @ 0x40 on I2C bus #0.&lt;BR /&gt;[ 74.728356] Probing I2c client @ 0x5d on I2C bus #0.&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;[ 1] fbdev_GetDisplayByIndex(400): set prefetch failed&lt;/FONT&gt;&lt;BR /&gt;width: 1280 height: 720&lt;BR /&gt;vObj.num 60672&lt;BR /&gt;floorTexture 1&lt;BR /&gt;camTexture 2&lt;BR /&gt;[ 75.722366] Internal error: undefined instruction: 0 [#1] SMP&lt;BR /&gt;[ 75.727758] Modules linked in: vfb sysimgblt sysfillrect syscopyarea fb_sys_fops viulite(O) jpegdcd(O) h264dcd(O) h264enc(O) fdma(O) seq(O) cam(O) csi(O) oal_driver(O) apex(O) sja1105pqrs(O) nxp galco)&lt;BR /&gt;[ 75.745968] CPU: 1 PID: -13223110 Comm: fhL�dfJ�ra.elf Tainted: G O 4.14.34-rt27+g5d76987 #4&lt;BR /&gt;[ 75.755499] Hardware name: Freescale S32V234 (DT)&lt;BR /&gt;[ 75.760183] task: ffffffc07a82a400 task.stack: ffffff800dfe0000&lt;BR /&gt;[ 75.766157] PC is at gckKERNEL_OpenUserData+0x70/0xa0 [galcore]&lt;BR /&gt;[ 75.772042] LR is at _ProcessUserCommandBufferList.constprop.5+0x54/0x278 [galcore]&lt;BR /&gt;[ 75.773219] Unable to handle kernel paging request at virtual address 617956ff5f7955&lt;BR /&gt;[ 75.773220] Mem abort info:&lt;BR /&gt;[ 75.773223] Exception class = DABT (current EL), IL = 32 bits&lt;BR /&gt;[ 75.773225] SET = 0, FnV = 0&lt;BR /&gt;[ 75.773226] EA = 0, S1PTW = 0&lt;BR /&gt;[ 75.773227] Data abort info:&lt;BR /&gt;[ 75.773229] ISV = 0, ISS = 0x00000004&lt;BR /&gt;[ 75.773231] CM = 0, WnR = 0&lt;BR /&gt;[ 75.773233] [00617956ff5f7955] address between user and kernel address ranges&lt;BR /&gt;[ 75.818878] pc : [&amp;lt;ffffff800060dee0&amp;gt;] lr : [&amp;lt;ffffff80006120d4&amp;gt;] pstate: a0000145&lt;BR /&gt;[ 75.826246] sp : ffffff800dfe37c0&lt;BR /&gt;[ 75.829541] x29: ffffff800dfe37c0 x28: ffffffc07a82a400&lt;BR /&gt;[ 75.834830] x27: ffffff8008601000 x26: 000000000000001d&lt;BR /&gt;[ 75.840118] x25: 0000000000000124 x24: 000000003da39490&lt;BR /&gt;[ 75.845407] x23: ffffff800dfe3db8 x22: ffffffc07b3c9c00&lt;BR /&gt;[ 75.850696] x21: 000000003da39490 x20: ffffff800dfe3878&lt;BR /&gt;[ 75.855985] x19: ffffff800dfe3890 x18: 0000007fbbe85298&lt;BR /&gt;[ 75.861273] x17: 0000007fbd14ed70 x16: ffffff80081983f0&lt;BR /&gt;[ 75.866562] x15: 0000007fbbeb79fc x14: 000000003da38980&lt;BR /&gt;[ 75.871851] x13: 000000003da395e0 x12: 0000007fbbd4a654&lt;BR /&gt;[ 75.877139] x11: 0000007fb176f970 x10: 000000003da38980&lt;BR /&gt;[ 75.882428] x9 : 0000000000000000 x8 : 0000007fbbd4a664&lt;BR /&gt;[ 75.887717] x7 : 0000000000000000 x6 : 000000003da39490&lt;BR /&gt;[ 75.893005] x5 : ffffff800dfe3878 x4 : 0000000000000098&lt;BR /&gt;[ 75.898294] x3 : 000000003da39490 x2 : ffffff800dfe3890&lt;BR /&gt;[ 75.903583] x1 : 0000000000000001 x0 : ffffffc07b73d200&lt;BR /&gt;[ 75.908873] Process fhL�dfJ�ra.elf (pid: -13223110, stack limit = 0xffffff800dfe0000)&lt;BR /&gt;[ 75.916675] Call trace:&lt;BR /&gt;[ 75.919104] Exception stack(0xffffff800dfe3680 to 0xffffff800dfe37c0)&lt;BR /&gt;[ 75.925521] 3680: ffffffc07b73d200 0000000000000001 ffffff800dfe3890 000000003da39490&lt;BR /&gt;[ 75.933324] 36a0: 0000000000000098 ffffff800dfe3878 000000003da39490 0000000000000000&lt;BR /&gt;[ 75.941126] 36c0: 0000007fbbd4a664 0000000000000000 000000003da38980 0000007fb176f970&lt;BR /&gt;[ 75.948929] 36e0: 0000007fbbd4a654 000000003da395e0 000000003da38980 0000007fbbeb79fc&lt;BR /&gt;[ 75.956733] 3700: ffffff80081983f0 0000007fbd14ed70 0000007fbbe85298 ffffff800dfe3890&lt;BR /&gt;[ 75.964536] 3720: ffffff800dfe3878 000000003da39490 ffffffc07b3c9c00 ffffff800dfe3db8&lt;BR /&gt;[ 75.972339] 3740: 000000003da39490 0000000000000124 000000000000001d ffffff8008601000&lt;BR /&gt;[ 75.980142] 3760: ffffffc07a82a400 ffffff800dfe37c0 ffffff80006120d4 ffffff800dfe37c0&lt;BR /&gt;[ 75.987945] 3780: ffffff800060dee0 00000000a0000145 ffffffc07acd8380 ffffffc07df9f760&lt;BR /&gt;[ 75.995748] 37a0: 0000007fffffffff ffffffc07df9f700 ffffff800dfe37c0 ffffff800060dee0&lt;BR /&gt;[ 76.003617] [&amp;lt;ffffff800060dee0&amp;gt;] gckKERNEL_OpenUserData+0x70/0xa0 [galcore]&lt;BR /&gt;[ 76.010553] [&amp;lt;ffffff80006120d4&amp;gt;] _ProcessUserCommandBufferList.constprop.5+0x54/0x278 [galcore]&lt;BR /&gt;[ 76.019223] [&amp;lt;ffffff8000612cdc&amp;gt;] gckCOMMAND_Commit+0x5c/0xb78 [galcore]&lt;BR /&gt;[ 76.025812] [&amp;lt;ffffff800061127c&amp;gt;] gckKERNEL_Dispatch+0xe6c/0x1420 [galcore]&lt;BR /&gt;[ 76.032661] [&amp;lt;ffffff8000611974&amp;gt;] gckDEVICE_Dispatch+0x144/0x158 [galcore]&lt;BR /&gt;[ 76.039423] [&amp;lt;ffffff800060afd8&amp;gt;] drv_ioctl+0xf0/0x1c8 [galcore]&lt;BR /&gt;[ 76.045257] [&amp;lt;ffffff8008197c2c&amp;gt;] do_vfs_ioctl+0xa4/0x868&lt;BR /&gt;[ 76.050542] [&amp;lt;ffffff800819847c&amp;gt;] SyS_ioctl+0x8c/0xa0&lt;BR /&gt;[ 76.055482] Exception stack(0xffffff800dfe3ec0 to 0xffffff800dfe4000)&lt;BR /&gt;[ 76.061900] 3ec0: 0000000000000011 0000000000007530 0000007fb176f750 0000000000000190&lt;BR /&gt;[ 76.069703] 3ee0: 0000007fb176f7e0 0000000000000190 000000003da0b5f0 0000000000000000&lt;BR /&gt;[ 76.077506] 3f00: 000000000000001d 00000000ffffff00 0000007fac000cc0 0000000000000002&lt;BR /&gt;[ 76.085309] 3f20: 0000007fac0635e4 000000003df4df0c 0000007fbbe85298 0000007fbbeb79fc&lt;BR /&gt;[ 76.093112] 3f40: 0000007fbbe9aca8 0000007fbd14ed70 0000007fbbe85298 0000000000002710&lt;BR /&gt;[ 76.100915] 3f60: 0000000000007530 0000007fbbeb7868 0000007fb176f7e0 0000007fb176f750&lt;BR /&gt;[ 76.108718] 3f80: 0000000000000190 0000000000000000 0000007fb1770290 0000007fb176f7e0&lt;BR /&gt;[ 76.116521] 3fa0: 0000007fbdcb8000 0000007fb176f700 0000007fbbe8036c 0000007fb176f700&lt;BR /&gt;[ 76.124324] 3fc0: 0000007fbd14ed7c 0000000020000000 0000000000000011 000000000000001d&lt;BR /&gt;[ 76.132126] 3fe0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000&lt;BR /&gt;[ 76.139931] [&amp;lt;ffffff8008083040&amp;gt;] el0_svc_naked+0x34/0x38&lt;BR /&gt;[ 76.145220] Code: ff383f3e ff383f3e ff39403f ff39403f (ff39403f)&lt;BR /&gt;[ 76.151287] ---[ end trace 6c8beec140fabd96 ]---&lt;BR /&gt;[ 76.155881] Internal error: Oops: 96000004 [#2] SMP&lt;BR /&gt;[ 76.155883] Unable to handle kernel paging request at virtual address 405b56ff415a56&lt;BR /&gt;[ 76.155887] Mem abort info:&lt;BR /&gt;[ 76.155889] Exception class = DABT (current EL), IL = 32 bits&lt;BR /&gt;[ 76.155891] SET = 0, FnV = 0&lt;BR /&gt;[ 76.155892] EA = 0, S1PTW = 0&lt;BR /&gt;[ 76.155893] Data abort info:&lt;BR /&gt;[ 76.155895] ISV = 0, ISS = 0x00000004&lt;BR /&gt;[ 76.155896] CM = 0, WnR = 0&lt;BR /&gt;[ 76.155898] [00405b56ff415a56] address between user and kernel address ranges&lt;BR /&gt;[ 76.200011] Modules linked in: vfb sysimgblt sysfillrect syscopyarea fb_sys_fops viulite(O) jpegdcd(O) h264dcd(O) h264enc(O) fdma(O) seq(O) cam(O) csi(O) oal_driver(O) apex(O) sja1105pqrs(O) nxp galco)&lt;BR /&gt;[ 76.218221] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G D O 4.14.34-rt27+g5d76987 #4&lt;BR /&gt;[ 76.226627] Hardware name: Freescale S32V234 (DT)&lt;BR /&gt;[ 76.231310] task: ffffff80087fe600 task.stack: ffffff80087f0000&lt;BR /&gt;[ 76.237210] PC is at linflex_timer_func+0x2c/0xe0&lt;BR /&gt;[ 76.241889] LR is at linflex_timer_func+0x28/0xe0&lt;BR /&gt;[ 76.246569] pc : [&amp;lt;ffffff800838d84c&amp;gt;] lr : [&amp;lt;ffffff800838d848&amp;gt;] pstate: 00000145&lt;BR /&gt;[ 76.253937] sp : ffffff8008003db0&lt;BR /&gt;[ 76.257232] x29: ffffff8008003db0 x28: 0000000000000020&lt;BR /&gt;[ 76.262521] x27: ffffff80087f5190 x26: 0000000000000001&lt;BR /&gt;[ 76.267810] x25: ffffff80087f5180 x24: 0000000000000100&lt;BR /&gt;[ 76.273098] x23: ffffff80087fe600 x22: ff637855ff627855&lt;BR /&gt;[ 76.278387] x21: ffffffc07a8caa18 x20: 0000000000000100&lt;BR /&gt;[ 76.283676] x19: ffffffc07a8ca818 x18: 0000000000000000&lt;BR /&gt;[ 76.288964] x17: 0000007fbd14da68 x16: ffffff800819b0f0&lt;BR /&gt;[ 76.294253] x15: 0000000000000016 x14: 0000000000000000&lt;BR /&gt;[ 76.299542] x13: ffffffc07df8b760 x12: 0000000000000000&lt;BR /&gt;[ 76.304830] x11: 0000000000000001 x10: ffffff8008003ea0&lt;BR /&gt;[ 76.310119] x9 : ffffffc07df85870 x8 : 0000000000000000&lt;BR /&gt;[ 76.315408] x7 : 0000000000000006 x6 : 0000000000000040&lt;BR /&gt;[ 76.320696] x5 : 0000000000000040 x4 : 000000001fffe4a0&lt;BR /&gt;[ 76.325985] x3 : 0000000000000000 x2 : 0000000000000000&lt;BR /&gt;[ 76.331274] x1 : ffffffc07a8ca818 x0 : ff617956ff5f7955&lt;BR /&gt;[ 76.336564] Process swapper/0 (pid: 0, stack limit = 0xffffff80087f0000)&lt;BR /&gt;[ 76.343238] Call trace:&lt;BR /&gt;[ 76.345668] Exception stack(0xffffff8008003c70 to 0xffffff8008003db0)&lt;BR /&gt;[ 76.352084] 3c60: ff617956ff5f7955 ffffffc07a8ca818&lt;BR /&gt;[ 76.359887] 3c80: 0000000000000000 0000000000000000 000000001fffe4a0 0000000000000040&lt;BR /&gt;[ 76.367691] 3ca0: 0000000000000040 0000000000000006 0000000000000000 ffffffc07df85870&lt;BR /&gt;[ 76.375494] 3cc0: ffffff8008003ea0 0000000000000001 0000000000000000 ffffffc07df8b760&lt;BR /&gt;[ 76.383296] 3ce0: 0000000000000000 0000000000000016 ffffff800819b0f0 0000007fbd14da68&lt;BR /&gt;[ 76.391099] 3d00: 0000000000000000 ffffffc07a8ca818 0000000000000100 ffffffc07a8caa18&lt;BR /&gt;[ 76.398903] 3d20: ff637855ff627855 ffffff80087fe600 0000000000000100 ffffff80087f5180&lt;BR /&gt;[ 76.406706] 3d40: 0000000000000001 ffffff80087f5190 0000000000000020 ffffff8008003db0&lt;BR /&gt;[ 76.414509] 3d60: ffffff800838d848 ffffff8008003db0 ffffff800838d84c 0000000000000145&lt;BR /&gt;[ 76.422312] 3d80: ffffff8008003db0 ffffff800838d848 0000007fffffffff 0000000000000000&lt;BR /&gt;[ 76.430113] 3da0: ffffff8008003db0 ffffff800838d84c&lt;BR /&gt;[ 76.434971] [&amp;lt;ffffff800838d84c&amp;gt;] linflex_timer_func+0x2c/0xe0&lt;BR /&gt;[ 76.440694] [&amp;lt;ffffff80080f2d6c&amp;gt;] call_timer_fn.isra.4+0x24/0x80&lt;BR /&gt;[ 76.446588] [&amp;lt;ffffff80080f2e64&amp;gt;] expire_timers+0x9c/0xb0&lt;BR /&gt;[ 76.451876] [&amp;lt;ffffff80080f2f00&amp;gt;] run_timer_softirq+0x88/0x158&lt;BR /&gt;[ 76.457598] [&amp;lt;ffffff80080811b8&amp;gt;] __do_softirq+0x110/0x238&lt;BR /&gt;[ 76.462975] [&amp;lt;ffffff80080a12b0&amp;gt;] irq_exit+0xc8/0x100&lt;BR /&gt;[ 76.467917] [&amp;lt;ffffff80080e0240&amp;gt;] __handle_domain_irq+0x60/0xb8&lt;BR /&gt;[ 76.473724] [&amp;lt;ffffff8008080ed0&amp;gt;] gic_handle_irq+0x58/0xb0&lt;BR /&gt;[ 76.479099] Exception stack(0xffffff80087f3de0 to 0xffffff80087f3f20)&lt;BR /&gt;[ 76.485516] 3de0: 0000000000000020 ffffff80087dc785 00000040757a9000 0000000000029d08&lt;BR /&gt;[ 76.493319] 3e00: 0000000000000000 ffffff80087f3f20 00000040757a9000 0000000000000001&lt;BR /&gt;[ 76.501122] 3e20: ffffff80087fef60 00000000000001c0 0000000000000900 0000000000000000&lt;BR /&gt;[ 76.508925] 3e40: 0000000000000001 ffffffc07df8b760 0000000000000000 0000000000000000&lt;BR /&gt;[ 76.516728] 3e60: ffffff800819b0f0 0000007fbd14da68 0000000000000000 ffffff80087d9010&lt;BR /&gt;[ 76.524531] 3e80: ffffff80087f89b4 ffffff80087f8928 ffffff80087fe600 ffffff80087fe600&lt;BR /&gt;[ 76.532334] 3ea0: ffffff80087d0028 00000000fffaf968 0000000000000000 00000000fff6c9a0&lt;BR /&gt;[ 76.540137] 3ec0: 0000000080790018 ffffff80087f3f20 ffffff800808486c ffffff80087f3f20&lt;BR /&gt;[ 76.547940] 3ee0: ffffff8008084870 0000000060000145 00000000fffaf968 0000000000000000&lt;BR /&gt;[ 76.555743] 3f00: ffffffffffffffff ffffff800885b000 ffffff80087f3f20 ffffff8008084870&lt;BR /&gt;[ 76.563546] [&amp;lt;ffffff8008082930&amp;gt;] el1_irq+0xb0/0x140&lt;BR /&gt;[ 76.568402] [&amp;lt;ffffff8008084870&amp;gt;] arch_cpu_idle+0x10/0x18&lt;BR /&gt;[ 76.573691] [&amp;lt;ffffff80080d57d0&amp;gt;] do_idle+0xd8/0x110&lt;BR /&gt;[ 76.578545] [&amp;lt;ffffff80080d5960&amp;gt;] cpu_startup_entry+0x20/0x28&lt;BR /&gt;[ 76.584183] [&amp;lt;ffffff80085f24c4&amp;gt;] rest_init+0xac/0xb8&lt;BR /&gt;[ 76.589124] [&amp;lt;ffffff8008790b70&amp;gt;] start_kernel+0x384/0x398&lt;BR /&gt;[ 76.594498] Code: aa1503e0 f9405a76 97f5931f f940da60 (f9400001)&lt;BR /&gt;[ 76.600565] ---[ end trace 6c8beec140fabd97 ]---&lt;BR /&gt;[ 76.605161] Kernel panic - not syncing: Fatal exception in interrupt&lt;BR /&gt;[ 76.611491] SMP: stopping secondary CPUs&lt;BR /&gt;[ 77.635847] SMP: failed to stop secondary CPUs 0-1&lt;BR /&gt;[ 77.640276] Kernel Offset: disabled&lt;BR /&gt;[ 77.643744] CPU features: 0x0802004&lt;BR /&gt;[ 77.647210] Memory Limit: none&lt;BR /&gt;[ 77.650248] ---[ end Kernel panic - not syncing: Fatal exception in interrupt&lt;BR /&gt;[ 77.657377] Unable to handle kernel paging request at virtual address ffffff800d483ea0&lt;BR /&gt;[ 77.665244] Mem abort info:&lt;BR /&gt;[ 77.668019] Exception class = DABT (current EL), IL = 32 bits&lt;BR /&gt;[ 77.673914] SET = 0, FnV = 0&lt;BR /&gt;[ 77.676949] EA = 0, S1PTW = 0&lt;BR /&gt;[ 77.680070] Data abort info:&lt;BR /&gt;[ 77.682931] ISV = 0, ISS = 0x00000007&lt;BR /&gt;[ 77.686746] CM = 0, WnR = 0&lt;BR /&gt;[ 77.689695] swapper pgtable: 4k pages, 39-bit VAs, pgd = ffffff800889b000&lt;BR /&gt;[ 77.696457] [ffffff800d483ea0] *pgd=00000000fdffe803, *pud=00000000fdffe803, *pmd=00000000faac2003, *pte=ffd7d8daffd6d8da&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
    <pubDate>Fri, 16 Oct 2020 10:06:11 GMT</pubDate>
    <dc:creator>huangjacky</dc:creator>
    <dc:date>2020-10-16T10:06:11Z</dc:date>
    <item>
      <title>How to make Opengl render on virtual framebuffer</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-to-make-Opengl-render-on-virtual-framebuffer/m-p/1168819#M163576</link>
      <description>&lt;P&gt;Hi All:&lt;/P&gt;&lt;P&gt;I have built the vfb driver as module, below is the command of insmod driver sequence.&lt;/P&gt;&lt;P&gt;insmod fb_sys_fops.ko&lt;BR /&gt;insmod syscopyarea.ko&lt;BR /&gt;insmod sysfillrect.ko&lt;BR /&gt;insmod sysimgblt.ko&lt;BR /&gt;insmod vfb.ko vfb_enable=1 videomemorysize=3&lt;SPAN&gt;6864&lt;/SPAN&gt;00&lt;/P&gt;&lt;P&gt;my display resolution is 1280x720-32bpp, so I modify the&amp;nbsp;fb_videomode in vfb.c as below:&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;static&lt;/SPAN&gt; &lt;SPAN&gt;const&lt;/SPAN&gt; &lt;SPAN&gt;struct&lt;/SPAN&gt; &lt;SPAN&gt;fb_videomode&lt;/SPAN&gt; &lt;SPAN&gt;vfb_default1&lt;/SPAN&gt;&lt;SPAN&gt; = {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;.refresh = &lt;/SPAN&gt;&lt;SPAN&gt;60&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;.xres = &lt;/SPAN&gt;&lt;SPAN&gt;1280&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;.yres = &lt;/SPAN&gt;&lt;SPAN&gt;720&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;.pixclock = &lt;/SPAN&gt;&lt;SPAN&gt;13426&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;.left_margin = &lt;/SPAN&gt;&lt;SPAN&gt;192&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;.right_margin = &lt;/SPAN&gt;&lt;SPAN&gt;64&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;.upper_margin = &lt;/SPAN&gt;&lt;SPAN&gt;22&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;.lower_margin = &lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;.hsync_len = &lt;/SPAN&gt;&lt;SPAN&gt;136&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;.vsync_len = &lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;.vmode = &lt;/SPAN&gt;&lt;SPAN&gt;FB_VMODE_NONINTERLACED&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;};&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (!&lt;/SPAN&gt;&lt;SPAN&gt;fb_find_mode&lt;/SPAN&gt;&lt;SPAN&gt;(&amp;amp;&lt;/SPAN&gt;&lt;SPAN&gt;info&lt;/SPAN&gt;&lt;SPAN&gt;-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;var&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;info&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;mode_option&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;NULL&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;, &amp;amp;&lt;/SPAN&gt;&lt;SPAN&gt;vfb_default1&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;32&lt;/SPAN&gt;&lt;SPAN&gt;)){&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;fb_err&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;info&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"Unable to find usable video mode.&lt;/SPAN&gt;&lt;SPAN&gt;\n&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;retval&lt;/SPAN&gt;&lt;SPAN&gt; = -&lt;/SPAN&gt;&lt;SPAN&gt;EINVAL&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;goto&lt;/SPAN&gt; &lt;SPAN&gt;err1&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;after insmod the vfb driver, I got /dev/fb8&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;however, when my test program run the code:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;FONT color="#0000FF"&gt; eglNativeDisplayType = fbGetDisplayByIndex(8);&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I got the error and kernel panic as below:&lt;/DIV&gt;&lt;DIV&gt;my question is how to use Opengles render on virtual frame buffer.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;********************************************************************************************&lt;/DIV&gt;&lt;DIV&gt;&lt;P&gt;[ 74.713232] Probing I2c client @ 0x6a on I2C bus #0.&lt;BR /&gt;[ 74.718074] Generic camera I2c driver added successfully.&lt;BR /&gt;[ 74.723301] Probing I2c client @ 0x40 on I2C bus #0.&lt;BR /&gt;[ 74.728356] Probing I2c client @ 0x5d on I2C bus #0.&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;[ 1] fbdev_GetDisplayByIndex(400): set prefetch failed&lt;/FONT&gt;&lt;BR /&gt;width: 1280 height: 720&lt;BR /&gt;vObj.num 60672&lt;BR /&gt;floorTexture 1&lt;BR /&gt;camTexture 2&lt;BR /&gt;[ 75.722366] Internal error: undefined instruction: 0 [#1] SMP&lt;BR /&gt;[ 75.727758] Modules linked in: vfb sysimgblt sysfillrect syscopyarea fb_sys_fops viulite(O) jpegdcd(O) h264dcd(O) h264enc(O) fdma(O) seq(O) cam(O) csi(O) oal_driver(O) apex(O) sja1105pqrs(O) nxp galco)&lt;BR /&gt;[ 75.745968] CPU: 1 PID: -13223110 Comm: fhL�dfJ�ra.elf Tainted: G O 4.14.34-rt27+g5d76987 #4&lt;BR /&gt;[ 75.755499] Hardware name: Freescale S32V234 (DT)&lt;BR /&gt;[ 75.760183] task: ffffffc07a82a400 task.stack: ffffff800dfe0000&lt;BR /&gt;[ 75.766157] PC is at gckKERNEL_OpenUserData+0x70/0xa0 [galcore]&lt;BR /&gt;[ 75.772042] LR is at _ProcessUserCommandBufferList.constprop.5+0x54/0x278 [galcore]&lt;BR /&gt;[ 75.773219] Unable to handle kernel paging request at virtual address 617956ff5f7955&lt;BR /&gt;[ 75.773220] Mem abort info:&lt;BR /&gt;[ 75.773223] Exception class = DABT (current EL), IL = 32 bits&lt;BR /&gt;[ 75.773225] SET = 0, FnV = 0&lt;BR /&gt;[ 75.773226] EA = 0, S1PTW = 0&lt;BR /&gt;[ 75.773227] Data abort info:&lt;BR /&gt;[ 75.773229] ISV = 0, ISS = 0x00000004&lt;BR /&gt;[ 75.773231] CM = 0, WnR = 0&lt;BR /&gt;[ 75.773233] [00617956ff5f7955] address between user and kernel address ranges&lt;BR /&gt;[ 75.818878] pc : [&amp;lt;ffffff800060dee0&amp;gt;] lr : [&amp;lt;ffffff80006120d4&amp;gt;] pstate: a0000145&lt;BR /&gt;[ 75.826246] sp : ffffff800dfe37c0&lt;BR /&gt;[ 75.829541] x29: ffffff800dfe37c0 x28: ffffffc07a82a400&lt;BR /&gt;[ 75.834830] x27: ffffff8008601000 x26: 000000000000001d&lt;BR /&gt;[ 75.840118] x25: 0000000000000124 x24: 000000003da39490&lt;BR /&gt;[ 75.845407] x23: ffffff800dfe3db8 x22: ffffffc07b3c9c00&lt;BR /&gt;[ 75.850696] x21: 000000003da39490 x20: ffffff800dfe3878&lt;BR /&gt;[ 75.855985] x19: ffffff800dfe3890 x18: 0000007fbbe85298&lt;BR /&gt;[ 75.861273] x17: 0000007fbd14ed70 x16: ffffff80081983f0&lt;BR /&gt;[ 75.866562] x15: 0000007fbbeb79fc x14: 000000003da38980&lt;BR /&gt;[ 75.871851] x13: 000000003da395e0 x12: 0000007fbbd4a654&lt;BR /&gt;[ 75.877139] x11: 0000007fb176f970 x10: 000000003da38980&lt;BR /&gt;[ 75.882428] x9 : 0000000000000000 x8 : 0000007fbbd4a664&lt;BR /&gt;[ 75.887717] x7 : 0000000000000000 x6 : 000000003da39490&lt;BR /&gt;[ 75.893005] x5 : ffffff800dfe3878 x4 : 0000000000000098&lt;BR /&gt;[ 75.898294] x3 : 000000003da39490 x2 : ffffff800dfe3890&lt;BR /&gt;[ 75.903583] x1 : 0000000000000001 x0 : ffffffc07b73d200&lt;BR /&gt;[ 75.908873] Process fhL�dfJ�ra.elf (pid: -13223110, stack limit = 0xffffff800dfe0000)&lt;BR /&gt;[ 75.916675] Call trace:&lt;BR /&gt;[ 75.919104] Exception stack(0xffffff800dfe3680 to 0xffffff800dfe37c0)&lt;BR /&gt;[ 75.925521] 3680: ffffffc07b73d200 0000000000000001 ffffff800dfe3890 000000003da39490&lt;BR /&gt;[ 75.933324] 36a0: 0000000000000098 ffffff800dfe3878 000000003da39490 0000000000000000&lt;BR /&gt;[ 75.941126] 36c0: 0000007fbbd4a664 0000000000000000 000000003da38980 0000007fb176f970&lt;BR /&gt;[ 75.948929] 36e0: 0000007fbbd4a654 000000003da395e0 000000003da38980 0000007fbbeb79fc&lt;BR /&gt;[ 75.956733] 3700: ffffff80081983f0 0000007fbd14ed70 0000007fbbe85298 ffffff800dfe3890&lt;BR /&gt;[ 75.964536] 3720: ffffff800dfe3878 000000003da39490 ffffffc07b3c9c00 ffffff800dfe3db8&lt;BR /&gt;[ 75.972339] 3740: 000000003da39490 0000000000000124 000000000000001d ffffff8008601000&lt;BR /&gt;[ 75.980142] 3760: ffffffc07a82a400 ffffff800dfe37c0 ffffff80006120d4 ffffff800dfe37c0&lt;BR /&gt;[ 75.987945] 3780: ffffff800060dee0 00000000a0000145 ffffffc07acd8380 ffffffc07df9f760&lt;BR /&gt;[ 75.995748] 37a0: 0000007fffffffff ffffffc07df9f700 ffffff800dfe37c0 ffffff800060dee0&lt;BR /&gt;[ 76.003617] [&amp;lt;ffffff800060dee0&amp;gt;] gckKERNEL_OpenUserData+0x70/0xa0 [galcore]&lt;BR /&gt;[ 76.010553] [&amp;lt;ffffff80006120d4&amp;gt;] _ProcessUserCommandBufferList.constprop.5+0x54/0x278 [galcore]&lt;BR /&gt;[ 76.019223] [&amp;lt;ffffff8000612cdc&amp;gt;] gckCOMMAND_Commit+0x5c/0xb78 [galcore]&lt;BR /&gt;[ 76.025812] [&amp;lt;ffffff800061127c&amp;gt;] gckKERNEL_Dispatch+0xe6c/0x1420 [galcore]&lt;BR /&gt;[ 76.032661] [&amp;lt;ffffff8000611974&amp;gt;] gckDEVICE_Dispatch+0x144/0x158 [galcore]&lt;BR /&gt;[ 76.039423] [&amp;lt;ffffff800060afd8&amp;gt;] drv_ioctl+0xf0/0x1c8 [galcore]&lt;BR /&gt;[ 76.045257] [&amp;lt;ffffff8008197c2c&amp;gt;] do_vfs_ioctl+0xa4/0x868&lt;BR /&gt;[ 76.050542] [&amp;lt;ffffff800819847c&amp;gt;] SyS_ioctl+0x8c/0xa0&lt;BR /&gt;[ 76.055482] Exception stack(0xffffff800dfe3ec0 to 0xffffff800dfe4000)&lt;BR /&gt;[ 76.061900] 3ec0: 0000000000000011 0000000000007530 0000007fb176f750 0000000000000190&lt;BR /&gt;[ 76.069703] 3ee0: 0000007fb176f7e0 0000000000000190 000000003da0b5f0 0000000000000000&lt;BR /&gt;[ 76.077506] 3f00: 000000000000001d 00000000ffffff00 0000007fac000cc0 0000000000000002&lt;BR /&gt;[ 76.085309] 3f20: 0000007fac0635e4 000000003df4df0c 0000007fbbe85298 0000007fbbeb79fc&lt;BR /&gt;[ 76.093112] 3f40: 0000007fbbe9aca8 0000007fbd14ed70 0000007fbbe85298 0000000000002710&lt;BR /&gt;[ 76.100915] 3f60: 0000000000007530 0000007fbbeb7868 0000007fb176f7e0 0000007fb176f750&lt;BR /&gt;[ 76.108718] 3f80: 0000000000000190 0000000000000000 0000007fb1770290 0000007fb176f7e0&lt;BR /&gt;[ 76.116521] 3fa0: 0000007fbdcb8000 0000007fb176f700 0000007fbbe8036c 0000007fb176f700&lt;BR /&gt;[ 76.124324] 3fc0: 0000007fbd14ed7c 0000000020000000 0000000000000011 000000000000001d&lt;BR /&gt;[ 76.132126] 3fe0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000&lt;BR /&gt;[ 76.139931] [&amp;lt;ffffff8008083040&amp;gt;] el0_svc_naked+0x34/0x38&lt;BR /&gt;[ 76.145220] Code: ff383f3e ff383f3e ff39403f ff39403f (ff39403f)&lt;BR /&gt;[ 76.151287] ---[ end trace 6c8beec140fabd96 ]---&lt;BR /&gt;[ 76.155881] Internal error: Oops: 96000004 [#2] SMP&lt;BR /&gt;[ 76.155883] Unable to handle kernel paging request at virtual address 405b56ff415a56&lt;BR /&gt;[ 76.155887] Mem abort info:&lt;BR /&gt;[ 76.155889] Exception class = DABT (current EL), IL = 32 bits&lt;BR /&gt;[ 76.155891] SET = 0, FnV = 0&lt;BR /&gt;[ 76.155892] EA = 0, S1PTW = 0&lt;BR /&gt;[ 76.155893] Data abort info:&lt;BR /&gt;[ 76.155895] ISV = 0, ISS = 0x00000004&lt;BR /&gt;[ 76.155896] CM = 0, WnR = 0&lt;BR /&gt;[ 76.155898] [00405b56ff415a56] address between user and kernel address ranges&lt;BR /&gt;[ 76.200011] Modules linked in: vfb sysimgblt sysfillrect syscopyarea fb_sys_fops viulite(O) jpegdcd(O) h264dcd(O) h264enc(O) fdma(O) seq(O) cam(O) csi(O) oal_driver(O) apex(O) sja1105pqrs(O) nxp galco)&lt;BR /&gt;[ 76.218221] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G D O 4.14.34-rt27+g5d76987 #4&lt;BR /&gt;[ 76.226627] Hardware name: Freescale S32V234 (DT)&lt;BR /&gt;[ 76.231310] task: ffffff80087fe600 task.stack: ffffff80087f0000&lt;BR /&gt;[ 76.237210] PC is at linflex_timer_func+0x2c/0xe0&lt;BR /&gt;[ 76.241889] LR is at linflex_timer_func+0x28/0xe0&lt;BR /&gt;[ 76.246569] pc : [&amp;lt;ffffff800838d84c&amp;gt;] lr : [&amp;lt;ffffff800838d848&amp;gt;] pstate: 00000145&lt;BR /&gt;[ 76.253937] sp : ffffff8008003db0&lt;BR /&gt;[ 76.257232] x29: ffffff8008003db0 x28: 0000000000000020&lt;BR /&gt;[ 76.262521] x27: ffffff80087f5190 x26: 0000000000000001&lt;BR /&gt;[ 76.267810] x25: ffffff80087f5180 x24: 0000000000000100&lt;BR /&gt;[ 76.273098] x23: ffffff80087fe600 x22: ff637855ff627855&lt;BR /&gt;[ 76.278387] x21: ffffffc07a8caa18 x20: 0000000000000100&lt;BR /&gt;[ 76.283676] x19: ffffffc07a8ca818 x18: 0000000000000000&lt;BR /&gt;[ 76.288964] x17: 0000007fbd14da68 x16: ffffff800819b0f0&lt;BR /&gt;[ 76.294253] x15: 0000000000000016 x14: 0000000000000000&lt;BR /&gt;[ 76.299542] x13: ffffffc07df8b760 x12: 0000000000000000&lt;BR /&gt;[ 76.304830] x11: 0000000000000001 x10: ffffff8008003ea0&lt;BR /&gt;[ 76.310119] x9 : ffffffc07df85870 x8 : 0000000000000000&lt;BR /&gt;[ 76.315408] x7 : 0000000000000006 x6 : 0000000000000040&lt;BR /&gt;[ 76.320696] x5 : 0000000000000040 x4 : 000000001fffe4a0&lt;BR /&gt;[ 76.325985] x3 : 0000000000000000 x2 : 0000000000000000&lt;BR /&gt;[ 76.331274] x1 : ffffffc07a8ca818 x0 : ff617956ff5f7955&lt;BR /&gt;[ 76.336564] Process swapper/0 (pid: 0, stack limit = 0xffffff80087f0000)&lt;BR /&gt;[ 76.343238] Call trace:&lt;BR /&gt;[ 76.345668] Exception stack(0xffffff8008003c70 to 0xffffff8008003db0)&lt;BR /&gt;[ 76.352084] 3c60: ff617956ff5f7955 ffffffc07a8ca818&lt;BR /&gt;[ 76.359887] 3c80: 0000000000000000 0000000000000000 000000001fffe4a0 0000000000000040&lt;BR /&gt;[ 76.367691] 3ca0: 0000000000000040 0000000000000006 0000000000000000 ffffffc07df85870&lt;BR /&gt;[ 76.375494] 3cc0: ffffff8008003ea0 0000000000000001 0000000000000000 ffffffc07df8b760&lt;BR /&gt;[ 76.383296] 3ce0: 0000000000000000 0000000000000016 ffffff800819b0f0 0000007fbd14da68&lt;BR /&gt;[ 76.391099] 3d00: 0000000000000000 ffffffc07a8ca818 0000000000000100 ffffffc07a8caa18&lt;BR /&gt;[ 76.398903] 3d20: ff637855ff627855 ffffff80087fe600 0000000000000100 ffffff80087f5180&lt;BR /&gt;[ 76.406706] 3d40: 0000000000000001 ffffff80087f5190 0000000000000020 ffffff8008003db0&lt;BR /&gt;[ 76.414509] 3d60: ffffff800838d848 ffffff8008003db0 ffffff800838d84c 0000000000000145&lt;BR /&gt;[ 76.422312] 3d80: ffffff8008003db0 ffffff800838d848 0000007fffffffff 0000000000000000&lt;BR /&gt;[ 76.430113] 3da0: ffffff8008003db0 ffffff800838d84c&lt;BR /&gt;[ 76.434971] [&amp;lt;ffffff800838d84c&amp;gt;] linflex_timer_func+0x2c/0xe0&lt;BR /&gt;[ 76.440694] [&amp;lt;ffffff80080f2d6c&amp;gt;] call_timer_fn.isra.4+0x24/0x80&lt;BR /&gt;[ 76.446588] [&amp;lt;ffffff80080f2e64&amp;gt;] expire_timers+0x9c/0xb0&lt;BR /&gt;[ 76.451876] [&amp;lt;ffffff80080f2f00&amp;gt;] run_timer_softirq+0x88/0x158&lt;BR /&gt;[ 76.457598] [&amp;lt;ffffff80080811b8&amp;gt;] __do_softirq+0x110/0x238&lt;BR /&gt;[ 76.462975] [&amp;lt;ffffff80080a12b0&amp;gt;] irq_exit+0xc8/0x100&lt;BR /&gt;[ 76.467917] [&amp;lt;ffffff80080e0240&amp;gt;] __handle_domain_irq+0x60/0xb8&lt;BR /&gt;[ 76.473724] [&amp;lt;ffffff8008080ed0&amp;gt;] gic_handle_irq+0x58/0xb0&lt;BR /&gt;[ 76.479099] Exception stack(0xffffff80087f3de0 to 0xffffff80087f3f20)&lt;BR /&gt;[ 76.485516] 3de0: 0000000000000020 ffffff80087dc785 00000040757a9000 0000000000029d08&lt;BR /&gt;[ 76.493319] 3e00: 0000000000000000 ffffff80087f3f20 00000040757a9000 0000000000000001&lt;BR /&gt;[ 76.501122] 3e20: ffffff80087fef60 00000000000001c0 0000000000000900 0000000000000000&lt;BR /&gt;[ 76.508925] 3e40: 0000000000000001 ffffffc07df8b760 0000000000000000 0000000000000000&lt;BR /&gt;[ 76.516728] 3e60: ffffff800819b0f0 0000007fbd14da68 0000000000000000 ffffff80087d9010&lt;BR /&gt;[ 76.524531] 3e80: ffffff80087f89b4 ffffff80087f8928 ffffff80087fe600 ffffff80087fe600&lt;BR /&gt;[ 76.532334] 3ea0: ffffff80087d0028 00000000fffaf968 0000000000000000 00000000fff6c9a0&lt;BR /&gt;[ 76.540137] 3ec0: 0000000080790018 ffffff80087f3f20 ffffff800808486c ffffff80087f3f20&lt;BR /&gt;[ 76.547940] 3ee0: ffffff8008084870 0000000060000145 00000000fffaf968 0000000000000000&lt;BR /&gt;[ 76.555743] 3f00: ffffffffffffffff ffffff800885b000 ffffff80087f3f20 ffffff8008084870&lt;BR /&gt;[ 76.563546] [&amp;lt;ffffff8008082930&amp;gt;] el1_irq+0xb0/0x140&lt;BR /&gt;[ 76.568402] [&amp;lt;ffffff8008084870&amp;gt;] arch_cpu_idle+0x10/0x18&lt;BR /&gt;[ 76.573691] [&amp;lt;ffffff80080d57d0&amp;gt;] do_idle+0xd8/0x110&lt;BR /&gt;[ 76.578545] [&amp;lt;ffffff80080d5960&amp;gt;] cpu_startup_entry+0x20/0x28&lt;BR /&gt;[ 76.584183] [&amp;lt;ffffff80085f24c4&amp;gt;] rest_init+0xac/0xb8&lt;BR /&gt;[ 76.589124] [&amp;lt;ffffff8008790b70&amp;gt;] start_kernel+0x384/0x398&lt;BR /&gt;[ 76.594498] Code: aa1503e0 f9405a76 97f5931f f940da60 (f9400001)&lt;BR /&gt;[ 76.600565] ---[ end trace 6c8beec140fabd97 ]---&lt;BR /&gt;[ 76.605161] Kernel panic - not syncing: Fatal exception in interrupt&lt;BR /&gt;[ 76.611491] SMP: stopping secondary CPUs&lt;BR /&gt;[ 77.635847] SMP: failed to stop secondary CPUs 0-1&lt;BR /&gt;[ 77.640276] Kernel Offset: disabled&lt;BR /&gt;[ 77.643744] CPU features: 0x0802004&lt;BR /&gt;[ 77.647210] Memory Limit: none&lt;BR /&gt;[ 77.650248] ---[ end Kernel panic - not syncing: Fatal exception in interrupt&lt;BR /&gt;[ 77.657377] Unable to handle kernel paging request at virtual address ffffff800d483ea0&lt;BR /&gt;[ 77.665244] Mem abort info:&lt;BR /&gt;[ 77.668019] Exception class = DABT (current EL), IL = 32 bits&lt;BR /&gt;[ 77.673914] SET = 0, FnV = 0&lt;BR /&gt;[ 77.676949] EA = 0, S1PTW = 0&lt;BR /&gt;[ 77.680070] Data abort info:&lt;BR /&gt;[ 77.682931] ISV = 0, ISS = 0x00000007&lt;BR /&gt;[ 77.686746] CM = 0, WnR = 0&lt;BR /&gt;[ 77.689695] swapper pgtable: 4k pages, 39-bit VAs, pgd = ffffff800889b000&lt;BR /&gt;[ 77.696457] [ffffff800d483ea0] *pgd=00000000fdffe803, *pud=00000000fdffe803, *pmd=00000000faac2003, *pte=ffd7d8daffd6d8da&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Fri, 16 Oct 2020 10:06:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-to-make-Opengl-render-on-virtual-framebuffer/m-p/1168819#M163576</guid>
      <dc:creator>huangjacky</dc:creator>
      <dc:date>2020-10-16T10:06:11Z</dc:date>
    </item>
    <item>
      <title>Re: How to make Opengl render on virtual framebuffer</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-to-make-Opengl-render-on-virtual-framebuffer/m-p/1168891#M163583</link>
      <description>&lt;P&gt;Hello huangjacky,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Which processor are you using? with BSP version? Your code runs well on MX6Q on L4.19.35 BSP.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 16 Oct 2020 12:59:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-to-make-Opengl-render-on-virtual-framebuffer/m-p/1168891#M163583</guid>
      <dc:creator>Bio_TICFSL</dc:creator>
      <dc:date>2020-10-16T12:59:27Z</dc:date>
    </item>
    <item>
      <title>Re: How to make Opengl render on virtual framebuffer</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-to-make-Opengl-render-on-virtual-framebuffer/m-p/1168902#M163585</link>
      <description>Hi Bio_TICFSL: the Log is printed by S32V, bsp18_kernel_4.14.34. my code is work well on MX6Q with /dev/fb0, but not test for vfb I just porting the code from MX6Q to S32V and render to vfb.</description>
      <pubDate>Fri, 16 Oct 2020 13:21:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-to-make-Opengl-render-on-virtual-framebuffer/m-p/1168902#M163585</guid>
      <dc:creator>huangjacky</dc:creator>
      <dc:date>2020-10-16T13:21:50Z</dc:date>
    </item>
  </channel>
</rss>

