Line 37: |
Line 37: |
| ** 0100000000000800(SSL trusted certs), 0100000000000807(Hotspot List), 010000000000081E(Dummy file), 010000000000081F(Icosa system config), 0100000000000820(Copper system config), 0100000000000821(Hoag system config) | | ** 0100000000000800(SSL trusted certs), 0100000000000807(Hotspot List), 010000000000081E(Dummy file), 010000000000081F(Icosa system config), 0100000000000820(Copper system config), 0100000000000821(Hoag system config) |
| * 010000000000081B ("exFAT FIRM") package2 is no longer "stubbed"/overwritten with garbage. | | * 010000000000081B ("exFAT FIRM") package2 is no longer "stubbed"/overwritten with garbage. |
| + | |
| + | ===FIRM=== |
| + | ====Package1==== |
| + | The encrypted binaries' order and calculation for next stage's entrypoint was changed. |
| + | |
| + | Old layout (before 2.0.0): |
| + | 1.- PK11 header |
| + | 2.- Secure Monitor blob |
| + | 3.- NX bootloader blob |
| + | 4.- Warmboot blob |
| + | |
| + | NX bootloader entrypoint is calculated as: |
| + | 0x40013FE0 + 0x20 + 0x20 + NX bootloader blob's offset + Secure Monitor blob's size |
| + | |
| + | New layout (2.0.0+): |
| + | 1.- PK11 header |
| + | 2.- Warmboot blob |
| + | 3.- NX bootloader blob |
| + | 4.- Secure Monitor blob |
| + | |
| + | NX bootloader entrypoint is calculated as: |
| + | 0x40013FE0 + 0x20 + 0x20 + NX bootloader blob's offset + Warmboot blob's size |
| + | |
| + | Some AES-ECB decryption related code was refactored. |
| | | |
| ==Kernel== | | ==Kernel== |
Line 81: |
Line 105: |
| * Kernel stacks are now allocated with a slabheap. | | * Kernel stacks are now allocated with a slabheap. |
| | | |
− | * While 1.0.0 had two pools with size 0, now it uses all three. The last one size is calculated dynamically to fit all the built-in sysmodules, and it's now protected by the kernel carveout. | + | * KHeapArrange was changed. On 1.0.0 it held address/size for three pools ("base", "application", "system") and application/system were zero-sized/unused. Now it holds "pool management", "secure", "non-secure". Pool management and secure are now protected by the kernel carveout. |
| + | ** Secure pool size is dynamically calculated as size of all kips (including stacks) + 24 MB (FS sysmodule heap) + 1 MB (spare pages for e.g. IPC buffer usage). |
| + | ** If only one KIP is present, all memory goes to secure pool and non-secure pool does not exist. |
| | | |
| {{NavboxVersions}} | | {{NavboxVersions}} |