NTT西日本が販売していた光LINK HB-1000がHardOffで110円だったので、買ってきてばらしてみました。サービスが終了していてネットで調べると11円で買った人もいました。
Telechipsという韓国の会社のTCC8930というARM SOCが使われていました。
Telechipsは
TCC898x (Alligator) (ARM Cortex-A53 Quad)
TCC897x (ARM Cortex-A7 Quad)
TCC893x (ARM Cortex-A9 Dual Core)
TCC892x (ARM Cortex-A5)
TCC8900 (ARM11)
TCC8800 (?)
TCC7901 (ARM9)
を作っていたようです。HDMI出力を持ちビデオ系の処理に力をいれたSOCのようです。
TCC893XはTCC8930, TCC8933, TCC8935, TCC8937があったようです。
いろいろ調べてUARTはDBG_CNに出てる事がわかりました、
TX -> 4
RX -> 7
ボーレートは115200です。3,5,7,9,11,12はJTAGと思われます。
コネクタのホールにヒートシンクがかぶっているので、ヒートシンクを金鋸で切り取りピンヘッダーを立てました。
welcome to lk (0.5.0008)
MEM FREQ : 600MHz
hdmi_phy_reset Phy status = 0, Phy stats CMU = 1, Phy status PLL = 0
tcc_extract_chip_revision : Reg_HDMIV:0x10 Reg_HDCPV:0x0 BackupDDICFG:0xfff BackupHDMICTRL:0x100000f loop:1 phy:225
Chipset revision = 0xb
fb_cfg base:0x820705cc xres:480 yres:272 bpp:32
tcclcd_image_ch_set lcdc:0 lcdc_ch:0 pRDMA:0x72000400
platform_init()
target_init()
flash_boot_main:init start from NAND
[NAND ] V8.94.157
[NAND ] Use NDMA Mode
[NAND ] H27UBG8T2C
[TNFTL ] Die_0:.
[NAND ] Die=1, B/D=2092, P/B=256, Pg=8192 CW=1024 Pln/D=2
[NAND ] [RO] sectors
[PARTITION : boot] [START : 32] [SIZE : 30720] [TYPE : 0]
[PARTITION : system] [START : 30752] [SIZE : 1331200] [TYPE : 83]
[PARTITION : userdata] [START : 1361952] [SIZE : 6289184] [TYPE : 83]
[PARTITION : ] [START : 7651136] [SIZE : 360640] [TYPE : f]
[PARTITION : cache] [START : 7651168] [SIZE : 307200] [TYPE : 83]
[PARTITION : recovery] [START : 7958400] [SIZE : 30720] [TYPE : 0]
[PARTITION : kpanic] [START : 7989152] [SIZE : 10240] [TYPE : 0]
[PARTITION : splash] [START : 7999424] [SIZE : 8192] [TYPE : 0]
[PARTITION : misc] [START : 8007648] [SIZE : 2048] [TYPE : 0]
[PARTITION : tcc] [START : 8009728] [SIZE : 2048] [TYPE : 0]
[tcc_param] page=0, output=255, resolution=0, hdmi_resolution=0
[tcc_param] composite_resolution=0, component_resolution=0, hdmi_mode=0
lcdc_init, CFG_MISC1: 0x21800100
lcdc_io_init_component, lcdc_num=0, type=2
LCDC0 clk:742500, LCDC1 clk:960000, PLL:8500000, divide:1
fb_cfg base:0x820705cc xres:480 yres:272 bpp:32
tcclcd_image_ch_set lcdc:0 lcdc_ch:0 pRDMA:0x72000400
ths8200_enable : mode=15
ths8200_set_mode : mode=15
ths8200_soft_reset
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
i2c-tcc: time out!
Set mode i2c write error
Set standard failed
lcdc_io_init_composite, lcdc_num=1, type=0
lcdc_num = 1, LCDC0 clk:742500, LCDC1 clk:270000, divide:1
fb_cfg base:0x820705cc xres:480 yres:272 bpp:32
tcclcd_image_ch_set lcdc:1 lcdc_ch:0 pRDMA:0x72000800
Diplay initialized
kernel @ 80008000 (9428492 bytes)
ramdisk @ 81000000 (1783902 bytes)
hwnaisei[0]=0 hwnaisei[1]=0
Booting Linux
booting linux @ 0x80008000, ramdisk @ 0x81000000 (1783902)
cmdline: console=null ...
ブートローダーはLittle Kernel(lk)で、アプリケーションでLinuxを起動しているようです。Androidの標準のようです。lkはMITライセンスなので製品で利用してもソースを公開する必要はありません。
ネットを検索したら、ここまで調べた人がいました。
SDKはここにありました。
おそらく実機で使われているSDKより新しいものと思われます。
RESETボタンは直につながっているようです。
キーボードに反応しないか起動中にかちゃがちゃやったら、getcというメッセージが出てきました。これをlkのソースで検索したところ、about.cでいくつかのキーを受け付けるようになっていました。fキーを入力するとfastbootになり、USB1_CNがOTGでデバイスになります。
Diplay initialized
==========================================
getc: f
Diplay initialized
fastboot_init()
USB Reset
Connect Done: High Speed
USB Reset
Connect Done: High Speed
Stall EP0
USB2のOTGが直出しでUSB1_CNで、EHCIがHUB(CY7C65632 USB2)につながってそこからUSB2_CNでした。CSRの8510や蟹さんのWiFiチップもおそらくこれにぶら下がっているものと思われます。OTGはDWCのようです。パワーコントロールはON SemiのNCP382を使っています。
いろいろ考えて試して2日かかりました。
gmac
TCC8930のGMACはSynopsysのIPを使っているようです。またLinuxのPTP(Precision Time Protocol:IEEE 1588)にも対応できるようになっているようです。だたPTPはUSB20のクロックを使っているのでUSB20との共存はできないようです。PTP使う時はUSB3かOTG使えって事なのかもしれません。AmlogincのOdroid-C1と同じバージョンのIPのようです。RTL8211Eの48PinのパッケージなのでMACとの接続はRGMIIと思われます。
USB
CY7C65632のパワーコントロールは使わずSOCのGPIOで制御していました。OHCIは定義はありますが、ひょっとすると入ってないのかもしれません。
OTGはDWC 2.0ではなく3.0で、このポートがUSB 3のXHCIになるのかもしれません。