[okl4-developer] okl4: system hangs if I use virtual_lcd_get_mode

Nelson Tam nelson at ok-labs.com
Fri Aug 15 10:39:38 EST 2008


Hi Dennis,

On 14/08/2008, at 11:32 PM, Dennis Gessner wrote:

> is there any reason, why okl4 -hangs- if I use the function
> "virtual_lcd_get_mode" inside "init_lcd" (regarding your tutorial:  
> Using
> A Virtual Device"?
>
> Here is the exact call:
>
> "virtual_lcd_get_mode(lcd->server, lcd->obj, &lcd->control->xres,
> &lcd->control->yres, &lcd->control->bpp, NULL);"
>
> It's not even possible to enter the KDB manually if I enter 	
>
> "L4_KDB_Enter("Please please - print this...");"
>
> one line above the other one.

If this is the case, perhaps the system has already hung before  
lcd_get_mode() is called?  How about inserting more L4_KDB_Enter()  
calls before this line?

> If I hit ESC in a VERY fast rate, it's
> possible to enter the KDB. The funny thing (for me) is, it looks like
> the problem is the call of the function itself, not what is inside the
> function (for testing - I commented out everything inside
> "virtual_lcd_get_mode").

I also have the gut feeling that the crash occurs outside the call,  
not inside, because lcd_get_mode() is pretty ordinary.

> Inside the KDB - if I /tracebuffer and dump (in the situation the  
> system
> hangs) I see only three different lines (repeating in a fast rate):
>
> INTERRUPT: 0000c001, 80000000
> SYSCALL_INTERRUPT_CONTROL
> SYSCALL_IPC: 0000c001, 00000000, ffffffff

This is just saying that an interrupt is being delivered.  Note that  
the interrupt number is given by 0xc001 >> 12, in other words, 0xc =  
12.  If you take a look at platforms/s3c2410/tools/machines.py, IRQ 12  
belongs to the timer.

In the same file, you might notice that under class s3c2410, the  
member v2_drivers has an array element which is a tuple starting with  
"s3c2410_lcd".  It may be commented out.  If that's the case, try  
uncommenting it and see if that makes a difference.

> It looks like my function (init_lcd) has not the necessary rights to  
> use
> the function "virtual_lcd_get_mode". What does okl4 internally do  
> when a
> function is called? I did everything else as described in your  
> tutorial
> (http://wiki.ok-labs.com/DriverFramework).

--
(nt)

Nelson Tam




More information about the Developer mailing list