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 directfb-dev@directfb.org http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev