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.

HDMI output

Hi,

On platform OMAP4430, with 4AI.1.7 release, when our dongle output to TV through HDMI, there is some edge lose on the TV screen, for example there is only half menu button in the left-bottom on the home page. We have already replaced relative ducati-m3.bin to our android out directory, but no change with this issue.

On the other hand, from the TV menu, if we set the TV to some mode rather than auto, than it can be full-screen. So I guess it is the communciation between Omap and TV is not that successful.

Is there any way we can improve this issue?

Best regards,

Dan

  • Hi Dan,

    Could you please let me know what is the exact mode you selected on TV instead of Auto to get it full screen? Please provide more details.

    How about testing it using other HDMI TV? Did you see similar results?

    Thanks & Best Regards,

    Venkat

  • Hi Venkat,

    Yes, I tried different HDMI TVs, the result is same, we can't see the total page from TV, it's biger than the TV screen, there will be edge lose.

    On some TV, I need to set the Wide configurtion to Normal rather than Strech , while on others I need to set screen mode to PC rather than auto.

    Best Regards,

    Dan

  • Are you using the Hardware Compositor HAL? If so what are the values of the following 3 properties?

    persist.hwc.docking.enabled

    persist.hwc.mirroring.enabled

    persist.hwc.mirroring.region
  • Hi Matthew,

    We choose blaze as reference, except ro.sf.lcd_density was set to 160 from 240, there is no other customzation setting for these xxx, just keep default setting, that's to say:

    persist.hwc.docking.enabled=1
    persist.hwc.mirroring.enabled=1
    persist.hwc.mirroring.region=0:0:1280:720


    Here is the content of build.prop from android out directory:
    # begin build properties
    # autogenerated by buildinfo.sh
    ro.build.id=IMM76L
    ro.build.display.id=full_blaze-userdebug 4.0.4 IMM76L eng.wireless.20121022.161812 test-keys
    ro.build.version.incremental=eng.wireless.20121022.161812
    ro.build.version.sdk=15
    ro.build.version.codename=REL
    ro.build.version.release=4.0.4
    ro.build.date=Mon Oct 22 16:23:38 CST 2012
    ro.build.date.utc=1350894218
    ro.build.type=userdebug
    ro.build.user=wireless
    ro.build.host=wireless-laptop
    ro.build.tags=test-keys
    ro.product.model=Blaze
    ro.product.brand=Android
    ro.product.name=full_blaze
    ro.product.device=blaze
    ro.product.board=blaze
    ro.product.cpu.abi=armeabi-v7a
    ro.product.cpu.abi2=armeabi
    ro.product.manufacturer=Texas_Instruments_Inc
    ro.product.locale.language=en
    ro.product.locale.region=US
    ro.wifi.channels=
    ro.board.platform=omap4
    # ro.build.product is obsolete; use ro.product.device
    ro.build.product=blaze
    # Do not try to parse ro.build.description or .fingerprint
    ro.build.description=full_blaze-userdebug 4.0.4 IMM76L eng.wireless.20121022.161812 test-keys
    ro.build.fingerprint=Android/full_blaze/blaze:4.0.4/IMM76L/eng.wireless.20121022.161812:userdebug/test-keys
    ro.build.characteristics=default
    # end build properties
    wifi.interface=wlan0
    com.ti.omap_enhancement=true
    com.ti.omap_enhancement_s3d=true

    #define a property for hdmi sink channel count
    dolby.audio.hdmi.channels=0

    #
    # ADDITIONAL_BUILD_PROPERTIES
    #
    ro.com.android.dateformat=MM-dd-yyyy
    ro.config.ringtone=Ring_Synth_04.ogg
    ro.config.notification_sound=pixiedust.ogg
    ro.config.alarm_alert=Alarm_Classic.ogg
    hwui.render_dirty_regions=false
    ro.opengles.version=131072
    ro.sf.lcd_density=160
    dalvik.vm.heapstartsize=5m
    dalvik.vm.heapgrowthlimit=48m
    dalvik.vm.heapsize=256m
    dalvik.vm.lockprof.threshold=500
    dalvik.vm.dexopt-flags=m=y
    net.bt.name=Android
    dalvik.vm.stack-trace-file=/data/anr/traces.txt

    Thanks & Best Regards,

    Dan

  • I don't know if you want mirrored or docking mode, but I do know at least one of those needs to be zero. Right now you are in docking mode since they are both set to "1"

    as far as the region, that should be set to the resolution of your panel, presuming you want to clone the entire UI at LCD aspect and letter boxed on the HDMI. What exactly are your HDMI requirements?

  • Hi Matt,
    I'm not very clear what you mean by "HDMI requirements". Our board has no LCD, just only output to TV through HDMI, below is my setting for HDMI timings:
    .panel = {
      .hdmi_default_cea_code = 4,
      .timings = {
       .x_res = 1280,
       .y_res = 720,
       .pixel_clock = 74250,
       .hsw = 40,
       .hfp = 110,
       .hbp = 220,
       .vsw = 5,
       .vfp = 5,
       .vbp = 20,
      },
            },

     

    Thanks & Best Regards,

    Dan

  • Okay, my misunderstanding. Have you tested it with and actual HDMI monitor? What kind of TV are you using, please explain the dongle. With the unknown hardware in the mix I cannot answer your question.

  • Hi Matt,
    Our dongle just has the micro-SD, one HDMI, one usb port for power supply, one usb port for OTG, no camera or LCD and other device, but all the chips (CPU, PMIC, wifi, flash, DDR and so on) we use are same as your blaze reference.
    The TV has nothing special, all have tested with other STB box or OTT and works fine.

    Thanks & Best Regards,
    Dan

  • Dan,

    I don't think your timings are correct. You want CEA mode 4 which is HD @ 60Hz? Then the numbers below that don't work. Can you explain how you calculated all of them? Can you show me a screenshot? I have to have more detail from you before I can answer this.

  • Also your board file would be nice to have, as well as your boot args for enabling HDMI as default display. 

  • Hi Matt,
    The HDMI timeing is set as refer to your VESA resolution examples from Bootargs for enabling display - OMAPpedia.htm file, I have tried 720P {4.1280,720,74250,40,110,220,5,5,20} and 1080P {16,1920,1080,148500,44,88,148,5,4,36}, the 1080P cann't be shown normally, it will be dark after one second show.

    Below is the image, you can see the four red frame just can not show the total icon:

    Thanks & Best Regards,
    Dan

  • Hi Matt,
    I haven't change any HDMI setting, for your guys told me that 4AI.1.7 have alraedy support output to TV automactically.
    Below is part of the boot up log for our board:
    OMAP44XX SDP # printenv
    bootargs=console=ttyO2,115200n8 mem=456M@0x80000000 mem=512M@0xA0000000 init=/init vram=10M omapfb.vram=0:4M

    androidboot.console=ttyO2
    bootdelay=3
    baudrate=115200
    ipaddr=128.247.77.90
    serverip=128.247.77.158
    netmask=255.255.254.0
    bootfile="uImage"
    stdin=serial
    stdout=serial
    stderr=serial
    bootcmd=booti mmc1
    ethact=KS8851SNL

    Environment size: 325/131068 bytes
    OMAP44XX SDP # boot
    kernel   @ 80008000 (4435564)
    ramdisk  @ 81000000 (166539)
    I2C read: I/O error

    Starting kernel ...

    Uncompressing Linux... done, booting the kernel.
    [    0.000000] Initializing cgroup subsys cpu
    [    0.000000] Linux version 3.0.31-01830-g89e862c-dirty (wireless@wireless-laptop) (gcc version 4.4.1 (Sourcery G++ Lite 2010q1-202) ) #27

    SMP PREEMPT Thu Oct 18 11:34:34 CST 2012
    [    0.000000] CPU: ARMv7 Processor [411fc093] revision 3 (ARMv7), cr=10c5387d
    [    0.000000] CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [    0.000000] Machine: OMAP4 blaze board
    [    0.000000] android_display: setting default resolution 1280*720, bpp=4
    [    0.000000] android_display: tiler1d 29491200
    [    0.000000] android_display: setting fb0.vram to 7372800
    [    0.000000] android_display: setting vram to 7372800
    [    0.000000] android_display: ion carveouts: 92930048 tiler2d, 12058624 nonsecure
    [    0.000000] omap4_total_ram_size = 0x40000000
    [    0.000000] omap4_smc_size = 0x300000
    [    0.000000] omap4_ion_heap_secure_input_size = 0x5a00000
    [    0.000000] omap4_ion_heap_secure_output_wfdhdcp_size = 0x1000000
    [    0.000000] omap4_ducati_heap_size = 0x6900000
    [    0.000000] omap4_ion_heap_tiler_mem_size = 0x5a80000
    [    0.000000] omap4_ion_heap_nonsec_tiler_mem_size  = 0xb80000
    [    0.000000]  omap4_smc_addr = 0xbfd00000
    [    0.000000] omap4_ion_heap_secure_input_addr = 0xba300000
    [    0.000000] omap4_ion_heap_secure_output_wfdhdcp_addr = 0xb9300000
    [    0.000000] omap4_ducati_heap_addr = 0xb2a00000
    [    0.000000] omap4_ion_heap_tiler_mem_addr = 0xacf80000
    [    0.000000] omap4_ion_heap_nonsec_tiler_mem_addr  = 0xac400000
    [    0.000000] omap_ion_init: secure_input id=2 [ba300000-bfd00000] size=5a00000
    [    0.000000] omap_ion_init: secure_output_wfdhdcp id=5 [b9300000-ba300000] size=1000000
    [    0.000000] omap_ion_init: tiler id=1 [acf80000-b2a00000] size=5a80000
    [    0.000000] omap_ion_init: nonsecure_tiler id=3 [ac400000-acf80000] size=b80000
    [    0.000000] omap_ion_init: system id=0 [0-0] size=0
    [    0.000000] omap_ion_init: tiler_reservation id=4 [0-0] size=0
    [    0.000000] Reserving 8388608 bytes SDRAM for VRAM
    [    0.000000] Memory policy: ECC disabled, Data cache writealloc
    [    0.000000] OMAP4430 ES2.3
    [    0.000000] SRAM: Mapped pa 0x40300000 to va 0xfe400000 size: 0xd000
    [    0.000000] On node 0 totalpages: 178688
    [    0.000000] free_area_init_node: node 0, pgdat c08818c0, node_mem_map c1029000
    [    0.000000]   Normal zone: 256 pages used for memmap
    [    0.000000]   Normal zone: 0 pages reserved
    [    0.000000]   Normal zone: 32512 pages, LIFO batch:7
    [    0.000000]   HighMem zone: 1792 pages used for memmap
    [    0.000000]   HighMem zone: 144128 pages, LIFO batch:31
    [    0.000000] PERCPU: Embedded 7 pages/cpu @c1834000 s7136 r8192 d13344 u32768
    [    0.000000] pcpu-alloc: s7136 r8192 d13344 u32768 alloc=8*4096
    [    0.000000] pcpu-alloc: [0] 0 [0] 1
    [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 176640
    [    0.000000] Kernel command line: console=ttyO2,115200n8 mem=1G vmalloc=768M androidboot.console=ttyO2 omap_wdt.timer_margin=30

    androidboot.serialno=09113A361200A017 androidboot.bootloader=U-Boot_1.1.4-g83ec135f-dirty
    [    0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
    [    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
    [    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
    [    0.000000] Memory: 256MB 442MB = 698MB total
    [    0.000000] Memory: 696124k/696124k available, 352452k reserved, 583680K highmem
    [    0.000000] Virtual kernel memory layout:
    [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    [    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
    [    0.000000]     DMA     : 0xffc00000 - 0xffe00000   (   2 MB)
    [    0.000000]     vmalloc : 0xc8800000 - 0xf8000000   ( 760 MB)
    [    0.000000]     lowmem  : 0xc0000000 - 0xc8000000   ( 128 MB)
    [    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    [    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
    [    0.000000]       .init : 0xc0008000 - 0xc004e000   ( 280 kB)
    [    0.000000]       .text : 0xc004e000 - 0xc0802000   (7888 kB)
    [    0.000000]       .data : 0xc0802000 - 0xc0882420   ( 514 kB)
    [    0.000000]        .bss : 0xc0882444 - 0xc09d3b70   (1350 kB)
    [    0.000000] SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
    [    0.000000] Preemptible hierarchical RCU implementation.
    [    0.000000] NR_IRQS:410
    [    0.000000] omap_hwmod: dpll_mpu_m2_ck: missing clockdomain for dpll_mpu_m2_ck.
    [    0.000000] OMAP clockevent source: GPTIMER1 at 32768 Hz
    [    0.000000] sched_clock: 32 bits at 32kHz, resolution 30517ns, wraps every 131071999ms
    [    0.000030] Calibrating delay loop... 1194.24 BogoMIPS (lpj=4665344)
    [    0.023498] pid_max: default: 32768 minimum: 301
    [    0.023498] Mount-cache hash table entries: 512
    [    0.023498] Initializing cgroup subsys debug
    [    0.071746] Initializing cgroup subsys cpuacct
    [    0.071746] Initializing cgroup subsys freezer
    [    0.071899] CPU: Testing write buffer coherency: ok
    [    0.072448] L310 cache controller enabled
    [    0.072448] l2x0: 16 ways, CACHE_ID 0x410000c4, AUX_CTRL 0x5e470000, Cache size: 1048576 B
    [    0.150634] CPU1: Booted secondary processor
    [    0.181884] Brought up 2 CPUs
    [    0.181884] SMP: Total of 2 processors activated (2388.48 BogoMIPS).
    [    0.182159] omap_hwmod: _populate_mpu_rt_base found no _mpu_rt_va for emif_fw
    [    0.186218] omap_hwmod: _populate_mpu_rt_base found no _mpu_rt_va for l3_instr
    [    0.186218] omap_hwmod: _populate_mpu_rt_base found no _mpu_rt_va for l3_main_1
    [    0.186248] omap_hwmod: _populate_mpu_rt_base found no _mpu_rt_va for l3_main_2
    [    0.186248] omap_hwmod: _populate_mpu_rt_base found no _mpu_rt_va for l4_abe
    [    0.186279] omap_hwmod: _populate_mpu_rt_base found no _mpu_rt_va for l4_cfg
    [    0.186279] omap_hwmod: _populate_mpu_rt_base found no _mpu_rt_va for l4_per
    [    0.186309] omap_hwmod: _populate_mpu_rt_base found no _mpu_rt_va for l4_wkup
    [    0.186309] omap_hwmod: _populate_mpu_rt_base found no _mpu_rt_va for mpu_private
    [    0.186401] omap_hwmod: _populate_mpu_rt_base found no _mpu_rt_va for sl2if
    [    0.186401] omap_hwmod: _populate_mpu_rt_base found no _mpu_rt_va for usbhs_ohci
    [    0.186401] omap_hwmod: _populate_mpu_rt_base found no _mpu_rt_va for usbhs_ehci
    [    0.186492] omap_hwmod: l3_div_ck: missing clockdomain for l3_div_ck.
    [    0.192199] _omap4_module_wait_ready: Timeout waiting for module enable (mcpdm_fck: clkctrl = 0x30002)
    [    0.195251] omap_hwmod: mcpdm: cannot be enabled (3)
    [    0.198181] print_constraints: dummy:
    [    0.198181] NET: Registered protocol family 16
    [    0.198181] GPMC revision 6.0
    [    0.200164] EMIF0 is enabled with IRQ142
    [    0.200164] EMIF1 is enabled with IRQ143
    [    0.200164] Last reset was cold reset (PRM_RSTST=0x1)
    [    0.200317]
    [    0.200927] OMAP GPIO hardware version 0.1
    [    0.202484] omap_mux_init: Add partition: #1: core, flags: 2
    [    0.204956] omap_mux_init: Add partition: #2: wkup, flags: 2
    [    0.206176] omap_mux_get_by_name: Could not find signal uart1_cts.uart1_cts
    [    0.207031] omap_hwmod_mux_init: Could not allocate device mux entry
    [    0.455291] Modem NOT detected
    [    0.455322] Modem state properly updated to state 0
    [    0.456604] omap_disp_led_init: Configuring as one display LED
    [    0.583312] HSI: skipping omap_device registration
    [    0.583831] OMAP DMA hardware revision 0.0
    [    0.583831] omap_rproc_get_pool: dsp - no carveout memory is available at all
    [    0.583831] omap_rproc_get_pool: ipu - carveout memory is unavailable: 0x0, 0x0
    [    0.596038] bio: create slab <bio-0> at 0
    [    0.596466] print_constraints: vwl1271: 1800 mV
    [    0.596466] i2c-core: driver [twl] using legacy suspend method
    [    0.596466] i2c-core: driver [twl] using legacy resume method
    [    0.596466] SCSI subsystem initialized



    Thanks & Best Regards,
    Dan

  • Well, I am surprised that even works. Yes $AI.1.7 does support HDMI ad the default or only display without patching, but it isn't automatic, there are some configuration considerations.

    You have to at least have 'omapdss.def_disp=hdmi' as a boot arg.

    'omapfb.fb_opt=0,1920,1080' Will increase the size of the frame buffer for 1080p, This option is recommended even if you default to 720p.

    The next question is what board files are you using and how are you configuring the display. You do not enter in the timings, those are normally read from the EDID. I will point you to the board-44xx-tablet.panel.c file as and example of how your board file needs to be constructed for HDMI as the only and default display. I ask again, are you using your own board file? If so can I see it. You have to be more specific for me to help you.

  • Hi Matt,
    We take balze as reference, that's to say our board file is board-4430sdp.c, in order to let HDMI as default output, we do modify to sdp4430_dss_devices[] and sdp4430_dss_data as below:
    static struct omap_dss_device *sdp4430_dss_devices[] = {
     //&sdp4430_lcd_device,
     &sdp4430_hdmi_device,
    };

    static struct omap_dss_board_info sdp4430_dss_data = {
     .num_devices = ARRAY_SIZE(sdp4430_dss_devices),
     .devices = sdp4430_dss_devices,
     //.default_device = &sdp4430_lcd_device,
     .default_device = &sdp4430_hdmi_device,
    };

    Thanks & Best Regards,
    Dan

  • That might work, but HDMI DD is really only supported on the tablet. You should not enter all the timings in the board file, but allow the EDID to drive that. I would point you to the table board files as a reference not the blaze sdp board file. If you look in the tablet board files you will see how the omapdss.default_display=hdmi changes up the data structures as well has how the panel data structure is filled in to support this.

  • Hi Matt,
    So could you please teach me how to add omapdss.def_disp=hdmi to boot arg? I tried to save this parameter to bootargs @ u-boot as below but it doesn't work, after boot into kernel or reboot the board, the bootargs was reset to "console=ttyO2,115200n8 mem=456M@0x80000000 mem=512M@0xA0000000 init=/init vram=10M omapfb.vram=0:4M"


    OMAP44XX SDP # printenv
    bootargs=console=ttyO2,115200n8 mem=456M@0x80000000 mem=512M@0xA0000000 init=/init vram=10M omapfb.vram=0:4M androidboot.console=ttyO2
    bootdelay=3
    baudrate=115200
    ipaddr=128.247.77.90
    serverip=128.247.77.158
    netmask=255.255.254.0
    bootfile="uImage"
    stdin=serial
    stdout=serial
    stderr=serial
    bootcmd=booti mmc1
    ethact=KS8851SNL

    Environment size: 325/131068 bytes
    OMAP44XX SDP # setenv bootargs 'console=ttyO2,115200n8 mem=456M@0x80000000 mem=512M@0xA0000000 init=/init omapdss.def_disp=hdmi vram=10M omapfb.vram=0:4M androidboot.console=tty02'
    OMAP44XX SDP # saveenv
    Type 'y' or 'Y' to Save Environment to NOWHERE..
    Saving Environment to NOWHERE...
    OMAP44XX SDP #


    Thanks & Best Regards,
    Dan

  • Dan,

    "saveenv" doesn't work on these releases, as there is no longer an "env" partition on the eMMC.  However, you could use "setenv bootargs 'console= ...." and then type "boot".  You could also change the bootargs in the kernel defconfig file.  For Blaze / Blaze Tablet, this file is /kernel/android-3.0/arch/arm/configs/blaze_defconfig.  Modify the line:

    CONFIG_CMDLINE="console=ttyO2,115200n8 mem=1G vmalloc=768M androidboot.console=ttyO2 omap_wdt.timer_margin=30"

    Regards,
    Gina 

  • If you are booting from emmc, you can also use the umulti2.sh script. You add any addition boot args in that script and then used the script to rebuild boot.img, then you flash it to the emmc.

  • Hi Matt,

     I add omapdss.def_disp=hdmi to the bootargs in /kernel/android-3.0/arch/arm/configs/blaze_defconfig, then choose blaze_tablet as reference and clean then rebuild the whole project,result is same, we still can't see the whole menu on the four corner.

    Thanks & BR.

    Dan

  • Dan,

    You are going to have to put alot more effort into giving me the information I need to solve your problem. I cannot diagnose a problem without adequate information.I need to see your board file and I would like to see a complete kernel log from start up.

  • 6811.ti.log

    1033.modify.txt

     

    Hi Matt,

    Pls refer to the attached file,

    ti.log ==> the boot up log

    modify.txt ==> what I do

     

    Thanks & Br,

    Dan