Difference between revisions of "PMB8878"

From The iPhone Wiki
Jump to: navigation, search
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