2011年12月8日 星期四

[實驗報告]HD-A5 實驗失敗 必須跟大家說再見了




[兇案現場]

今天中午,在這裡
http://www.mvixusa.com/support/index.php?_m=downloads&_a=view
下載了
Mvix Ultio 2.11 Firmware (NOT ULTIO PRO) (檔案大小 23.6M)
這個韌體。

它除了 install.img 還附帶一個 bmp 檔案:





一開始只在 usb 中放 install.img , 安裝過程會顯示 bmp 錯誤,於是我把 logo_pal.bmp co 進去,再安裝一次。

這樣就可以順利安裝,安裝完畢,也可以自動重新啟動。

但是...沒有啟動畫面,只見機板上的紅色 LED 亮著,其他一切靜悄悄,沒有絲毫動靜。真的變成磚塊了!


真的變成賽德克磚塊---真正的磚塊了嗎?


趕緊架起TTL介面,開機,有訊息:

?hello world!
552820 8wa0it waiA
* Exception : TLB (load or instruction fetch) *
BadVAddr = 0x08c89008 Cause = 0x08800008
Compare = 0x00000000 Config = 0x80a40483
Config1 = 0xbea3519e Config2 = 0x80000000
Config3 = 0x00000020 Context = 0xb7846440
Count = 0x1eb4a571 DEPC = 0x7ba7ff0a
Debug = 0x0201e000 EBase = 0x80000000
EPC = 0x800da6ec EntryHi = 0x08c88000
EntryLo0 = 0x01fc03c0 EntryLo1 = 0x03df1b00
ErrorEPC = 0x02090bc4 HWREna = 0x00000000
Index = 0x00000008 IntCtl = 0x00000000
PRId = 0x00019378 PageMask = 0x07fe0000
Random = 0x00000002 SRSCtl = 0x04000000
SRSMap = 0x00000000 Status = 0x00004c02
Wired = 0x00000000 Hi = 0x00000000
Lo = 0x04002984

$ 0(zr):0x00000000 $ 8(t0):0x157534d9 $16(s0):0xa0008454 $24(t8):0x80029860
$ 1(at):0x00000000 $ 9(t1):0x6177f255 $17(s1):0x80030000 $25(t9):0x00000000
$ 2(v0):0xa0008454 $10(t2):0x00000012 $18(s2):0x00000800 $26(k0):0x00000000
$ 3(v1):0x00000000 $11(t3):0x157534d9 $19(s3):0x00020000 $27(k1):0x80035dd0
$ 4(a0):0xa0008454 $12(t4):0x555fc551 $20(s4):0x00000040 $28(gp):0xa5371bc0
$ 5(a1):0x08c89008 $13(t5):0xc1551735 $21(s5):0x0003b2a0 $29(sp):0x80077078
$ 6(a2):0x048dc012 $14(t6):0x5964d754 $22(s6):0xffffffff $30(s8):0xa00fb800
$ 7(a3):0x0d565008 $15(t7):0x5cd7d314 $23(s7):0x00000280 $31(ra):0x800d72a8

按著ESC,再冷開機 HD-A5 ,結果還是幾乎一樣的訊息(只有第二行有不規律的變動),並沒有進入 monitor mode :

?hello world!
52850 28w0 awaiitA
* Exception : TLB (load or instruction fetch) *
BadVAddr = 0x08c89008 Cause = 0x08800808
Compare = 0x00000000 Config = 0x80a40483
Config1 = 0xbea3519e Config2 = 0x80000000
Config3 = 0x00000020 Context = 0xf6846440
Count = 0x96b3bf7f DEPC = 0x7ae4fe0a
Debug = 0x0201e000 EBase = 0x80000000
EPC = 0x800da6ec EntryHi = 0x08c88000
EntryLo0 = 0x03e403c9 EntryLo1 = 0x03f49a01
ErrorEPC = 0x82000bc0 HWREna = 0x00000000
Index = 0x00000008 IntCtl = 0x00000000
PRId = 0x00019378 PageMask = 0x07fe0000
Random = 0x00000002 SRSCtl = 0x04000000
SRSMap = 0x00000000 Status = 0x00004c02
Wired = 0x00000000 Hi = 0x00000000
Lo = 0x04002984

$ 0(zr):0x00000000 $ 8(t0):0x15555555 $16(s0):0xa0008454 $24(t8):0x80029860
$ 1(at):0x00000000 $ 9(t1):0x5555d455 $17(s1):0x80030000 $25(t9):0x00000000
$ 2(v0):0xa0008454 $10(t2):0x00000012 $18(s2):0x00000800 $26(k0):0x00000000
$ 3(v1):0x00000000 $11(t3):0x15555555 $19(s3):0x00020000 $27(k1):0x80035dd0
$ 4(a0):0xa0008454 $12(t4):0x55555555 $20(s4):0x00000040 $28(gp):0x6e749bc0
$ 5(a1):0x08c89008 $13(t5):0x55551555 $21(s5):0x0003b2a0 $29(sp):0x80077078
$ 6(a2):0x048dc012 $14(t6):0x5d555554 $22(s6):0xffffffff $30(s8):0xa00fb800
$ 7(a3):0x0d565008 $15(t7):0x55555555 $23(s7):0x00000280 $31(ra):0x800d72a8

進不了 monitor mode 想復原 bootcode ,恐怕不容易。

真的變成磚塊了,一個只剩一絲氣息跟大家說 ?hello world! 的磚塊了。


[兇案緣由]推測:

該韌體附帶的這張圖


應該就是該韌體燒錄完之後的開機新畫面。
也就是說這個韌體會同時更新BootCode。
這種連BootCode都更新的韌體應該很不適宜進行跨機燒錄。

這也算是一種學習:

1.
以後看到「免費送一張圖」的,請警覺。

2.
隱約記得有人說過他在更新完韌體之後,連開機畫面都變了。
如果平平是install.img,我們要如何知道它是否連BootCode都一起更新呢?




2011-12-19 補充

後續貼文已有起死回生的解決辦法。




.

沒有留言:

張貼留言