HDMI output configuration

Started by andi, 14. Jan 2009, 13:09

previous topic - next topic
Go Down

andi

Hi,

thanks hoernchen for figuring out the scart register configuration. I haven't tried to set the registers as I am only having a HDMI connected LCD screen. I am wondering whether the digital output components differ from the ones used for the reference design or for instance the PCH or Pirelli box.
We managed to load the kernel modules with the build-in ucodes. However, trying to configure the HDMI output always fails. It seems like the basic communication with the HDMI chip works as the software detects the LCD. I am not sure, but I think this is not a ucode problem.

Best regards,
Andi

Hoernchen

#1
14. Jan 2009, 14:01 Last Edit: 14. Jan 2009, 18:14 by Hoernchen
Communication with the HDMI chip / integrated siI9030 works via the second i2c master available at base address 0x73840 (REG_BASE_display_block + VO_hdmi_i2c - I2C_MASTER_CONFIG - SYS_gpio_dir), but reading out the hdmi config is slightly harder because there is no datasheet (hdmi has to stay evil secret!) and the sample file is just a mess and calculationg the right offsets for libprivate.a is still confusing.
Btw, i am still not quite certain that the embedded ucodes work, the dcc macro which finally calls the magic function which loads the embedded ucode is somewhat strange.
bringer of linux, conqueror of hdmi, jack of all trades.

pcgeil

Is it correct, that this topic is about X300t? :-)

Did I missed some news about the progress of linux on X300t?
Has andi really get some ucodes to work with linux, or at least could load them?
Which ucodes did you use?  ;)

Hoernchen

#3
14. Jan 2009, 14:54 Last Edit: 14. Jan 2009, 18:15 by Hoernchen
You can create a fully working (incl. samples !) "frankenmrua" by adding missing files/libs from mrua 2.8.2.0 to mrua 2.8.0.1 which is the last version with integrated ucodes (therefore a big libprivate.a). Compiling the kernel modules has always worked, but i guess everyone forgot about the embedded ucodes. There is no explicit error when dcc loads the ucodes, but it calls some shady libprivate.a functions which probably ignore errors.
bringer of linux, conqueror of hdmi, jack of all trades.

Herman

oooh. So stepping back a sec.
I was under impression that *any* mrua ucodes were nix based therefore signed for nix usage == wont work on any ce box ???

Your saying 2.8.0.1 uses 'internal' ucodes which can be utilised and made to get an output ?

Hoernchen

Maybe. No one knows for sure, because there are about 10^6 config registers and big differences between the mrua sample boards and the consumer stbs, i.e. for the pirelli stb you have to toggle gpios to activate the usb ports, while mrua expects 2 gpios, one to enable scart output and one for widescreen, but the x300t uses a i2c scart switch. That's why no one managed to get ucodeless frambeuffer output yet.
bringer of linux, conqueror of hdmi, jack of all trades.

Hoernchen

Btw - the internal sii9030 is hdmi 1.1 only, afaik there is no smp with integrated hdmi > 1.1 (maybe smp865x ?) so hdmi > 1.1 means an external hdmi transmitter has to be used (istar mini hdmi 1.3 uses a SiI9134). There is a zboot dviinit applet (can be found in the istar romfs, dviinit.bin, this is executable code, not data!) which parses the file dvi.bin which is basically a i2c config file for the i2c chip consisting of i2c addresses and correspondig data. This file is mostly the same for all linux based stbs.
bringer of linux, conqueror of hdmi, jack of all trades.

Hoernchen

dvi.bin file format:
piodata // for software i2c, skipped because of hw i2c
pioclock // for software i2c, skipped because of hw i2c
(delay_speed >> 16) & 0xffff; // i2c command delay speed
devaddr // i2c device address for chip
module_id // 2 = internal hdmi, else ext.
-----
actual data, format address,data,address,data,....
-----
checksum

dvi.bin from conceptronic, popcornhour, istar:
Code: [Select]

00 //gpio 0 is data, not used
01 //gpio 1 is clock, not used
0000 6400 //and(shr(0x00640000;16);0xffff) = 0x64 = 100
72 // i2c device address
02 //internal hdmi
--data--
08 37
0C 89
0F 04
33 30
3E 00
--checksum--
03FE 9BFF

bringer of linux, conqueror of hdmi, jack of all trades.

Go Up