This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ti816evm HDMI resolution change

Regards,

I recently downloaded rowboat source, that has PSP 04.00.00.12 integrated in it. My EVM is connected with 22' monitor that has native resolution of 1080P.

  1. I tried to change resolution to 720P, when system is running, like it is suggested on http://processors.wiki.ti.com/index.php/DM816x_AM389x_HDMI_User_Guide. But when I changed the mode, picture doesn't look good, it looks like sync signals are not generated good.
  2. Second thing I tried is to add arguments when loading video modules in kernel. Something like this:
    insmod vpss.ko mode=hdmi:720p-60, but this doesn't do the job either. Kernel is running, but screen is showing nothing, it doesn't recognize a signal.
  3. Third thing I tried is to modify HDMI driver code and force some other resolution than 1080P and that doesn't change anything. Resolution stays the same (1080P).

Can you give me some tips regarding this problem I'm having? Is it possible to change resolution to some custom value, for example 800x480 for LCD touch-screen that I got with EVM package?

One more question, when will be PSP 04.00.01.13 integrated in android and available for download? (as I saw, this PSP has modified video driver)

Kind regards,

Srdjan

  • Hello Srdjan,

         You may try  to change the resolution to the custom values using "fbset" before inserting omaplfb kernel module on the platform.

    One ideal place would be to place "fbset <custom resolution>" before any of the insmods in <Android_RootFS>/system/bin/sgx/rc.pvr.

    Also please introduce some sleep after fbset call inorder to make sure that insmod doesn't happen before setting the display parameters.

     

    Regards,

    Aditya

     

     


  • Hi Aditya,

    thank you for suggestions on how to change resolution. I added this commands to the rc.pvr script, before any insmod commands:

    fbset "1280x720-60"

    sleep 2

    echo "resolution is 1280x720"

    But those commands didn't change the resolution at all, it's still the same as before (1080P). Even echo command, from rc.pvr script, didn't show in console!

    After that I tried something else to do, I commented two lines in init.rs script, two lines that call rc.syslink and rc.pvr so I can call those two scripts by hand, when android is running. When android is running, screen on monitor is blank, like it should be, because video drivers aren't loaded. Then I basically call scripts rc.syslink and rc.pvr and video is running, but resolution is not changed to 1280x720. On console I do get echo "resolution is 1280x720" and 'fbset: not found'!

    So I think I don't have that command integrated in my android fs! Have you any suggestions on how can I move further?

    Best regards,

    Srdjan

  • Hi Srdjan,

                Looks like you don't have fbset binary built for Android. You can either cross compile from fbset sources (for Android)  or try to get some prebuilt binary .

    Then copy the binary to <Android_RootFS>/system/bin dir ( in the location where you have Android filesystem).

    After that, on your target  you may set your desired resolution by the following -

    /system/bin/fbset -g <xres> <yres> <vxres> <vyres> <bpp>

    For Example: if you want 800x480 at 32bpp, you may set like -

    /system/bin/fbset -g 800 480 800 960 32

     

    Regards,

    Aditya

     

  • Hi Srdjan,

    1. Could you confirm which link ( manifest file) you are using for rowboat integration for PSP 04.00.0012 ?

    2. You can also try out following commands after booot

    echo 0 > /sys/devices/platform/vpss/graphics0/enabled
    echo 1:dvo2 > /sys/devices/platform/vpss/graphics0/nodes
    echo 0 > /sys/devices/platform/vpss/display1/enabled
    echo 33500,800/164/89/10,480/10/23/10,1 > /sys/devices/platform/vpss/display1/timings /* set the resolution timings params you want */
    echo triplediscrete,rgb888 > /sys/devices/platform/vpss/display1/output
    echo 1 > /sys/devices/platform/vpss/display1/enabled
    echo 1 > /sys/devices/platform/vpss/graphics0/enabled

     

    BR,

    satish

     

  • Hi Satish,

    thank you for your help regarding resolution changing.

    1. I'm using manifest file rowboat-gingerbread-ti81xx.xml
    2. I also tried those commands that you suggested and they do change resolution but it doesn't look good, I think there are some more configuration to be done besides those command you sent me.

    Did you thought I should execute those commands after I execute 'fbset -g 800 480 800 480 32' command (like Aditya suggested)?

    One more thing that I don't understand in commands you sent me is: echo 33500,800/164/89/10,480/10/23/10,1 > /sys/devices/platform/vpss/display1/timings - what do arguments "33500,800/164/89/10,480/10/23/10,1" stand for, one by one? Because I didn't found out from documentation what exactly every one means. For reference I'm using rowboat-android/TI_Android_2.3.4/kernel/Documentation/fb/fb.modes.


    Regards,

    Srdjan

  • Hi Aditya,

    I've added busybox 1.14.3 to my Andorid FS, and now I have 'fbset' available.

    I'm able to execute 'fbset -g 1280 720 1280 720 32' (I added this command to rc.pvr, as you suggested) and it changes resolution but screen look like this http://i44.tinypic.com/dhcx79.jpg . It seems to me that timing parameters need to be adjusted to, but I'm not sure on which ones.

    I even tried this set of commands to set resolution to 800x600:

    echo 0 > /sys/devices/platform/vpss/graphics0/enabled
    echo 0 > /sys/devices/platform/vpss/display0/enabled
    echo 39824,800/40/88/128,600/1/23/4,1 > /sys/devices/platform/vpss/display0/timings
    fbset -g 800 600 800 600 32
    sleep 3   
    echo 1 > /sys/devices/platform/vpss/display0/enabled
    echo 1 > /sys/devices/platform/vpss/graphics0/enabled

    This time monitor shows that he recognises 800x600 and picture on monitor look like this http://i44.tinypic.com/dpu55d.jpg

    Kind regards,

    Srdjan

  • Hi Srdjan,

    1.39824,800/40/88/128,600/1/23/4,1 means,

    pixclock, xres/hfp/hbp/hsw, yres/vfp/vbp/vsw

    Field                            Unit                                 Description

    pixclock                         picoseconds                The duration of one pixel
    xres                               pixels                            Width of visible area (typically width of framebuffer)
    hfp                                 pixels                            Horizontal front porch
    hbp                                pixels                            Horizontal back porch
    hsw                               pixels                            Horizontal sync width
    yres                               rows                             Height of visible area (typically height of framebuffer)
    vfp                                 rows                             Vertical   front porch
    vbp                                rows                             Vertical   back porch
    vsw                               rows                             Vertical   sync "width" (in rows)

    2. Could you try to capure screen using DDMS ( setup a adb connection over eth and capture screen shot using ddms) ? If it is coming properly it means something wrong with video parameters

    3. are you using SGX ?

    4. Could you provide complete logs using logcat

    $logcat

    BR,

    satish

  • Hi Satish,

    I have provided some answers on your questions:

    1. thank you for the tips how are arguments for timing defined. But is there any document in kernel regarding those timing values for various resolutions? Document fb.modes doesn't provide adequate values.
    2. I've captured you a screen using DDMS, http://i42.tinypic.com/2jevknd.png. Commands that I executed before capturing are:

      echo 0 > /sys/devices/platform/vpss/graphics0/enabled
      echo 0 > /sys/devices/platform/vpss/display0/enabled
      echo 74500,1280/192/64/128,720/20/3/5,1 > /sys/devices/platform/vpss/display0/timings
      echo 720p-60 > /sys/devices/platform/vpss/display0/mode
      fbset -g 1280 720 1280 720 32
      sleep 3   
      echo 1 > /sys/devices/platform/vpss/display0/enabled
      echo 1 > /sys/devices/platform/vpss/graphics0/enabled
    3. Yes, I'm using SGX
    4. after I changed resolution I typed logcat and this log that I got: 6622.logcat.log

    Kind regards,

    Srdjan

  • Hi Srdjan,

    I have tried following scenario on ti814xevm and it worked successfully

    1. Revert all changes/experiments that you have done

    2. edit file /system/bin/syslink/syslink.rc

    #look for line, which loads vpss driver

     insmod /system/lib/modules/2.6.37+/kernel/drivers/video/ti81xx/vpss/vpss.ko sbufaddr=0xBFB00000 i2c_mode=1

    replace line with following, added argument for resolution

     insmod /system/lib/modules/2.6.37+/kernel/drivers/video/ti81xx/vpss/vpss.ko mode=hdmi:720p-60 sbufaddr=0xBFB00000 i2c_mode=1

    # save the file and exit

    3. Boot again

    For me evm booted succefully with 720p mode.

    I hope this will help you.

    BR,

    satish

     

  • Hi Satish,

    I made those changes you suggested, to rc.syslink, added mode=hdmi:720p-60 and monitor doesn't show any picture. So I debugged a little and found out that timings were not initially set to proper values (or there are set to some values that my monitor doesn't accept). And monitor couldn't recognise input signal.Then, after rebooting the system, I typed these commands, to change timings:

      echo 0 > /sys/devices/platform/vpss/graphics0/enabled
      echo 0 > /sys/devices/platform/vpss/display0/enabled
      echo 74500,1280/192/64/128,720/20/3/5,1 > /sys/devices/platform/vpss/display0/timings    
      fbset -g 1280 720 1280 720 32 
      echo 1 > /sys/devices/platform/vpss/display0/enabled
      echo 1 > /sys/devices/platform/vpss/graphics0/enabled

    and then I finally got proper resolution on my monitor, 1280x720@60Hz. Picture on monitor looks just fine!

    Can you give me a tip, regarding where to put these commands, in which script, so I wont have to type these commands every time I reboot the system?

    I've tried to add them in to rc.pvr script, before or after loading omaplfb.ko, but that simple bugs the system and there is no picture on monitor. So for now, only solution is to execute above mentioned commands every time system boots.

    Best regards.

    Srdjan

  • HI Srdjan,

    1. I am glad that you have solved your problem.

    2. Ideally, vpss driver ( display driver), takes a argument, whatever I have mentioned and it should work. But I am not sure why it is not working for your scenario.

    3. Anyways,

    You can put this command in rc.syslink, after loading vpss.ko

    Br,

    satish

  • Hi Satish,

    thank you for help.

    1. One more question, when will be PSP 04.00.01.13 integrated in android and available for download? (as I saw, this PSP has modified video driver).
    2. When I change resolution to 720p-60 system is not stable like it is when started in 1080p resolution! SGX driver crashes always, when videos are played or when something with OpenGL is ran.
    3. Are your platforms working stable when you change resolution to some other that 1080p or 720p?

    Regards,

    Srdjan

  • Hi Srdjan,

      Coming to your query over SGX crash with 720p, Could you please provide the logs for the crash? We don't see any issues as such with customized resolutions (other than 1080p).

    Regards,

    Aditya

  • Hi Aditya,

    this is what I get when SGX crashes:

    PVR_K: User requested SGX debug info
    PVR_K: SGX debug (1.7.17.4352)
    PVR_K: Flip Command Complete Data 0 for display device 1:
    PVR_K:     SRC 0: (Not in use)
    PVR_K:     SRC 1: (Not in use)
    PVR_K: SGX Host control:
    PVR_K:     (HC-0) 0x00000001 0x00000000 0x00000000 0x00000001
    PVR_K:     (HC-10) 0x00000000 0x00000000 0x0000000A 0x00030D40
    PVR_K:     (HC-20) 0x00000065 0x00000000 0x00000000 0x00000000
    PVR_K:     (HC-30) 0x00000091 0x00067020 0xFF5B0D70 0x00000000
    PVR_K:     (HC-40) 0x00000000 0xE3550000 0x1A000004 0xE59F005C
    PVR_K: SGX TA/3D control:
    PVR_K:     (T3C-0) 0x0F003000 0x0F003120 0x0F002000 0x00000000
    PVR_K:     (T3C-10) 0x0F0DC100 0x00000001 0x00000002 0x00000001
    PVR_K:     (T3C-20) 0x0F00AEA0 0x00000000 0x00000000 0x00000000
    PVR_K:     (T3C-30) 0x00000000 0x00000000 0x00000000 0x00000000
    PVR_K:     (T3C-40) 0x00000000 0x00000000 0x00000000 0x00000000
    PVR_K:     (T3C-50) 0x00000000 0x00000000 0x00000000 0x00000000
    PVR_K:     (T3C-60) 0x00000000 0x00000000 0x00000000 0x00000000
    PVR_K:     (T3C-70) 0x00000000 0x00000000 0x00000000 0x00000000
    PVR_K:     (T3C-80) 0x00000000 0x0F0E1534 0x0F0E14F8 0x0F000000
    PVR_K:     (T3C-90) 0xADC93000 0x0F0C2AC0 0x0F0E14F8 0x0F09DA20
    PVR_K:     (T3C-A0) 0x0F0BF4C0 0x0F00AF58 0x0F09D420 0x00000000
    PVR_K:     (T3C-B0) 0x0F0E14E0 0x00000003 0x00000000 0x00000000
    PVR_K:     (T3C-C0) 0x00000000 0x7170724B 0x00000000 0x00000000
    PVR_K:     (T3C-D0) 0x00000000 0x00000000 0x00000000 0x00000000
    PVR_K:     (T3C-E0) 0x00000D3A 0x0000113D 0x0F000000 0x8000B000
    PVR_K:     (T3C-F0) 0x8004B000 0x0F004000 0x0F00A420 0x0F00A740
    PVR_K:     (T3C-100) 0x0F09D600 0x0F09D600 0x00000000 0x00000243
    PVR_K:     (T3C-110) 0x00000243 0x00000000 0x00000000 0x0485F000
    PVR_K: SGX Kernel CCB WO:0x92 RO:0x92
    PVR_K: User requested SGX debug info
    PVR_K: SGX debug (1.7.17.4352)
    PVR_K: Flip Command Complete Data 0 for display device 1:
    PVR_K:     SRC 0: (Not in use)
    PVR_K:     SRC 1: (Not in use)
    PVR_K: SGX Host control:
    PVR_K:     (HC-0) 0x00000001 0x00000000 0x00000000 0x00000001
    PVR_K:     (HC-10) 0x00000000 0x00000000 0x0000000A 0x00030D40
    PVR_K:     (HC-20) 0x00000065 0x00000000 0x00000000 0x00000000
    PVR_K:     (HC-30) 0x00000091 0x0006914C 0xFF5B0D70 0x00000000
    PVR_K:     (HC-40) 0x00000000 0xE3550000 0x1A000004 0xE59F005C
    PVR_K: SGX TA/3D control:
    PVR_K:     (T3C-0) 0x0F003000 0x0F003120 0x0F002000 0x00000000
    PVR_K:     (T3C-10) 0x0F0DC100 0x00000001 0x00000002 0x00000001
    PVR_K:     (T3C-20) 0x0F00AEA0 0x00000000 0x00000000 0x00000000
    PVR_K:     (T3C-30) 0x00000000 0x00000000 0x00000000 0x00000000
    PVR_K:     (T3C-40) 0x00000000 0x00000000 0x00000000 0x00000000
    PVR_K:     (T3C-50) 0x00000000 0x00000000 0x00000000 0x00000000
    PVR_K:     (T3C-60) 0x00000000 0x00000000 0x00000000 0x00000000
    PVR_K:     (T3C-70) 0x00000000 0x00000000 0x00000000 0x00000000
    PVR_K:     (T3C-80) 0x00000000 0x0F0E1534 0x0F0E14F8 0x0F000000
    PVR_K:     (T3C-90) 0xADC93000 0x0F0C2AC0 0x0F0E14F8 0x0F09DA20
    PVR_K:     (T3C-A0) 0x0F0BF4C0 0x0F00AF58 0x0F09D420 0x00000000
    PVR_K:     (T3C-B0) 0x0F0E14E0 0x00000003 0x00000000 0x00000000
    PVR_K:     (T3C-C0) 0x00000001 0x7170724B 0x00000000 0x00000000
    PVR_K:     (T3C-D0) 0x00000000 0x00000000 0x00000000 0x00000000
    PVR_K:     (T3C-E0) 0x00000D3A 0x0000113D 0x0F000000 0x8000B000
    PVR_K:     (T3C-F0) 0x8004B000 0x0F004000 0x0F00A420 0x0F00A740
    PVR_K:     (T3C-100) 0x0F09D600 0x0F09D600 0x00000000 0x00000243
    PVR_K:     (T3C-110) 0x00000243 0x00000000 0x00000000 0x0485F000
    PVR_K: SGX Kernel CCB WO:0x9A RO:0x9A
    PVR_K: User requested SGX debug info
    PVR_K: SGX debug (1.7.17.4352)
    PVR_K: Flip Command Complete Data 0 for display device 1:
    PVR_K:     SRC 0: (Not in use)
    PVR_K:     SRC 1: (Not in use)
    PVR_K: SGX Host control:
    PVR_K:     (HC-0) 0x00000001 0x00000000 0x00000000 0x00000001
    PVR_K:     (HC-10) 0x00000000 0x00000000 0x0000000A 0x00030D40
    PVR_K:     (HC-20) 0x00000065 0x00000000 0x00000000 0x00000000
    PVR_K:     (HC-30) 0x00000091 0x0006B268 0xFF5B0D70 0x00000000
    PVR_K:     (HC-40) 0x00000000 0xE3550000 0x1A000004 0xE59F005C
    PVR_K: SGX TA/3D control:
    PVR_K:     (T3C-0) 0x0F003000 0x0F003120 0x0F002000 0x00000000
    PVR_K:     (T3C-10) 0x0F0DC100 0x00000001 0x00000002 0x00000001
    PVR_K:     (T3C-20) 0x0F00AEA0 0x00000000 0x00000000 0x00000000
    PVR_K:     (T3C-30) 0x00000000 0x00000000 0x00000000 0x00000000
    PVR_K:     (T3C-40) 0x00000000 0x00000000 0x00000000 0x00000000
    PVR_K:     (T3C-50) 0x00000000 0x00000000 0x00000000 0x00000000
    PVR_K:     (T3C-60) 0x00000000 0x00000000 0x00000000 0x00000000
    PVR_K:     (T3C-70) 0x00000000 0x00000000 0x00000000 0x00000000
    PVR_K:     (T3C-80) 0x00000000 0x0F0E1534 0x0F0E14F8 0x0F000000
    PVR_K:     (T3C-90) 0xADC93000 0x0F0C2AC0 0x0F0E14F8 0x0F09DA20
    PVR_K:     (T3C-A0) 0x0F0BF4C0 0x0F00AF58 0x0F09D420 0x00000000
    PVR_K:     (T3C-B0) 0x0F0E14E0 0x00000003 0x00000000 0x00000000
    PVR_K:     (T3C-C0) 0x00000001 0x7170724B 0x00000000 0x00000000
    PVR_K:     (T3C-D0) 0x00000000 0x00000000 0x00000000 0x00000000
    PVR_K:     (T3C-E0) 0x00000D3A 0x0000113D 0x0F000000 0x8000B000
    PVR_K:     (T3C-F0) 0x8004B000 0x0F004000 0x0F00A420 0x0F00A740
    PVR_K:     (T3C-100) 0x0F09D600 0x0F09D600 0x00000000 0x00000243
    PVR_K:     (T3C-110) 0x00000243 0x00000000 0x00000000 0x0485F000
    PVR_K: SGX Kernel CCB WO:0x9D RO:0x9D

    Regards,

    Srdjan

  • Hi Srdjan,

    I can not say anything about integration with PSP x.13 release at present. But I will keep posting about next integration..

    BR,

    satish