Показать сообщение отдельно
Старый 28.12.2008, 10:38   #37
HardWareMan
Новичок
 
Регистрация: 28.12.2008
Сообщений: 1
Поблагодарил: 0
Поблагодарили 0 раз за 0 сообщений
Репа: 0
Извините, что прерываю, но хочу поделиться своим опытом. У меня есть 2 РМР плеера: IHTOOM (только черный и IHTOOM, но плата внутри PSP-800S) и JXD-651. У знакомого был Explay Q3 но с битой прошивой. После анализа стало ясно, что все 3 плеера на одном чипе: SunPlus SPCA-536. Начали мы мучить наши плеера. Я отпаял NANDы, слил дампы и начал изучать. Ковырять 512МБ данных сложновато, но я сделал ход конем: залил на всю память 1 файл с содержанием одинаковых байт. Выделил я около 8МБ явной прошивки, нашел там фонты и пр. лабуду. После некоторого времени ковыряния, я случайно наткнулся на короткий датащит (даже не датащит а флайер) этого санплюса. Там говорилось об ISP режиме. Стали мы ковырять его и выяснили: нам нужен ISP_V5.2.2 и нога на чипе, что включает этот ISP. Это оказались локбитсы, функция которых совпадает с адресными линиями DRAM. После некоторых опытов стало ясно, что ISP работает, однако нормальный плеер он портит, а вот убитый не восстанавливает. Вот тогда то и пришла идея найти в нем консоль. Есть 2 вывода RxD и TxD. причем, чип BGA корпусе, RxD лежит с краю, а вот TxD внутри: 4 ряд 4 столбец. Необхтдим был как раз TxD, так как он должен был гадить логи в консоль. Понимая, что BGA я дома не попаяю, я взял ПЭЛ провод, изогнул его буквой "Г" и начал пихать его между ног чипа, пытаясь попасть на нужный шарик. Минут через 20 мне это удалось и плеер вывалил лог включения:
Код:
NAND boot         
NAND finish           


+----------------------------+                              
|       NAND loader II       |                              
| NAND loader II load finish |                              
+----------------------------+                              


TURNKEY PMP V2.0                
_____________________________________                                     
F/W compiled at 10:34:55, Sep 15 2006                                     
FRONT enter hwFrontInit OV9650 step1                                    
monitorH = 640, monitorV = 480                              
    FRONT enter hwfrontFramRateSet OV9650 step4                                               
    pixclk = 8000000                    
    newftotal = 1F4                   
    ftotal = 1F4                
 hwFrontFrameRateSet vaule=14                             
    videomode = 0                 
    FRONT Exit hwfrontFramRateSet OV9650                                        
Tidx = 0, PreTidx               
espline = 12C             
ftotal = 1F4            
pixclk = 8000000                
hwFrontExpTimeSet value=14D                           
ltotal=320          
ESP_LINE = 300              
FRONT exit hwFrontInit OV9650 step2                                   
Memory card detecting, please wait                                  
Maker  ID=0xAD              
Device ID=0xDC              
hour=0      
minu=0      
hour=0      
minu=0      
hwDispOsdSet            
pipW=320        
pipH=240        
befor0x00 0x00              
pbuf = 0xACB67000                 
after0x78 0x78              
host enable 0             
OTG DP sts=0            
OTG DM sts=0            
The DC offset 127                 
asf pasfGenCb->pidxBuf=0xACFBD000                                 
asf sysgMemFreeAddrGet()=0x7FE800                                 
sysgMemAppAddrGet()=0x5F3000                            
paviGenCb->pidxBuf=0xAD0BD000                             
sysgMemFreeAddrGet()=0x866800                             

Press enter to continue...                          
UITASK      

Read 32x32 font from NAND ...                             
count=0, w=0 h=0                
Read 32x32 font End                   

OSD INIT OK           
Set: rtcTick=0x4274CA5A                       

_______________________________________________
Spca536 DRAM SIZE (MBit)               128
Spca536 Firmware Version               2.0.0
_______________________________________________
5 2 0
main menu
dispW=320
dispH=240
LoadBG:11
Entry 3A Task!
$$plug off
                uiUsbPlugOut
Maker  ID=0xAD
Device ID=0xDC
ECC err, phySect=19200
NAND rsv header err(ascii)
*msg = FFFFFFFF
*msg = 00000006
3 0 0
dispW=320
dispH=240
LoadBG:11
                myplug out
Я закрепил проводок селиконом и у меня получилось вот так:

А вот что он пишет при ISP:
Код:
IspCodeSize = 0x2A7000
read bad blk cnt first
first bad blk=3
Total blks=4096
read bad blk cnt second
second bad blk=3
Bad pixel start page:0x00000000,    total page:0x00000020
UI Parameter start page: 0x0020,    total page: 0x0001
Open picture start page: 0x0021,    total page: 0x0384
Chinese Simplified start page: 0x03A5,    total page: 0x1000
Chinese Traditional start page: 0x13A5,    total page: 0x1AAE
Total  reserved page: 0x2E53
NAND header programming success...
Magic word: Sunplus nand loader II
1: FW blks=1, startBlk=47
ISP success
FW2 blks=22, startBlk=48
Nand program comp...
NAND format...
NAND internal ISP finished
И оно занимает некоторое время (до 2х минут бывало), при этом на экране ничего нет, а кнопку повер надо держать руками. Так что вот так, надеюсь кому-то поможет эта инфа + можете обращаться за советом.
HardWareMan вне форума   Ответить с цитированием Вверх