Line 52: |
Line 52: |
| ** New MemoryType bit for "JIT allowed". | | ** New MemoryType bit for "JIT allowed". |
| ** New MemoryTypes for JitWritable and JitReadOnly. | | ** New MemoryTypes for JitWritable and JitReadOnly. |
− | * New synchronization syscalls 0x34, 0x35 added. | + | * New synchronization syscalls 0x34, 0x35 added: These ones allow implementation of synchronization primitives without a mutex+condvar pair. This is more efficient because when a thread wakes up from a condvar, the mutex is held and needs to perform a syscall to unlock it. If you have N threads blocking on a condvar, you need N-1 syscalls to wake all the threads. With the new syscalls, you can wake up all N with a single syscall. |
| + | |
| * Added new syscall svcDumpInfoNew, but it's stubbed. | | * Added new syscall svcDumpInfoNew, but it's stubbed. |
| * The linked-list node for KAutoObjects was added to the struct itself instead of being a separate allocation. | | * The linked-list node for KAutoObjects was added to the struct itself instead of being a separate allocation. |
| * svcGetInfo now exposes the first and last process id for built-in modules. | | * svcGetInfo now exposes the first and last process id for built-in modules. |
| ** This is used by some services to make sure we can't connect to them from outside a privileged module. | | ** This is used by some services to make sure we can't connect to them from outside a privileged module. |
− | * svcReadWriteRegister was updated. | + | * svcReadWriteRegister was updated, now always goes through TZ for both PMC and MC. Whitelist for MC remains the same. |
| + | * Support was added for loading non-KIP processes into the Secure pool via a flag in SvcCreateProcess. |
| + | ** This is used by only for es, to prevent attackers from using GPU DMA to take over the es sysmodule to pirate games. |
| + | ** Correspondingly, the KHeapArrange calculation of the secure pool size now has an extra 0x13A000 factored in (to ensure there is enough space for es). |
| | | |
| ===FIRM=== | | ===FIRM=== |
Line 63: |
Line 67: |
| | | |
| The package1 entrypoint address specified by BCT was increased by 0x20-bytes, since there's now an additional 0x20-bytes at the start of package1. The additional data is identical to the 0x20-byte block before it. | | The package1 entrypoint address specified by BCT was increased by 0x20-bytes, since there's now an additional 0x20-bytes at the start of package1. The additional data is identical to the 0x20-byte block before it. |
| + | |
| + | In SafeMode Firmware the [[Bus_services|Bus]], [[PCV_services|PCV]] and [[PSC_services|psc]] sysmodules are now bundled with the kernel. |
| | | |
| Sysmodules: | | Sysmodules: |
Line 71: |
Line 77: |
| ** spl:es was added, supporting crypto commands used by the es sysmodule. | | ** spl:es was added, supporting crypto commands used by the es sysmodule. |
| ** spl:fs was added, supporting crypto commands used by the [[Filesystem services|fs]] FIRM sysmodule. | | ** spl:fs was added, supporting crypto commands used by the [[Filesystem services|fs]] FIRM sysmodule. |
− |
| |
| | | |
| ====Package1==== | | ====Package1==== |