手机在于折腾,这下玩火自焚了...

前言
这是一个基于Marvell PXA300的WM6系统的手机。我前不久想把它当成“开发板”来折腾一下,写几个ARM的裸机程序来玩玩。

于是我对其进行大量逆向工程,现在我已经知道大部分GPIO连接方式和主板上的JTAG引脚。

我大胆地用JTAG把里面的Flash(型号:H8BCS0SI0MBR,256MB)给清空了,全部block,当然包括bootloader部分。

然后自然就无法开机了。我就可以自己写程序来用这个“开发板”了

 

现在想还原
我现在想把Bootloader还原,重新变成手机,发现问题来了,我虽然有这个手机原厂的ROM,文件名:SMART.UPR。

这个文件里面包括了Bootloader + OS Image + Modem CLA(NXP5209)。
我原来以为只要把这里面的bootloader部分重新写入Flash的0地址就可以解决问题。但是结果失败了!!!伤心啊~~~

后悔当初太冲动,应该先把Flash里面的内容备份出来再清空啊!!!

 

以下是分析过程

首先原厂ROM的结构:header + bootloader + NK + Modem,这个是确定无误的。

header 大小为0x400(1024B),就是对这个文件的一些描述,估计只有厂家才知道这些数据的格式。

bootloader,这部分结构为 IPL1 + NTIM + OBM + EBOOT + IPL2 + LOGO

IPL1和IPL2我不敢肯定哪个是真正的IPL,我感觉应该是 IPL2,原因是:

WM的启动过程是BootROM -> NTIM -> OBM -> EBOOT -> IPL -> OS

一般说来是按照顺序储存在NandFlash里面的。而这个IPL1的位置却放在最前面,我有点搞不懂它的作用。

通过反汇编(要是有源码看就不用反汇编了)可以看出来IPL1和IPL2有很多相同的代码。

IPL1为64KB,IPL2为128KB,其中IPL2添加了大量关于NXP5209的处理代码,所以我觉得IPL2应该才是正常启动用的IPL。 

 

在IPL1这64KB中,有个明显的字符串:“Microsoft Windows CE IPL for Intel PXA 310 Zylonite”,这不科学呀!它应该在EBOOT的后面才对。

在Flash里面的储存结构理论上应该是下面这样:

 

NandFlash储存结构
block5 LOGO 128KB
block4 IPL 128KB
block3 EBOOT 128KB
block2 EBOOT 128KB
block1 OBM 128KB
block0 NTIM 128KB







 

 

 

PXA300的BootROM手册里面有关于NTIM的描述,所以我从SMART.ROM文件里的NTIM部分可以肯定NTIM,OBM,EBOOT的储存位置肯定是在Flash中从block0连续存放的。
我最先做的就是把NTIM+OBM+EBOOT一共512KB连续地放在Flash的第block0,1,2,3里面。
我原本以为这样就正确了,当我连接电源的时候,充电灯亮了,屏幕也亮了,但是按开机却一直黑屏。
我又试了以前常规的刷机方法,按Vol+Power,嗯,能进入USB Update Mode,一切看上去很正常,用刷机软件刷入smart.upr,重启还是黑屏,依旧不能开机。


我连接JTAG,读出Flash的内容,发现刚才根本就没有把SMART.UPR写到Flash里面。

好吧,可能是IPL没有写好的原因吧。但是不知道IPL应该写在哪个block里面呀。。。

假装是block4吧,我又把IPL写到Flash的block4里面,再重复刚才的工作,还是不行。

这下我无语了。。。

 

按理说能充电,屏幕能亮,EBOOT应该是已经启动了。所以NTIM+OBM+EBOOT的位置肯定是对了,不用再改。

那么问题就是IPL的问题,但是不知道IPL应该写在哪个地址?

还有LOGO是一个BIN格式和NK.BIN类似,它们又应该放在Flash里面的哪个Block呢???

我试过IPL放在block4,LOGO放在Block5,Block6,都不行。。。。。。

 

这下我有种玩火自焚的感觉了......

买不起开发板,只有折腾手机,苦逼的学生党伤不起呀伤不起...还是个搞嵌入式的学生党,怎么能连个手机都搞不定?

                                           

                                                                                                                                          记于2013年1月13日 晚

posted @ 2013-01-13 21:38  星沉地动  阅读(182)  评论(0编辑  收藏  举报