MT8105 firmware structure ========================= RTOS: ATI - Nucleus PLUS - ARM 6/7/9 ADS v. 1.13.22 Pure ARM/THUMB 0x00000000 - 0x00000020: ARM Code startup, irq etc. 0x00000020 : DWORD -> ARM Boot size; offset to first MTK LZH compressed ARM Block 0x00000024 : DWORD -> pInfoRec: Pointer to data structure DWORD: offset of unknown struct list begining DWORD: size of struct list DWORD: uncompressed size of BOOT + Uncompressed ARM Codes DWORD: ??? DWORD: offset of ArmCodesStructList[0..3] 0x00000028 : 0x81058105 -> chipset id .... 0x00000038 : pointer to end of arm codes and the start of some offsets and lengths? probably data part? ... 0x00000040 : pointer to another uncompressed ARM code? (flasher?) 0x00000048 : size of another uncompressed ARM code? (flasher?) ... ARM Boot + ?? ... Compressed ARM Codes: mostly the same compression as MT1389 but eg with CyberHome it is different :-( ... Some offsets and lengths? ... Data Part Items: usually MLOGO (mpegs), DSPCODE, OSDCODE (compressed OSD block), VFDCODE ... [ Final ARM Code (flasher?) if 0x40 pointer not 0x00] ... 32bit checksum: calculated by XOR all DWORDS --- New Age 2006.jan.18