Pollin Box NAND layout ---------------------- NAND_PAGE_SIZE 512 NAND_NROF_PAGES 32 NAND_BLOCK_SIZE NAND_PAGE_SIZE * NAND_NROF_PAGES //0x4000 16k NAND_NROF_BLOCKS 4096 NAND_OVERALL_SIZE NAND_BLOCK_SIZE * NAND_NROF_BLOCKS //0x4000000 64mb 0x00000000 ---------- START BOOTLOADER --------------------------------------------------------------------------------------------------------------- 0x00000000 - 0x00004000 -> nboot.nb0 RAM:84010000 (automapped bei POWER ON) - bootloader mit ECC if DIP1 ON - map WinCe0.nb0 ins ram (WCE0 section) else - map WinCe1.nb0 ins ram (WCE1 section) - bei Lesefehlern werden diese per ECC korrigiert und es erscheint folgende Meldung "One or more errors detected and corrected. If you want to continue booting switch the SW1-DIP1 to ON!" - warten bis DIP1 auf ON - dann Meldung "Now set the DIP1 to OFF!" - warten bis DIP1 auf OFF - booten wird fortgesetzt endif 0x00004000 ---------- END BOOTLOADER ----------------------------------------------------------------------------------------------------------------- 0x00004000 ---------- START WCE0 SECTION ------------------------------------------------------------------------------------------------------------- 0x00004000 - 0x00004200 -> WCE0 InfoPage ---------------------------------------- - page0 als tag holder genutzt byte[4] tag_string1 "0ECW" dword size_in_bytes 0x003F7988 byte[4] tag_string2 "0ECW" dword unknown_const 0x00100000 0x00004200 - 0x003FC000 -> WinCe0.nb0 RAM:80100000 ------------------------------------- - minimales WinCE image (kann mit dumprom.exe extrahiert werden) - enthält sämtliche Treiber / Registry und so weiter aber keinerlei Appz - verantwortlich für Updates -> TGUpdater.exe wird nach booten automatisch gestartet - dieses Image ist es was wir sehen bzw am laufen haben wenn ein Softwareupdate durchgeführt wird (DIP1 ON) ACHTUNG: - dieses Image muss intakt bleiben sonst funktioniert das Softwareupdate über USB NICHT mehr - nach meinem derzeitigen Kenntnisstand enthält der bootloader KEINE Update Funktionalität - solange wir keine Möglichkeit haben das NAND über ejtag zu flashen gibt es keinen Weg zurück falls dieses Image zerstört wird -> HÄNDE WEG 0x003FC000 ----------- END WCE0 SECTION -------------------------------------------------------------------------------------------------------------- 0x003FC000 ---------- START WCE1 SECTION ------------------------------------------------------------------------------------------------------------- 0x003FC000 - 0x003FC200 -> WCE1 InfoPage ---------------------------------------- - page0 als tag holder genutzt byte[4] tag_string1 "1ECW" dword size_in_bytes 0x01918CA0 byte[4] tag_string2 "1ECW" dword unknown_const 0x00100000 0x003FC200 - 0x01D18000 -> WinCe1.nb0 RAM:80100000 ------------------------------------- - das eigentliche WinCE image (kann mit dumprom.exe extrahiert werden) - enthält sämtliche Treiber / Registry / Anwendungen und so weiter - dieses Image ist es was wir sehen bzw am laufen haben wenn die Box normal gestartet wird (DIP1 OFF) ===> HIER GEHÖRT EIN EVENTUELLES LINUX IMAGE HIN (nicht meine Baustelle) - das Softwareupdate flashed jedes file mit dem Namen WinCe1.nb0 in diese section - also auch jedes eventuelle Linux Image welches im RAM ab 0x80100000 laufen muss - es gibt keinerlei Signature checks oder ähnliches - die InfoPage und die Größe der Section wird automatisch auf die Größe des WinCe1.nb0 Updates angepasst - die phStbRootApp_256M_0_t.mi und phStbRootApp_256M_1_t.mi müssen mit geflashed werden (im Zweifelsfall dummy files mit 4 bytes null anlegen) 0x01D18000 ----------- END WCE0 SECTION -------------------------------------------------------------------------------------------------------------- 0x01D18000 ---------- START WCE2 SECTION ------------------------------------------------------------------------------------------------------------- 0x01D18000 - 0x01D18200 -> WCE2 InfoPage ---------------------------------------- - page0 als tag holder genutzt byte[4] tag_string1 "2ECW" dword size_in_bytes 0x00A3D6D4 byte[4] tag_string2 "2ECW" dword unknown_const 0x00100000 0x01D18200 - 0x02758000 -> phStbRootApp_256M_0_t.mi --------------------------------------------------- - trimedia firmware ? - wird beim start von desktop.exe geladen 0x02758000 ----------- END WCE2 SECTION -------------------------------------------------------------------------------------------------------------- 0x02758000 ---------- START WCE3 SECTION ------------------------------------------------------------------------------------------------------------- 0x02758000 - 0x02758200 -> WCE3 InfoPage ---------------------------------------- - page0 als tag holder genutzt byte[4] tag_string1 "3ECW" dword size_in_bytes 0x0020BA6C byte[4] tag_string2 "3ECW" dword unknown_const 0x00100000 0x02758200 - 0x02964000 -> phStbRootApp_256M_1_t.mi --------------------------------------------------- - trimedia firmware ? - wird beim start von desktop.exe geladen 0x02964000 ----------- END WCE3 SECTION -------------------------------------------------------------------------------------------------------------- 0x02964000 ---------- START FREE SECTION ------------------------------------------------------------------------------------------------------------- - 0x01698000 Byte frei (22,5 MB !) 0x03FFC000 ----------- END FREE SECTION -------------------------------------------------------------------------------------------------------------- 0x03FFC000 ---------- START INFO SECTION ------------------------------------------------------------------------------------------------------------- 0x03FFC000 - 0x03FFC200 -> INFO InfoPage ---------------------------------------- - page0 als tag holder genutzt byte[4] tag_string1 "OFNI" byte[4] section_string1 "1ECW" dword start_of_section1 0x003FC200 byte[4] section_string2 "2ECW" dword start_of_section2 0x01D18200 byte[4] section_string3 "3ECW" dword start_of_section3 0x02758200 - restliche pages ungenutzt 0x04000000 ----------- END INFO SECTION --------------------------------------------------------------------------------------------------------------