FIRM: Difference between revisions
| Line 150: | Line 150: | ||
===New3DS ARM9 kernel=== | ===New3DS ARM9 kernel=== | ||
The only actual code-difference for the Old3DS/New3DS ARM9-kernels' crt0, besides TWL AES / [[IO_Registers|0x10012000]] related code, is that the New3DS ARM9-kernel writes 0x1 to [[CONFIG_Registers|REG_EXTMEMCNT9]] in the crt0. | The only actual code-difference for the Old3DS/New3DS ARM9-kernels' crt0, besides TWL AES / [[IO_Registers|0x10012000]] related code, is that the New3DS ARM9-kernel writes 0x1 to [[CONFIG_Registers|REG_EXTMEMCNT9]] in the crt0. | ||
===New3DS Process9=== | |||
The following is all of the differences for Old3DS/New3DS Process9 with [[9.3.0-21|9.3.0-X]]: | |||
* The FIRM-launch code called at the end of the New3DS proc9 main() has different mem-range checks. | |||
* In the New3DS proc9, the v6.0/v7.0 keyinit function at the very beginning(before the original code) had additional code added for setting [[Flash_Filesystem|CTRNAND]] [[AES_Registers|keyslot]] 0x5, with keydata from .(ro)data. | |||
* In New3DS proc9, the functions for getting the gamecard crypto keyslots / NCCH keyslot can return New3DS keyslots when New3DS flags(NCSD/NCCH) are set. | |||
* The code/data for the binary near the end of arm9mem is slightly different, because of memory-region sizes. | |||
* The only difference in .(ro)data(besides the above code binary) is that the New3DS proc9 has an additional 0x10-byte block for the keyslot 0x5 keyY, see above. | |||
== NATIVE_FIRM and SAFE_MODE_FIRM == | == NATIVE_FIRM and SAFE_MODE_FIRM == | ||