[Patch] OE: add EDID parsing support for U-boot

As discussed in previous thread[1], I'm sending the first patch and I've
better started the new thread for it.

Attached is patch for u-boot in OE which contains first attempt of EDID
parsing. I've made my u-boot edid branch available on github[2], you can find
there the bare parser[3] with EEPROM dumps for testing also. Example usage and
output of my 32" Samsung TV (I think, that we should hardcode the address of
EDID EEPROM, it's 50 always anyway):

  OMAP3 beagleboard.org # i2c dev 2
  Setting bus to 2

  OMAP3 beagleboard.org # i2c edid 50
  EDID version: 1.3
  Product ID code: 03bc
  Manufacturer: KJL
  Serial number: 00000000
  Manufactured in week: 47 year: 2007
  Video input definition: analog signal
  Monitor is RGB
  Maximum visible display size: 16 cm x 9 cm
  Power management features: no active off, no suspend, no standby
  Estabilished timings:
    640x480 75 Hz (VESA)
  Standard timings:
    1920x1080 67 Hz (detailed)
    1280x720 71 Hz (detailed)
  Monitor range limits, horizontal sync: 26-68 Hz, vertical refresh: 23-61 KHz
  Monitor name: SAMSUNG
  OMAP3 beagleboard.org #

Next step would be adding of board detection logic using EDID, but I'll better
wait for the comments first. Anyway, we need to define the content of the
vendor/product IDs to something similar we have for expansion board detection
already.

Questions, comments and patches are welcome. Thanks.

1. http://groups.google.com/group/beagleboard/browse_frm/thread/df33eee4618e06b4#
2. http://github.com/ynezz/u-boot-sakoman
3. http://github.com/ynezz/u-boot-edid

-- ynezz

0001-u-boot-add-EDID-parsing-support-for-BeagleBoard.patch (22 KB)

“Maximum visible display size: 16 cm x 9 cm” and the TV is 32"? wierd :slight_smile:

2010/9/19 Petr Štetiar <ynezz@true.cz>

Maxim Podbereznyy <lisarden@gmail.com> [2010-09-19 21:13:04]:

"Maximum visible display size: 16 cm x 9 cm" and the TV is 32"? wierd :slight_smile:

Tell that Samsung, ok? :slight_smile:

-- ynezz

Hey,

As discussed in previous thread[1], I'm sending the first patch and I've
better started the new thread for it.

Attached is patch for u-boot in OE which contains first attempt of EDID
parsing. I've made my u-boot edid branch available on github[2], you can find
there the bare parser[3] with EEPROM dumps for testing also. Example usage and
output of my 32" Samsung TV (I think, that we should hardcode the address of
EDID EEPROM, it's 50 always anyway):

  OMAP3 beagleboard.org # i2c dev 2
  Setting bus to 2

  OMAP3 beagleboard.org # i2c edid 50
  EDID version: 1.3
  Product ID code: 03bc
  Manufacturer: KJL
  Serial number: 00000000
  Manufactured in week: 47 year: 2007
  Video input definition: analog signal
  Monitor is RGB
  Maximum visible display size: 16 cm x 9 cm
  Power management features: no active off, no suspend, no standby
  Estabilished timings:
    640x480 75 Hz (VESA)
  Standard timings:
    1920x1080 67 Hz (detailed)
    1280x720 71 Hz (detailed)
  Monitor range limits, horizontal sync: 26-68 Hz, vertical refresh: 23-61 KHz
  Monitor name: SAMSUNG
  OMAP3 beagleboard.org #

I also created an u-boot patch to try to probe the EDID and then set the proper
mode, but then decided to move to the kernel, as soon we'll have a similar
functionality for OMAP 4.

While hacking it for ubuntu's kernel (2.6.35) I created a first draft of the
EDID parser for OMAP 3, little bit similar to what we had in the past at this
list. You can find the patches at Ubuntu Kernel Repositories.

Currently it's basically a draft because I first wanted to make sure it'd work
the way I needed, using current kernel API. There's still a lot of room for
improvements, like finding a proper place for the code (maybe at the display
driver?) and a proper way to identify the bus number (i2c bus 3 for Omap 3). I
also want it to probe the best resolution respecting the monitor aspect ratio,
to get a better looking image.

With this patch series I can get 1280x1024@56 as the highest resolution from my
monitor, so fell free to test and give me any feedback. Patches for improvements
are also welcome :slight_smile:

Cheers,