Philips MCI730/12 OpenSource Wiki
Brought to you by:
samm2
My blog posts about this hardware: http://smallhacks.wordpress.com/tag/mci730/.
GPL sources from Philips: https://sourceforge.net/projects/mci73012src/files/GPL_SRC/
Mplayer 1.1 binary package: https://sourceforge.net/projects/mci73012src/files/mci_soft/
| Name | Description |
|---|---|
| System board | VT8610 SoC |
| CPU | ARM926EJ-Sid(wb) rev 5 (v5l), CPU architecture: 5TEJ, VIA-VT8610 hardware, probably running on 150Mhz (see cat /proc/cpufreq and /proc/sys/cpu/0/speed*) |
| LCD | VT8430(?) 320x240, with framebuffer driver, could be used as /dev/fb0 |
| FM Radio | Si4705-B20-GM/GU product page and Si47xx Programming Guide, managed with I2C, RDS on /dev/input/event2 |
| Sound | WM8978 chip. Playback is implemented via OSS interface (/dev/dsp). Volume control and sound routing is implemented with direct I2C commands. |
| Remote control | handled by event0 and kbd, possible to read with cat /dev/input/event0 |
| CDROM | Something on I2C bus. Probably only managed by firmware, sound directly routed to the amplifier. It is not seen as standard Linux cd. |
| Power button | /dev/input0 "Soft" power switch, controlled by firmware |
| Power led | Probably /sys/devices/system/leds/leds0/event, no luck with turning it on or off, may be gpio controlled |
| GPIO ports | A lot of GPIO exported by kernel to /proc/vt8500/registers/. No documentation found, but firmware using at least some of them to control device. Last byte on GPIO_005C - LCD brightness control, GPIO_0044 - sound related. |
| USB ports | 2 USB 2.0 ports available, one is connected to the internal WIFI card and another one is available on front. |
| WIFI Card | Internally connected USB VT6656 card with non GPL driver loaded as module vntwusb.ko + modified wpa_supplicant. On my tests it works very unstable. Link to driver and build instruction |
| Memory | 128Mb with 112Mb available to the kernel. No idea where are other 16Mb. |
| Ethernet | 100Mb Ethernet VT6105/VT6106S connected to PCI (1106:3104) |
| i2c bus | exported /dev/i2c/0, opened by firmware |
| Flash memory | available as /dev/mtd*, seems to be 24Mb total size. Flash chip connected on SPI bus. |
| Serial ports | Kernel cmdline contains console=ttyS0,115200n8, no /dev/ nodes found |
| Touch screen | VT8500-TS, handled by mouse0 and event3 |
| Name | Description |
|---|---|
| Kernel | Linux (none) 2.6.10_dev-VT8610 #295 Wed Oct 13 11:48:35 CST 2010 armv5tejl unknown, boot args are "mem=112M root=/dev/mtdblock0 noinitrd ro rootfstype=cramfs console=ttyS0,115200n8 lpj=750000 lcdid=0 lcdbpp=24 lcdon=1 quiet" |
| User Interface | mgfxclient - something closed source by MediaBolic |
| WIFI driver | non GPL by via, mounted to /tmp/wifi, buggy |
| OS | based on MontaVista(R) Linux(R) Professional Edition 4.0 (0501140), also motd contains "Welcome to VIA(R) Linux(R) Environment" |
| Compiler | arm_v5t_le-gcc (GCC) 3.4.3 (MontaVista 3.4.3-25.0.30.0501131 2005-07-23) |
# cat /proc/mtd
dev: size erasesize name
mtd0: 00c50000 00010000 "filesystem"
mtd1: 00280000 00010000 "mini_filesystem"
mtd2: 00180000 00010000 "mini_kernel"
mtd3: 00400000 00010000 "font_lib"
mtd4: 00050000 00010000 "sysconf"
mtd5: 00170000 00010000 "kernel"
mtd6: 00180000 00010000 "wifi"
mtd7: 00010000 00010000 "ECD_key"
mtd8: 00030000 00010000 "uboot"
mtd9: 00010000 00010000 "uboot var1"
mtd10: 00010000 00010000 "uboot var2"
mtd11: 00010000 00010000 "vload"
| Dev | Size | FS Type | Description |
|---|---|---|---|
| mtd0 | 12910592 bytes, 12.3 MiB | cramfs | rootfs, including vendor software |
| mtd1 | 2621440 bytes, 2.5 MiB | cramfs | mini fs, used by updater |
| mtd2 | 1572864 bytes, 1.5 MiB | u-boot uImage | mini kernel, used by updater, kernel image |
| mtd3 | 4194304 bytes, 4.0 MiB | cramfs | TTF font (mb.ttf) used by vendor software |
| mtd4 | 327680 bytes, 320.0 KiB | jffs2 | filesystem with local settings, mounted to /usr/local/etc |
| mtd5 | 1507328 bytes, 1.4 MiB | u-boot uImage | primary kernel image |
| mtd6 | 1572864 bytes, 1.5 MiB | cramfs | WIFI module + tools |
| mtd7 | 65536 bytes, 64.0 KiB | cramfs | Contain device key, used by vendor software. Format is not yet known, but some fields are self explained: mac_address,unknown_based_on_mac,unknown_decimal,model_name, unknown_hex, unknown_hex, registration_number |
| mtd8 | 196608 bytes, 192.0 KiB | binary | U-BOOT loader |
| mtd9 | 65536 bytes, 64.0 KiB | binary | U-BOOT variables |
| mtd10 | 65536 bytes, 64.0 KiB | binary | U-BOOT variables |
| mtd11 | 65536 bytes, 64.0 KiB | binary | vload, loader (?), contains text "VLOAD VER117 CPU300 DDR2 433 16BIT DIV2 DIS2" |
# ./fw_printenv
baudrate=115200
loadaddr=0x02000000
show_info=1
rootfs_size=c44000
bootfile=uzImage_16M.bin
filesize=c34000
fileaddr=0
gpio4_set_in=mw 0xd811003c 0
miniboot=bootm fea80000
normalboot=bootm ffca0000
up_flag_de_sw=if itest.b *0xd8130038 != 0;then run miniboot;fi
up_flag_de_hw=if bittest 0xd811007c 4;then ;else run miniboot;fi
bootdelay=1
bl_on=mw.l d8110040 01000000 1 ; mw.l d8110020 01000000 1
bl_normal=mw.l d811005c 00000042 1 ; mw.l d811003c 000000c3 1
bl_dim=mw.l d811005c 00000082 1 ; mw.l d811003c 000000c3 1
bl_off=mw.l d8110040 00000000 1 ; mw.l d8110020 00000000 1
bl_up=run bl_dim;run bl_on;mw.l 0xd8130030 1 1
coldboot_test=if itest.b *0xd8130030 != 0;then ;else run bl_up;fi
gatewayip=10.1.1.254
netmask=255.255.255.0
bootargs=mem=112M root=/dev/mtdblock0 noinitrd ro rootfstype=cramfs console=ttyS0,115200n8 lpj=750000 lcdid=0 lcdbpp=24 lcdon=1 quiet
stdin=serial
stdout=serial
stderr=serial
ver=U-Boot 1.1.4_Magellan (Feb 26 2010 - 18:21:02)
ipaddr=10.1.1.101
serverip=10.1.1.1
ethaddr=<STRIP>
fwupg_test=if test -n $customerkey ; then if test.s $customerkey = 1; then mw.b d8130038 1;run miniboot; fi; fi
bootcmd=run coldboot_test;run fwupg_test;run up_flag_de_hw;run up_flag_de_sw;run normalboot
customerkey=0
# ./i2cdetect -y 0
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- 11 -- -- -- -- -- -- 18 -- 1a -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
0x1A - WM8978 (Sound card)
0x11 - Si4705-B20-GM/GU FM Radio.
0x18 - CD, managed by firmware
/dev/input/event0 - Philips Remote Controller and keys
/dev/input/event1 - Headphones detector
/dev/input/event2 - FM-RDS update interrupt. RDS is fetched with i2c commands
/dev/input/event3 - LCD Touch-pad
# ./lspci -v -i ./pci.ids.gz
00:01.0 IDE interface: VIA Technologies, Inc. Device 1359 (prog-if 8f [Master SecP SecO PriP PriO])
Subsystem: VIA Technologies, Inc. Device 1358
Flags: bus master, medium devsel, latency 32, IRQ 3
I/O ports at d8008100 [size=8]
I/O ports at d8008144 [size=4]
I/O ports at d8008180 [size=16]
00:02.0 Ethernet controller: VIA Technologies, Inc. VT6105/VT6106S [Rhine-III] (rev 84)
Subsystem: VIA Technologies, Inc. Device 0106
Flags: bus master, medium devsel, latency 64, IRQ 10
I/O ports at d8004000 [size=256]
Memory at d8004000 (32-bit, non-prefetchable) [size=256]
Kernel driver in use: rhinefet
00:04.0 USB controller: VIA Technologies, Inc. USB 2.0 (rev 90) (prog-if 20 [EHCI])
Subsystem: VIA Technologies, Inc. USB 2.0
Flags: bus master, medium devsel, latency 22, IRQ 43
Memory at d8007900 (32-bit, non-prefetchable) [size=256]
Kernel driver in use: ehci_hcd
00:05.0 USB controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 90) (prog-if 00 [UHCI])
Subsystem: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller
Flags: medium devsel, IRQ 43
I/O ports at d8007b00 [disabled] [size=32]