[meta-freescale] [meta-fsl-arm] Sabre* and HDMI
Gary Thomas
gary at mlbassoc.com
Wed Apr 8 05:46:50 PDT 2015
On 2015-04-08 06:33, Nikolay Dimitrov wrote:
> Hi Gary,
>
> On 04/08/2015 03:08 PM, Gary Thomas wrote:
>> Disclaimer - this question is not 100% BSP, but I'm hoping someone
>> reading it might have some insights.
>>
>> I have multiple i.MX6 boards which I support using Poky/Yocto plus
>> meta-fsl-arm*. The problem I'm looking at is on some of them, HDMI
>> works correctly where on others the screen is clipped (overscan).
>>
>> On the SabreLite, using linux-boundary_3.10.53, HDMI works correctly
>> (on all the monitors I have tried). An image of the upper left of
>> the screen is in HDMI-OK.png
>>
>> On SabreSD, using linux-imx_3.10.53, HDMI on a 720p monitor, the
>> image is clipped with upwards of 5% of the pixels missing. This is
>> shown in HDMI-BAD.png
>>
>> I've not yet tried the linux-boundary kernel on the SabreSD, but I
>> expect the same result as I have seen this problem on other boards
>> (internal) that use the linux-boundary kernel.
>>
>> Any insights on what might cause this? About the only thing we can
>> think of is the SabreSD sends its HDMI signals through a
>> level-shifting ESD device whereas the SabreLite manages these signals
>> more directly using FETs and discrete circuitry.
>>
>> Thanks for any ideas
>
> The actual HDMI video signal is not level-shifted by the ESD chip, it's
> only clamped when subjected to voltages outside SOAR. The ESD chip
> doesn't even buffer the video signal. So technically speaking, the video
> signal is 1:1 the same on both boards, both as signal levels, protocols,
> everything (except for the ability to protect against ESD damage, of
> course).
Thanks for the explanation (the previous words were my hardware guy's,
sorry to have mispoken)
>
> There could be a difference in the way how well the I2C (DDC)
> level-shifting works, in some cases this could allow or prevent the
> display to properly communicate settings with the board, and the kernel
> could or couldn't fetch EDID data. You can check with read-edid tool
> whether the monitor gives any/meaningful information:
>
> # read-edid | parse-edid
>
> ...just to be sure it works.
I've looked at the EDID when the kernel parses it and it looks OK.
I'd like to try your example, but I don't find 'read-edid' anywhere.
The only package I can find, which contains only parse-edid, is in
meta-openembedded/meta-oe/recipes-support/read-edid/read-edid_2.0.0.bb
Ideas where to get read-edid?
>
> The different boards can use different timings on the same monitor,
> depending on what they "see" attached. Which is also a reminder for you
> to make sure that both boards's kernels have the same video bootargs, so
> you can make a meaningful comparison.
>
> I hope that you're comparing kernels built from the same source tree, so the display timing definitions are exactly the same.
Yes, as I said, I've tried two different platforms both built
using linux-boundary_3.10.53 - one works, the other not.
--
------------------------------------------------------------
Gary Thomas | Consulting for the
MLB Associates | Embedded world
------------------------------------------------------------
More information about the meta-freescale
mailing list