IMX257 framebuffer problem
Hi,
I am porting Linux 3.6.2 to a board with Freescale IMX 257 ARM-CPU.
Linux works mostly, kernel can run, and Debian can run with kernel, too.
So I can get access via UART to Debian's Linux console and install packages via apt-get and so on.
So the next step is to enable the graphics support.
The line "imx25_add_imx_fb(&mx25cevipro_fb_pdata);" enables this.
Linux kernel works fine when this line is uncommented, but when it is active kernel stops before print out the first message on serial line.
So openocd prints with general U-Boot kernel boot:
WARNING: unknown debug reason: 0xf
ThumbEE -- incomplete support
target state: halted
target halted in ThumbEE state due to debug-request, current mode: System
cpsr: 0xffffffff pc: 0xfffffff9
MMU: enabled, D-Cache: enabled, I-Cache: enabled
And if I use gdb for loading and step through the source beginning from add_imx_fb(...) line I will get these output from openocd:
Unable to set 32 bit software breakpoint at address 8057c7e0 - check that memory is read/writable Unable to set 32 bit software breakpoint at address 8057c7e0 - check that memory is read/writable breakpoint not set
Quoted 1 line
poll
background polling: on
TAP: imx25.cpu (enabled)
target state: halted
target halted in ARM state due to breakpoint, current mode: Supervisor
cpsr: 0x40000013 pc: 0x8057c7e0
MMU: enabled, D-Cache: enabled, I-Cache: enabled
Quoted 1 line
step
target state: halted
target halted in ARM state due to breakpoint, current mode: Supervisor
cpsr: 0x40000013 pc: 0x8057c7e0
MMU: enabled, D-Cache: enabled, I-Cache: enabled
pc doesn't change anymore.
The board bsp (with the add_imx_fb(...) line) is this one: http://paste.debian.net/hidden/10d828f8/
And this is based on bsp from Freescale MX25 3DS board: http://paste.debian.net/hidden/50ada4ee/ or arch/arm/mach-imx/mach-mx25_3ds.c in kernel tree
There a two screenshots from ddd-Debugger attached. The on is code view, and the other the backtrace.
What could be the problem?
(Display is connected via LVDS).
Thanks
Stefan Koch
I have moved this message to linux-fbdev mailing list.
Am 02.11.2012 21:44, schrieb Stefan Koch:
Quoted 56 lines
Hi,
I am porting Linux 3.6.2 to a board with Freescale IMX 257 ARM-CPU.
Linux works mostly, kernel can run, and Debian can run with kernel, too.
So I can get access via UART to Debian's Linux console and install packages via apt-get and so on.
So the next step is to enable the graphics support.
The line "
imx25_add_imx_fb(&mx25cevipro_fb_pdata);" enables this.Linux kernel works fine when this line is uncommented, but when it is active kernel stops before print out the first message on serial line.
So openocd prints with general U-Boot kernel boot:
WARNING: unknown debug reason:0xf
ThumbEE -- incomplete support
target state: halted
target halted in ThumbEE state due to debug-request, current mode: System
cpsr:0xffffffffpc:0xfffffff9
MMU: enabled, D-Cache: enabled, I-Cache: enabledAnd if I use gdb for loading and step through the source beginning from
add_imx_fb(...)line I will get these output from openocd:Unable to set 32 bit software breakpoint at address
8057c7e0- check that memory is read/writable Unable to set 32 bit software breakpoint at address8057c7e0- check that memory is read/writable breakpoint not setQuoted 1 line
poll
background polling: on
TAP: imx25.cpu (enabled)
target state: halted
target halted in ARM state due to breakpoint, current mode: Supervisor
cpsr:0x40000013pc:0x8057c7e0
MMU: enabled, D-Cache: enabled, I-Cache: enabledQuoted 1 line
step
target state: halted
target halted in ARM state due to breakpoint, current mode: Supervisor
cpsr:0x40000013pc:0x8057c7e0
MMU: enabled, D-Cache: enabled, I-Cache: enabledpc doesn't change anymore.
The board bsp (with the
add_imx_fb(...)line) is this one: http://paste.debian.net/hidden/10d828f8/
And this is based on bsp from Freescale MX25 3DS board: http://paste.debian.net/hidden/50ada4ee/ orarch/arm/mach-imx/mach-mx25_3ds.cin kernel treeThere a two screenshots from ddd-Debugger attached. The on is code view, and the other the backtrace.
What could be the problem?
(Display is connected via LVDS).
Thanks
Stefan Koch
Quoted 1 line · Stefan Koch
Quoted 1 line
What could be the problem?
Find out what exactly is happening after calling add_imx_fb(). Call it a bit later so that you can see everything on the UART. You can hack the call into init/main.c or something else...
Signature · 2 lines
Thanks, //richard
I'll try it...
Could be this a problem?:
"imx-sdma imx35-sdma: firmware not found" appears when booting the kernel without enabled fb.
In FB enabled kernel's the last debugable function is imx_add_platform_device_dmamask()
Both have "dma" in the string...
But for loading a firmware from filesystem, the kernel crashes to early, I think.
If you subscribed to linux-fbdev mailing list, can you check If my message is come in there? Because marc.info archives does not show my messages on linux-fbdev, but all from other people after my message. I have send the message more times.
Thanks
Am 05.11.2012 11:43, schrieb richard -rw- weinberger:
Quoted 6 lines · Stefan Koch
Quoted 1 line
Quoted 1 line
What could be the problem?
Find out what exactly is happening after calling
add_imx_fb(). Call it a bit later so that you can see everything on the UART. You can hack the call intoinit/main.cor something else...
Ignore my first message that I have moved this message to linux-fbdev. This was not successful so this message is still at linux-kernel.
If I add "video=imxfb:SVGA-16@60" to kernel command line, then there are new messages when init fb within BSP file:
Division by zero in kernel.
[<80019ba4>] (unwind_backtrace+0x0/0xf4) from [<8022accc>] (Ldiv0+0x8/0x10) [<8022accc>] (Ldiv0+0x8/0x10) from [<8022ac9c>] (__aeabi_uidivmod+0x8/0x18) [<8022ac9c>] (__aeabi_uidivmod+0x8/0x18) from [<80254198>] (cfb_imageblit+0x1fc/0x4b0) [<80254198>] (cfb_imageblit+0x1fc/0x4b0) from [<80251c94>] (soft_cursor+0x158/0x1bc) [<80251c94>] (soft_cursor+0x158/0x1bc) from [<80251664>] (bit_cursor+0x4ac/0x4c8) [<80251664>] (bit_cursor+0x4ac/0x4c8) from [<8024bcd8>] (fb_flashcursor+0x108/0x124) [<8024bcd8>] (fb_flashcursor+0x108/0x124) from [<8003cc00>] (process_one_work+0x188/0x4fc) [<8003cc00>] (process_one_work+0x188/0x4fc) from [<8003d458>] (worker_thread+0x130/0x598) [<8003d458>] (worker_thread+0x130/0x598) from [<80043ef0>] (kthread+0x8c/0x98) [<80043ef0>] (kthread+0x8c/0x98) from [<80015268>] (kernel_thread_exit+0x0/0x8) Division by zero in kernel.
[<80019ba4>] (unwind_backtrace+0x0/0xf4) from [<8022accc>] (Ldiv0+0x8/0x10) [<8022accc>] (Ldiv0+0x8/0x10) from [<8022ac9c>] (__aeabi_uidivmod+0x8/0x18) [<8022ac9c>] (__aeabi_uidivmod+0x8/0x18) from [<80254198>] (cfb_imageblit+0x1fc/0x4b0) [<80254198>] (cfb_imageblit+0x1fc/0x4b0) from [<80251c94>] (soft_cursor+0x158/0x1bc) [<80251c94>] (soft_cursor+0x158/0x1bc) from [<80251664>] (bit_cursor+0x4ac/0x4c8) [<80251664>] (bit_cursor+0x4ac/0x4c8) from [<8024bcd8>] (fb_flashcursor+0x108/0x124) [<8024bcd8>] (fb_flashcursor+0x108/0x124) from [<8003cc00>] (process_one_work+0x188/0x4fc) [<8003cc00>] (process_one_work+0x188/0x4fc) from [<8003d458>] (worker_thread+0x130/0x598) [<8003d458>] (worker_thread+0x130/0x598) from [<80043ef0>] (kthread+0x8c/0x98) [<80043ef0>] (kthread+0x8c/0x98) from [<80015268>] (kernel_thread_exit+0x0/0x8) Division by zero in kernel.
Without this command line parameter the "cpsr: 0xffffffff pc: 0xfffffff9" error still occurs.
The boot works fine when I add the fb_init as you suggested in the main.c from kernel. But I have no /dev/fb0 device. And there are no messages about framebuffer in dmesg.
Thanks
Am 05.11.2012 11:43, schrieb richard -rw- weinberger:
Quoted 6 lines · Stefan Koch
Quoted 1 line
Quoted 1 line
What could be the problem?
Find out what exactly is happening after calling
add_imx_fb(). Call it a bit later so that you can see everything on the UART. You can hack the call intoinit/main.cor something else...
At last posting this message to linux-fbdev has worked. Refer to this: http://marc.info/?l=linux-fbdev&m=135229680920277&w=2