0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

HB-1000調査編

Last updated at Posted at 2025-02-28

NTT西日本が販売していた光LINK HB-1000がHardOffで110円だったので、買ってきてばらしてみました。サービスが終了していてネットで調べると11円で買った人もいました。

Telechipsという韓国の会社のTCC8930というARM SOCが使われていました。

image.png

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は定義はありますが、ひょっとすると入ってないのかもしれません。

TCC-USB(1).png

OTGはDWC 2.0ではなく3.0で、このポートがUSB 3のXHCIになるのかもしれません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?