It is a combination of JEP106 being poorly designed and Arm deciding to do their own variant.The 'Bank N' used there start from 1, so an index of 9 will find the bank Raspberry Pi is included in.
The JEP106 identity code isn't a fixed length. Each bank contains 126 IDs and the banks are enumerated sequentially. If the ID is not in that bank then there is a "continuation code" i.e. 0x7F. The continuation codes are stacked up until the desired bank is reached. Raspberry Pi's ID would be 0x7F 0x7F 0x7F 0x7F 0x7F 0x7F 0x7F 0x7F 0x7F 0x13.
Arm wanted a fixed length ID. Their system instead uses a 4-bit field to count the number of continuation codes. Raspberry Pi's ID in this system is what we see in CHIP_ID. The 4-bit field means it only supports the first 15 banks.
Statistics: Posted by trejan — Mon Sep 16, 2024 8:02 pm