t-hack.com

English - X300T / X301T / DIT9719 / KISS KMM / BT Vision / Bluewin TV-Box / V-BOX/ VIP 1216 or similar Hardware => Software => Topic started by: andi on 14. Jan 2009, 13:09

Title: HDMI output configuration
Post by: andi on 14. Jan 2009, 13:09
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
Title: Re: HDMI output configuration
Post by: Hoernchen on 14. Jan 2009, 14:01
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.
Title: Re: HDMI output configuration
Post by: pcgeil on 14. Jan 2009, 14:26
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?  ;)
Title: Re: HDMI output configuration
Post by: Hoernchen on 14. Jan 2009, 14:54
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.
Title: Re: HDMI output configuration
Post by: Herman on 14. Jan 2009, 15:09
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 ?
Title: Re: HDMI output configuration
Post by: Hoernchen on 14. Jan 2009, 15:18
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.
Title: Re: HDMI output configuration
Post by: Hoernchen on 14. Jan 2009, 16:02
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.
Title: Re: HDMI output configuration
Post by: Hoernchen on 14. Jan 2009, 16:33
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