Difference between revisions of "CHIP"

From The iPhone Wiki
Jump to: navigation, search
m
(Comment out BCD part; the values in this page are just the hex model numbers, not the BCD encoded CPID)
 
(14 intermediate revisions by 5 users not shown)
Line 1: Line 1:
The '''CHIP''' tag is a 16-bit unsigned integer (<code>uint16_t</code>) that denotes the type of chip the firmware is to be installed to. It is one of the few tags that is not read from the fuses, being hardcoded in the bootchain. It is used to prevent [supposedly] incompatible firmwares from being installed. A firmware is truly incompatible if it uses instructions only available on newer processors.
+
The '''CHIP''' tag is a 16-bit unsigned integer that denotes the type of chip the firmware is to be installed to. It is one of the few tags that is not read from the fuses, but is instead hardcoded in the bootchain. It is used to prevent incompatible firmwares from being installed; different processors may have their [[wikipedia:Memory-mapped I/O|MMIO]] registers in different locations.
   
 
== [[Application Processor|Processors]] ==
 
== [[Application Processor|Processors]] ==
  +
<!--The values are created by taking the four digits from the processor's model number, and encoding them in [[wikipedia:Binary-coded decimal|BCD]].-->
  +
  +
=== "Legacy" Processors ===
 
* [[S5L8900]]: 0x8900
 
* [[S5L8900]]: 0x8900
  +
* [[S5L8720]]: 0x8720
 
* [[S5L8920]]: 0x8920
 
* [[S5L8920]]: 0x8920
 
* [[S5L8922]]: 0x8922
 
* [[S5L8922]]: 0x8922
  +
  +
=== Apple "A" Series ===
 
* [[S5L8930]] (A4): 0x8930
 
* [[S5L8930]] (A4): 0x8930
 
* [[S5L8940]] (A5): 0x8940
 
* [[S5L8940]] (A5): 0x8940
Line 12: Line 18:
 
* [[S5L8950]] (A6): 0x8950
 
* [[S5L8950]] (A6): 0x8950
 
* [[S5L8955]] (A6X): 0x8955
 
* [[S5L8955]] (A6X): 0x8955
* [[S5L8960]]/[[S5L8965]] (A7): 0x8960
+
* [[S5L8960]] (A7): 0x8960
  +
* [[S5L8965]] (A7): 0x8960 (the exception to the encoding rule above)
 
* [[T7000]] (A8): 0x7000
 
* [[T7000]] (A8): 0x7000
 
* [[T7001]] (A8X): 0x7001
 
* [[T7001]] (A8X): 0x7001
* [[S7002]] (S1): 0x7002
 
 
* [[S8000]] (A9 [[wikipedia:Samsung Electronics|Samsung]]): 0x8000
 
* [[S8000]] (A9 [[wikipedia:Samsung Electronics|Samsung]]): 0x8000
 
* [[S8001]] (A9X): 0x8001
 
* [[S8001]] (A9X): 0x8001
 
* [[S8003]] (A9 [[wikipedia:TSMC|TSMC]]): 0x8003
 
* [[S8003]] (A9 [[wikipedia:TSMC|TSMC]]): 0x8003
* [[T8010]] (A10): 0x8010
+
* [[T8010]] (A10 Fusion): 0x8010
  +
* [[T8011]] (A10X Fusion): 0x8011
  +
* [[T8015]] (A11 Bionic): 0x8015
  +
* [[T8020]] (A12 Bionic): 0x8020
  +
* [[T8027]] (A12X and A12Z Bionic): 0x8027
  +
* [[T8030]] (A13 Bionic): 0x8030
  +
* [[T8101]] (A14 Bionic): 0x8101
  +
* [[T8110]] (A15 Bionic): 0x8110
  +
* [[T8120]] (A16 Bionic): 0x8120
  +
  +
=== "S" and "T" Series ===
  +
* [[S7002]] (S1): 0x7002
  +
* [[T8002]] (S1P, S2, and T1): 0x8002
  +
* [[T8004]] (S3): 0x8004
  +
* [[T8006]] (S4 and S5): 0x8006
  +
* [[T8012]] (T2): 0x8012
  +
* [[T8301]] (S6): 0x8301
  +
  +
=== "H" Series ===
  +
* [[T2002]] (H1): 0x2002
  +
* [[T2016]] (H2): 0x2016
   
 
== [[Recovery Mode]] string ==
 
== [[Recovery Mode]] string ==

Latest revision as of 14:22, 23 September 2022

The CHIP tag is a 16-bit unsigned integer that denotes the type of chip the firmware is to be installed to. It is one of the few tags that is not read from the fuses, but is instead hardcoded in the bootchain. It is used to prevent incompatible firmwares from being installed; different processors may have their MMIO registers in different locations.

Processors

"Legacy" Processors

Apple "A" Series

"S" and "T" Series

"H" Series

Recovery Mode string

If you connect a device in Recovery Mode to your computer, there is a small section in the device's USB "serial number" that contains the CPID, among other information.