On Sat, 02 Sep 2006 01:05:40 -0400, Jack Carroll wrote: > I finally got around to taking a look at these references. A few > thoughts... > > The EDID format is pretty complicated, with all the options it > offers. But I2C is something else altogether. It's been some years since > I read anything about the I2C electrical interface, but as I recall, its > complexity goes beyond the realm of the outrageous into the diabolical. > Not something we should be eager to implement ourselves. > Nevertheless, there's a pretty strong argument for giving OGC1 the > ability to grab EDID from the monitor and pass it to the BIOS, as one of > the card's basic features. > The pragmatic way to implement I2C might be to look around for a > microcontroller that has a built-in I2C port. Let that talk to the I2C > PROM in the monitor, and pass the data in a more digestible protocol (such > as parallel or SPI) to the TRV10. There are better things to do with the > TRV10's high-speed logic than re-implement a horribly complicated > low-speed protocol that's only used during initialization -- and that kind > of low-end embedded microcontroller is really, really cheap. I know > there's a desire to avoid adding microcomputers to the board, but doing > I2C off-chip could save both money and development time. The same > microcontroller might be used in the external DDC tool.
Decoding I2C is normally done by software on the host. For a radeon there is one io port/memory location that represents the clock and data of the I2C stream. Software sits in a loop reading the data and decoding the I2C protocol. Check out the Linux I2C drivers. AFAIK all you have to do is get the I2C signal off the DVI connector and onto a visible IO address. None of this set up happens in hardware. The card boots with video disabled. The host runs the VBIOS. The VBIOS decodes the I2C stream and gets the EDID. From that it sets a mode, sets it, and enables video out. If there is no DDC is sets a default mode. Note that there are two types of DDC, DDC1 and DDC2. DDC2 has replaced DDC1 but there are monitors out there running DDC1. DDC1 and DDC2 are different electrically. > One good thing abut I2C is that it's a one-wire signal channel. > Coping with the problems of such aggressive pincount reduction is why the > protocol has to be so complicated. But it means that only one jumper has > to be moved, to reroute the signal from the DVI connector to a test tool > header. Jon Smirl [EMAIL PROTECTED] _______________________________________________ Open-graphics mailing list [email protected] http://lists.duskglow.com/mailman/listinfo/open-graphics List service provided by Duskglow Consulting, LLC (www.duskglow.com)
