Hello All,
I have been desperately trying to to get the DirectFB working on a
SH7722 target. I 'am so far that the framebuffer memory area gets
displayed and it seems that the BEU is working also (If I write some
data into the BEU layer (given by BSAYR1), it gets copied into the LCDC
buffer correctly.
The problem is that I haven't been able to get anything out of the 2d
Graphics engine. The DirectFB driver gives me some messages (see below
- I have added some debug messages) but nothing happens on the screen
when I run dfbtest_window (except for that the BEU copies its source
buffer one time into to the LCDC space)
Anyone has an idea what might be wrong here or how to debug this thing?
I would appreciate any help.
Martin
--------------------session:-----------------------------
~ # insmod /lib/modules/`uname -r`/renesas/sh772x_gfx.ko
sh7722gfx: shared area (order 7) at aea80000 [2ea80000] using 507972 bytes
sh7722gfx: jpeg area (order 7) at aeb00000 [2eb00000] using 294912 bytes
~ # cat /etc/directfbrc
#system = fbdev
system = devmem
# 0x0c000000 (ram start) + 56M Requires 'mem=56M' kernel option. That is,
# we tell the kernel that we only have 56M of ram. The last 8M which we
# use for the graphics, the kernel knows nothing of.
video-phys = 0f800000
video-length = 8388608 # 8MB of physically contiguous memory for
acceleration
mmio-phys = fd000000 # Start of 2DG register space
mmio-length = 65536 # Size of register space
accelerator = 11591 # 0x2D47 (2DG)
~ # ./dfbtest_window
[[ main ]] Starting up...
~~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB 1.3.0 |~~~~~~~~~~~~~~~~~~~~~~~~~~
(c) 2001-2008 The world wide DirectFB Open Source Community
(c) 2000-2004 Convergence (integrated media) GmbH
----------------------------------------------------------------
(*) DirectFB/Core: Single Application Core. (2008-10-02 10:23) [ DEBUG ]
Couldnt load module pthres
driver_probe()
driver_get_info()
driver_init_driver()
driver_init_device()
[dfb_gfxcard_reserve_memory:2687] &shared->device_info=0x00418b84
[dfb_gfxcard_reserve_memory:2688] shared->videoram_length=8388608
([sh7722_reset:244] shared->buffer_phys=0x2ea80000
0x2ea80000
*) SH7722/LCD: Allocated 640x480 RGB16 Buffer (737280 bytes) at
0x0ff4c000 (0x29fb6000)
sh7722EngineReset()
-> not running, hw 0-0, next 0-0 - not valid
[driver_init_device:380] sdev->lcd_phys=0x0ff4c000
[driver_init_device:381] sdev->lcd_pitch=0x00000600
sh7722EngineReset()
-> not running, hw 0-0, next 0-0 - not v[sh7722_reset:244]
shared->buffer_phys=0x2ea80000 0x2ea80000
alid
(*) DirectFB/Graphics: Renesas SH7722 0.9 (Denis & Janine Kropp)
IPAFUHPASIUFDHPASIUFHPAISUFH
(*) DirectFB/Core/WM: Default 0.3 (directfb.org)
(!!!) *** WARNING [workaround] ***
[/home/hico/emtrix-2.2/hico7722/pkgs/DirectFB-git/systems/devmem/surfacemanager.c:194
in dfb_surfacemanager_allocate()]
BEU_Wait: waiting
done
BEU_Start: waiting
done
BEU_Wait: waiting
done
sh7722CheckState( 0x4215c4, 0x00000001 )
sh7722SetState( 0x4215c4, 0x00000001 ) <- modified 0x00033fff
-> not running, hw 0-0, next 0-0 - not valid
sh7722_validate_DEST_CLIP( 0x0feb5ff0 [1280] - 0, 0- 640x 480 )
sh7722FillRectangle( 0, 0 - 640x480 )
-> not running, hw 0-0, next 0-0 - not valid
sh7722EmitCommands()
flush_prepared()
-> not running, hw 0-0, next 0-0 - not valid
start_hardware()
-> not running, hw 0-0, next 0-62 - valid
-> running, hw 0-62, next 64-64 - not valid
[start_hardware:208] shared->buffer_phys=0x2ea80000
[start_hardware:209] shared->hw_start=0x00000000
sh7722EngineSync()
-> running, hw 0-62, next 64-64 - not valid
BEU_Start: waiting
done
===============================================================
[[ Test_CreateWindow ]] CreateWindow( 100,100 - 200x200
UNKNOWN )...
sh7722CheckState( 0x2969f354, 0x00010000 )
sh7722SetState( 0x2969f354, 0x00010000 ) <- modified 0x00033fff
-> not running, hw 0-62, next 64-64 - not valid
sh7722_validate_DEST_CLIP( 0x0fe1ffe0 [1280] - 0, 0- 640x 480 )
sh7722Blit( 0, 0 - 640x480 -> 0, 0 )
sh7722DoBlit( 0, 0 - 640x480 -> 0, 0 - 640x480 )
-> not running, hw 0-62, next 64-64 - not valid
sh7722EmitCommands()
flush_prepared()
-> not running, hw 0-62, next 64-64 - not valid
start_hardware()
-> not running, hw 0-62, next 64-92 - valid
-> running, hw 64-92, next 96-96 - not valid
[start_hardware:208] shared->buffer_phys=0x2ea80000
[start_hardware:209] shared->hw_start=0x00000040
sh7722CheckState( 0x2969f354, 0x00010000 )
sh7722SetState( 0x2969f354, 0x00010000 ) <- modified 0x00000304
-> running, hw 64-92, next 96-96 - not valid
sh7722_validate_DEST_CLIP( 0x0fe1f350 [80] - 0, 0- 40x 40 )
sh7722Blit( 320, 240 - 40x40 -> 0, 0 )
sh7722DoBlit( 320, 240 - 40x40 -> 0, 0 - 40x40 )
-> running, hw 64-92, next 96-96 - not valid
sh7722EmitCommands()
flush_prepared()
-> running, hw 64-92, next 96-96 - not valid
start_hardware()
-> running, hw 64-92, next 96-122 - valid
sh7722CheckState( 0x4215c4, 0x00010000 )
sh7722SetState( 0x4215c4, 0x00010000 ) <- modified 0x00033fff
-> running, hw 64-92, next 96-122 - valid
sh7722_validate_DEST_CLIP( 0x0fe1ffe0 [1280] - 320, 240- 40x 40 )
sh7722Blit( 0, 0 - 40x40 -> 320, 240 )
sh7722DoBlit( 0, 0 - 40x40 -> 320, 240 - 40x40 )
-> running, hw 64-92, next 96-122 - valid
sh7722EmitCommands()
flush_prepared()
-> running, hw 64-92, next 96-122 - valid
start_hardware()
-> running, hw 64-92, next 96-152 - valid
sh7722CheckState( 0x2969f4cc, 0x00010000 )
sh7722SetState( 0x2969f4cc, 0x00010000 ) <- modified 0x00033fff
-> running, hw 64-92, next 96-152 - valid
sh7722_validate_DEST_CLIP( 0x0feb5ff0 [1280] - 0, 0- 640x 480 )
sh7722Blit( 320, 240 - 40x40 -> 320, 240 )
sh7722DoBlit( 320, 240 - 40x40 -> 320, 240 - 40x40 )
-> running, hw 64-92, next 96-152 - valid
sh7722EmitCommands()
flush_prepared()
-> running, hw 64-92, next 96-152 - valid
start_hardware()
-> running, hw 64-92, next 96-180 - valid
sh7722EngineSync()
-> running, hw 64-92, next 96-180 - valid
sh7722_wait_idle: TIMEOUT! (running, hw 96-180, next 184-184 - not
valid, STATUS 0x00000000, INT_STATUS 0x00100000)
(!) SH7722/BLT: SH7722GFX_IOCTL_WAIT_IDLE failed!
--> Connection timed out
-> running, hw 96-180, next 184-184 - not valid
sh7722EngineReset()
->[sh7722_reset:244]
shared->buffer_phys=0x2ea80000 0x2ea80000
running, hw 96-180, next 184-184 - not valid
BEU_Start: waiting
done
[[ Test_CreateWindow ]] - GetSurface()...
[[ Test_CreateWindow ]] - Clear( 0x20, 0x50, 0xC0, 0xFF
)...
sh7722CheckState( 0x42642c, 0x00000001 )
sh7722SetState( 0x42642c, 0x00000001 ) <- modified 0x00033fff
-> not running, hw 0-0, next 0-0 - not valid
sh7722_validate_DEST_CLIP( 0x0fe0a1b0 [400] - 0, 0- 200x 200 )
sh7722FillRectangle( 0, 0 - 200x200 )
-> not running, hw 0-0, next 0-0 - not valid
sh7722EmitCommands()
flush_prepared()
-> not running, hw 0-0, next 0-0 - not valid
start_hardware()
-> not running, hw 0-0, next 0-42 - valid
-> running, hw 0-42, next 44-44 - not valid
[start_hardware:208] shared->buffer_phys=0x2ea80000
[start_hardware:209] shared->hw_start=0x00000000
sh7722SetState( 0x42642c, 0x00000002 ) <- modified 0x00000008
-> running, hw 0-42, next 44-44 - not valid
sh7722DrawRectangle( 0, 0 - 200x200 )
-> running, hw 0-42, next 44-44 - not valid
sh7722EmitCommands()
flush_prepared()
-> running, hw 0-42, next 44-44 - not valid
start_hardware()
-> running, hw 0-42, next 44-68 - valid
sh7722FillRectangle( 100, 1 - 1x198 )
-> running, hw 0-42, next 44-68 - valid
sh7722EmitCommands()
flush_prepared()
-> running, hw 0-42, next 44-68 - valid
start_hardware()
-> running, hw 0-42, next 44-76 - valid
sh7722FillRectangle( 1, 100 - 198x1 )
-> running, hw 0-42, next 44-76 - valid
sh7722EmitCommands()
flush_prepared()
-> running, hw 0-42, next 44-76 - valid
start_hardware()
-> running, hw 0-42, next 44-84 - valid
[[ Test_CreateWindow ]] - SetOpacity( 255 )...
sh7722CheckState( 0x4215c4, 0x00010000 )
sh7722SetState( 0x4215c4, 0x00010000 ) <- modified 0x00033fff
-> running, hw 0-42, next 44-84 - valid
sh7722_validate_DEST_CLIP( 0x0fe1ffe0 [1280] - 100, 100- 200x 200 )
sh7722Blit( 0, 0 - 200x200 -> 100, 100 )
sh7722DoBlit( 0, 0 - 200x200 -> 100, 100 - 200x200 )
-> running, hw 0-42, next 44-84 - valid
sh7722EmitCommands()
flush_prepared()
-> running, hw 0-42, next 44-84 - valid
start_hardware()
-> running, hw 0-42, next 44-112 - valid
sh7722CheckState( 0x2969f4cc, 0x00010000 )
sh7722SetState( 0x2969f4cc, 0x00010000 ) <- modified 0x00033fff
-> running, hw 0-42, next 44-112 - valid
sh7722_validate_DEST_CLIP( 0x0feb5ff0 [1280] - 0, 0- 640x 480 )
sh7722Blit( 100, 100 - 200x200 -> 100, 100 )
sh7722DoBlit( 100, 100 - 200x200 -> 100, 100 - 200x200 )
-> running, hw 0-42, next 44-112 - valid
sh7722EmitCommands()
flush_prepared()
-> running, hw 0-42, next 44-112 - valid
start_hardware()
-> running, hw 0-42, next 44-140 - valid
sh7722EngineSync()
-> running, hw 0-42, next 44-140 - valid
BEU_Start: waiting
done
[[ Test_CreateWindow ]] - GetID()...
[[ Test_CreateWindow ]] ...CreateWindow( 100,100 -
200x200 UNKNOWN ) done. => Top Window ID 1
===============================================================
[[ Test_CreateSubWindow ]] CreateWindow( 40,40 - 120x120
UNKNOWN + toplevel ID 1 )...
[[ Test_CreateSubWindow ]] - GetSurface()...
[[ Test_CreateSubWindow ]] - Clear( 0xC0, 0xC0, 0xC0, 0xFF
)...
sh7722CheckState( 0x426e64, 0x00000001 )
sh7722SetState( 0x426e64, 0x00000001 ) <- modified 0x00033fff
-> not running, hw 44-140, next 144-144 - not valid
sh7722_validate_DEST_CLIP( 0x0fe03120 [240] - 0, 0- 120x 120 )
sh7722FillRectangle( 0, 0 - 120x120 )
-> not running, hw 44-140, next 144-144 - not valid
sh7722EmitCommands()
flush_prepared()
-> not running, hw 44-140, next 144-144 - not valid
start_hardware()
-> not running, hw 44-140, next 144-166 - valid
-> running, hw 144-166, next 168-168 - not valid
[start_hardware:208] shared->buffer_phys=0x2ea80000
[start_hardware:209] shared->hw_start=0x00000090
sh7722SetState( 0x426e64, 0x00000002 ) <- modified 0x00000008
-> running, hw 144-166, next 168-168 - not valid
sh7722DrawRectangle( 0, 0 - 120x120 )
-> running, hw 144-166, next 168-168 - not valid
sh7722EmitCommands()
flush_prepared()
-> running, hw 144-166, next 168-168 - not valid
start_hardware()
-> running, hw 144-166, next 168-192 - valid
sh7722FillRectangle( 60, 1 - 1x118 )
-> running, hw 144-166, next 168-192 - valid
sh7722EmitCommands()
flush_prepared()
-> running, hw 144-166, next 168-192 - valid
start_hardware()
-> running, hw 144-166, next 168-200 - valid
sh7722FillRectangle( 1, 60 - 118x1 )
-> running, hw 144-166, next 168-200 - valid
sh7722EmitCommands()
flush_prepared()
-> running, hw 144-166, next 168-200 - valid
start_hardware()
-> running, hw 144-166, next 168-208 - valid
[[ Test_CreateSubWindow ]] - SetOpacity( 255 )...
sh7722CheckState( 0x4215c4, 0x00010000 )
sh7722SetState( 0x4215c4, 0x00010000 ) <- modified 0x00033fff
-> running, hw 144-166, next 168-208 - valid
sh7722_validate_DEST_CLIP( 0x0fe1ffe0 [1280] - 40, 40- 120x 120 )
sh7722Blit( 0, 0 - 120x120 -> 40, 40 )
sh7722DoBlit( 0, 0 - 120x120 -> 40, 40 - 120x120 )
-> running, hw 144-166, next 168-208 - valid
sh7722EmitCommands()
flush_prepared()
-> running, hw 144-166, next 168-208 - valid
start_hardware()
-> running, hw 144-166, next 168-236 - valid
sh7722CheckState( 0x2969f4cc, 0x00010000 )
sh7722SetState( 0x2969f4cc, 0x00010000 ) <- modified 0x00033fff
-> running, hw 144-166, next 168-236 - valid
sh7722_validate_DEST_CLIP( 0x0feb5ff0 [1280] - 0, 0- 640x 480 )
sh7722Blit( 40, 40 - 120x120 -> 40, 40 )
sh7722DoBlit( 40, 40 - 120x120 -> 40, 40 - 120x120 )
-> running, hw 144-166, next 168-236 - valid
sh7722EmitCommands()
flush_prepared()
-> running, hw 144-166, next 168-236 - valid
start_hardware()
-> running, hw 144-166, next 168-264 - valid
sh7722EngineSync()
-> running, hw 144-166, next 168-264 - valid
BEU_Start: waiting
done
[[ Test_CreateSubWindow ]] - GetID()...
[[ Test_CreateSubWindow ]] ...CreateWindow( 40,40 - 120x120
UNKNOWN + toplevel ID 1 ) done. => Sub Window ID 2
[[ main ]] Shutting down...
sh7722CheckState( 0x4215c4, 0x00000001 )
sh7722SetState( 0x4215c4, 0x00000001 ) <- modified 0x00033fff
-> not running, hw 168-264, next 268-268 - not valid
sh7722_validate_DEST_CLIP( 0x0fe1ffe0 [1280] - 40, 40- 120x 120 )
sh7722FillRectangle( 40, 100 - 60x60 )
-> not running, hw 168-264, next 268-268 - not valid
sh7722EmitCommands()
flush_prepared()
-> not running, hw 168-264, next 268-268 - not valid
start_hardware()
-> not running, hw 168-264, next 268-290 - valid
-> running, hw 268-290, next 292-292 - not valid
[start_hardware:208] shared->buffer_phys=0x2ea80000
[start_hardware:209] shared->hw_start=0x0000010c
sh7722FillRectangle( 40, 40 - 120x60 )
-> running, hw 268-290, next 292-292 - not valid
sh7722EmitCommands()
flush_prepared()
-> running, hw 268-290, next 292-292 - not valid
start_hardware()
-> running, hw 268-290, next 292-300 - valid
sh7722CheckState( 0x4215c4, 0x00010000 )
sh7722SetState( 0x4215c4, 0x00010000 ) <- modified 0x00000200
-> running, hw 268-290, next 292-300 - valid
sh7722Blit( 0, 0 - 60x60 -> 100, 100 )
sh7722DoBlit( 0, 0 - 60x60 -> 100, 100 - 60x60 )
-> running, hw 268-290, next 292-300 - valid
sh7722EmitCommands()
flush_prepared()
-> running, hw 268-290, next 292-300 - valid
start_hardware()
-> running, hw 268-290, next 292-318 - valid
sh7722CheckState( 0x2969f4cc, 0x00010000 )
sh7722SetState( 0x2969f4cc, 0x00010000 ) <- modified 0x00033fff
-> running, hw 268-290, next 292-318 - valid
sh7722_validate_DEST_CLIP( 0x0feb5ff0 [1280] - 0, 0- 640x 480 )
sh7722Blit( 40, 40 - 120x120 -> 40, 40 )
sh7722DoBlit( 40, 40 - 120x120 -> 40, 40 - 120x120 )
-> running, hw 268-290, next 292-318 - valid
sh7722EmitCommands()
flush_prepared()
-> running, hw 268-290, next 292-318 - valid
start_hardware()
-> running, hw 268-290, next 292-346 - valid
sh7722EngineSync()
-> running, hw 268-290, next 292-346 - valid
BEU_Start: waiting
done
sh7722CheckState( 0x4215c4, 0x00000001 )
sh7722SetState( 0x4215c4, 0x00000001 ) <- modified 0x00033fff
-> not running, hw 292-346, next 348-348 - not valid
sh7722_validate_DEST_CLIP( 0x0fe1ffe0 [1280] - 100, 100- 200x 200 )
sh7722FillRectangle( 100, 100 - 200x200 )
-> not running, hw 292-346, next 348-348 - not valid
sh7722EmitCommands()
flush_prepared()
-> not running, hw 292-346, next 348-348 - not valid
start_hardware()
-> not running, hw 292-346, next 348-370 - valid
-> running, hw 348-370, next 372-372 - not valid
[start_hardware:208] shared->buffer_phys=0x2ea80000
[start_hardware:209] shared->hw_start=0x0000015c
sh7722CheckState( 0x2969f4cc, 0x00010000 )
sh7722SetState( 0x2969f4cc, 0x00010000 ) <- modified 0x00033fff
-> running, hw 348-370, next 372-372 - not valid
sh7722_validate_DEST_CLIP( 0x0feb5ff0 [1280] - 0, 0- 640x 480 )
sh7722Blit( 100, 100 - 200x200 -> 100, 100 )
sh7722DoBlit( 100, 100 - 200x200 -> 100, 100 - 200x200 )
-> running, hw 348-370, next 372-372 - not valid
sh7722EmitCommands()
flush_prepared()
-> running, hw 348-370, next 372-372 - not valid
start_hardware()
-> running, hw 348-370, next 372-400 - valid
sh7722EngineSync()
-> running, hw 348-370, next 372-400 - valid
sh7722_wait_idle: TIMEOUT! (running, hw 372-400, next 404-404 - not
valid, STATUS 0x01110000, INT_STATUS 0x00000000)
(!) SH7722/BLT: SH7722GFX_IOCTL_WAIT_IDLE failed!
--> Connection timed out
-> running, hw 372-400, next 404-404 - not valid
sh7722EngineReset()
[sh7722_reset:244] shared->buffer_phys=0x2ea80000
0x2ea80000
-> running, hw 372-400, next 404-404 - not valid
BEU_Start: waiting
done
BEU_Wait: waiting
done
BEU_StaFixing up unaligned userspace access in "dfbtest_window" pid=820
pc=0x2a086fb6 ins=0x011e
Fixing up unaligned userspace access in "dfbtest_window" pid=820
pc=0x2a086fb6 ins=0x011e
Fixing up unaligned userspace access in "dfbtest_window" pid=820
pc=0x2a086fb6 ins=0x011e
rt: waiting
done
sh7722EngineSync()
-> not running, hw 0-0, next 0-0 - not valid
driver_close_device()
driver_close_driver()
(*) SH7722/BLT: 0 starts, 0 done, 0 interrupts, 0 wait_idle, 0
wait_next, 0 idle
(*) SH7722/BLT: 0 words, 0 words/start, 0 words/idle, 0 starts/idle
~ # sh7722_tdg_irq: hw not running? INT_STATUS 0x00100000!
~ # ./dfbtest_window
_______________________________________________
directfb-dev mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev