The iPhone Wiki is no longer updated. Visit this article on The Apple Wiki for current information. |
Difference between revisions of "PMB8878"
Line 1: | Line 1: | ||
This is the baseband processor used in the iPhone 3G. It is upgraded with [[BBUpdaterExtreme]] |
This is the baseband processor used in the iPhone 3G. It is upgraded with [[BBUpdaterExtreme]] |
||
+ | |||
+ | ==Datasheet== |
||
+ | Anyone got one. Infineon provides [this http://www.infineon.com/dgdl/X-GOLD608_XMM6080.pdf?location=Products.Mobile_Phone_Baseband_ICs.WCDMA___HSDPA.X-GOLD__608_-_PMB_8878.PRODUCT_TYPE_DOCUMENTS.X-GOLD608_XMM6080.pdf&folderId=db3a304312fcb1bc0113000c158f0004&fileId=db3a30431936bc4b011957c66fee3850], which isn't really useful. |
||
==Memory Map== |
==Memory Map== |
||
Line 13: | Line 16: | ||
STATIC_EEP 0x20FC0000 0x40000 0b0111 |
STATIC_EEP 0x20FC0000 0x40000 0b0111 |
||
RAM 0x40000000 0x800000 |
RAM 0x40000000 0x800000 |
||
− | |||
==Accessing Interactive Mode== |
==Accessing Interactive Mode== |
Revision as of 11:42, 27 July 2008
This is the baseband processor used in the iPhone 3G. It is upgraded with BBUpdaterExtreme
Datasheet
Anyone got one. Infineon provides [this http://www.infineon.com/dgdl/X-GOLD608_XMM6080.pdf?location=Products.Mobile_Phone_Baseband_ICs.WCDMA___HSDPA.X-GOLD__608_-_PMB_8878.PRODUCT_TYPE_DOCUMENTS.X-GOLD608_XMM6080.pdf&folderId=db3a304312fcb1bc0113000c158f0004&fileId=db3a30431936bc4b011957c66fee3850], which isn't really useful.
Memory Map
FLASH 0x20000000 0x1000000 CODE 0x20000000 0x40000 0b0010(bootstrapper) CODE 0x20040000 0xDC0000 0b0100(main firmware) FFS 0x20A00000 0x100000 0b1100(empty) DYNFFS 0x20A00000 0x100000 0b1100(empty) FFS 0x20B00000 0x40000 0b1011(empty) DYN_EEP 0x20E40000 0x80000 0b0110 SECPACK 0x20EC0000 0x40000 SECZONE 0x20F80000 0x40000 STATIC_EEP 0x20FC0000 0x40000 0b0111 RAM 0x40000000 0x800000
Accessing Interactive Mode
Interactive mode isn't accessed by sending characters to the baseband. Instead a GPIO pin is raised with a kernel call to preupdate reset.
result = IOConnectCallScalarMethod(conn, 0, 0, 0, 0, 0); //reset result = IOConnectCallScalarMethod(conn, 1, 0, 0, 0, 0); //power set result = IOConnectCallScalarMethod(conn, 2, 0, 0, 0, 0); //configuring mux result = IOConnectCallScalarMethod(conn, 7, 0, 0, 0, 0); //powercycle result = IOConnectCallScalarMethod(conn, 8, 0, 0, 0, 0); //preupdate reset