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.

Video output on second HDMI (EZSDK 5.02 dm816x-evm) ?



Hello,

I am currently experimenting with the dm816x-evm-module (DDR3 Rev. E), with i/o daughtercard, which provides two additional HDMI ports. I read the current video driver documentation and was wondering how to activate output on the second HDMI port. 

I'm sorry if I missed something, but the documentation does only seem to provide the means to switch to ouputs other than HDMI.  I did not yet understand how to switch for example from hdmi (mainboard) to hdmi (i/o daughtercard) or maybe run both outputs in clone mode.

Thank you very much in advance!

Regards

Sebastian

  • Hi,

     

    What do you mean by switching? you mean switching of graphics plane?

    These outputs can be independently enabled/disabled. There are sysfs entries for each output, you will need to set correct values in correct sysfs entries to enable output on hdmi.

     

    Thanks,

    Brijesh Jadav

  • Hello Brijesh,

    and thank you for your answer.

    The simple task that I am trying to accomplish is to have cloned video output on the FIRST and SECOND hdmi output. The main display is connected to the hdmi output on the mainboard (pcb marking "P6"). The second display is connected to the second hdmi output on the i/o daughtercard (pcb marking "P4").

    I already read about the sysfs entries (i.e. /sys/devices/platform/vpss/graphics0/enabled etc.) in the VPSS driver guide. I then tried some examples from that exact guide. Unfortunately none of the above helped me accomplish my goal, even after editing the provided examples where I thought it was needed.

    So a little help on the matter would be highly appreciated. I really seem to be missing something and honestly the documentation doesn't really make the matter self-explanatory.

    Again thank you very much in advance!

    Regards

    Sebastian

    P.S.: Video output in clone-mode is no hard requirement. It would already help greatly if I knew how to switch the main video signal from hdmi_1 (mainboard) as output, to hdmi_2 (i/o daughtercard). As I said, I tried some commands, but obviously made some mistakes as the outcome never was as expected.

  • Hi Sebastian,

     

    It looks like sii9022a driver is not inserted in the kernel. Second HDMI on the daughter card requires separate kernel driver. It is build as a kernel module, so it has to be inserted after inserting vpss.ko. Can you please see if the module is inserted in you kernel or not.

     

    Thx,

    Brijesh Jadav

  • Thank you for the heads up. It could very well be that I overlooked that extra module.

    I'll give you feedback as soon as I checked out my kernel build and modules. I can remember compiling the module but ATM I' not sure if I modprobed it. So, that could very well be the problem.

    Thank you so far!

  • Hi Brijesh,

    in the meantime I tested inserting the si9022a module, but unfortunately this does only seem to work partially.

    When trying either "modprobe si9022a" OR "insmod si9022a", the following error message floods the console for about 60 seconds:

    "omap_i2c omap_i2c.2: controller timed out"

    After that the module is actually inserted, according to "lsmod". But we still don't get no output on the second hdmi port.
    I tried the following commands to test if the module really worked:

    "echo 0 > /sys/devices/platform/vpss/graphics0/enabled
    # echo 1:dvo2 > /sys/devices/platform/vpss/graphics0/nodes
    #echo 1 > /sys/devices/platform/vpss/graphics0/enabled"

    Just like described in the video driver guide. Are these commands even the right ones for switching output from hdmi_1 to hdmi_2?

    Maybe there is a special order in which the modules need to be inserted? I tried to load it right after VPSS (like described here: http://processors.wiki.ti.com/index.php/Sii9022a_HDMI_transmitter_driver).

    Or are there any parameters that might be necessary?

    I first tried it with my own custom version of the 2.6.37 kernel (ezsdk 5.02 sources), but later verified the problem with the standard EZSDK kernel and rootfs. The error stays the same.

    Any further ideas?

    Regards

    Sebastian

  • Hi Sebastian,

     

    I think I2C instance required for the Sil9022a can not be controlled by A8, which is why it is printing error while inserting this module. The driver for 9022 should be available EZSDK firmwares. There should be some way to set the mode and enable output of 9022. Can you please refer to ezsdk user guide?

     

    Thanks,

    Brijesh Jadav

  • Hi Brijesh,

    i have read all  ezsdk user guides and i can not find any information to sil9022a module and how to insert it correctly.
    In which document can i find this info?

    I used the driver for 9022 from the EZSDK v5.02 and this produces this error mentioned above.

    Thank you for your help, i really want to get the second hdmi working.
    Sebastian

     

     

  • Hi Sebastian,

    I think what Brijesh means is that the firmwares for the M3 controllers access the additional HDMI ports. In the older SDK (5.1...), there were some OMX examples that used them, but they used them over the M3s and if I remember right there has been no word of a kernel driver module for the additional ports. So I think, it is not supported by the SDK directly. But it might be possible to somehow clone the output if you adapt or modfiy the drivers and use OMX to display the data.

    Or if it is supported, try inserting the firmwares first and use that module. Again you might need to adapt it. Someone might have more info on this.

    Regards, Markus

  • Brijesh Jadav said:

    I think I2C instance required for the Sil9022a can not be controlled by A8

     

    I'm not convinced that statement is correct.  I have attached an I2C analyser to IIC2 at the SII9022A device and I see the reset sequence is being sent as I would expect.  The sequence appears to indicate that the SII9022A has ACKed the reset request, but the driver just keeps on repeatedly trying it once a second.    This looks more like an I2C host driver fault of some sort.  I don't know why the call to i2c_smbus_write_byte_data() in the sii9022a_drv.c driver would return an error when everything that's actually on the wire looks perfectly correct.

    The Wiki at http://processors.wiki.ti.com/index.php/Sii9022a_HDMI_transmitter_driver suggests this has worked in the past.

    I'm using EZSDK 5_02_02_60.   Would appreciate some more input/ideas on what's really happening here.

     

  • Hi,

    I found the following line in the Graphics SDK "README.pdf" that belongs to the new EZSDK 5.02:
    "Due to a known issue in the Linux-PSP, disable the SII9022a driver using menuconfig"

    That means that the module doesn't work at the moment, right? Or why should it be left out when building the kernel?
    It looks like it is impossible right now to get the second hdmi working on the dm816x.

    @I Jeffray: I have exactly the same I2C error and really want to get that solved.

    Does anyone have further ideas?

    Regards,
    Sebastian

     

     

  • The 2nd IIC bus on the EVM is definitely 'not happy' in some way.   Quite possibly both The A8 and M3 are trying to master this bus at the same time.

    In /etc/init.d/load-hdvpss-firmware.sh the modprobe has a 'i2c_mode=1' parameter telling it that the M3 has been loaded with 'special' firmware.   This is, presumably, the dm816x_hdvpss.xem3 build that's loaded.  Changing this to be i2c_mode=0 and using the presumably 'not special' firmware from the PSP release, ti816x_hdvpss.xem3, still does not get me control of the sii9022a device.

    I'm getting a little dismayed at how much 'special' information there is regarding the DM816x -- no explanation of the Ducati blocks, or how to use them, and it seems no source code for things like the M3 firmwares.   If the firmware is taking control of things on the EVM board, what am I supposed to use/do for a real product?  How am I supposed to make my own firmware for the M3 that acts in a predictable/documented way?

     

  •   It is true that currently firmware on M3 owns the I2C access, and A8 can not access it.

      Our current support model is to give closed binary for firmwares.

      The usecase being discussed is missed out in the EZSDK software components, we are looking in to this and would get back on this sooner.

      We have plan to move the I2C driver from firmware to Linux, so that customer can change as per their product, but this is planned on forth coming releases.

    Best Regards,

    Velan

     

  • Jeffray,

               We had internal discussion on this, It will take some time for us to stabilize the firmware module, so that the firmware do not use any resource from EVM, EVM resource usage will happen from Linux and source code would be available for this.

              Meanwhile you can get the firmware source package, and proceed with your tasks, for which an NDA sign required from your side, please contact your local TI contact or TI FAE.

              Let us know in this thread if you can not reach any TI support on this.

    Thanks & Regards

    Velan

  • Velan,

    Thank you for your input and response - it's really appreciated.  It's good to know the plan for the future is to make a clean firmware and Linux drivers.  I will try and find an FAE in the UK who can get me the firmware sources - I didn't expect this would really be possible.  Great!

    Thanks,

    Ian.