Line 89: |
Line 89: |
| ====Secure Monitor==== | | ====Secure Monitor==== |
| The [[Memory_layout|Memory layout]] was changed significantly: | | The [[Memory_layout|Memory layout]] was changed significantly: |
− | * .text, .rodata, and .data are now separate sections, instead of being mapped RWX. | + | * .text, .rodata, and .data are now separate sections, mapped with correct permissions (RX, RO, RW, respectively), instead of being mapped RWX. |
− | * Physical layout in TZRAM changed significantly, with pk2ldr being in low TZRAM instead of high TZRAM. | + | * Physical layout in TZRAM changed significantly, with pk2ldr being in low TZRAM instead of high TZRAM, etc. |
| | | |
| In addition, there were changes to the [[SMC]] interface: | | In addition, there were changes to the [[SMC]] interface: |
Line 99: |
Line 99: |
| ** All keys which were previously imported with specific keys now first call smcEncryptRsaPrivateKeyForImport with the appopriate enum member to get a sealed copy of the RSA key, then smcDecryptOrImportRsaPrivateKey to import/unseal the key when needed. | | ** All keys which were previously imported with specific keys now first call smcEncryptRsaPrivateKeyForImport with the appopriate enum member to get a sealed copy of the RSA key, then smcDecryptOrImportRsaPrivateKey to import/unseal the key when needed. |
| * smcGetConfig was extended with two new config items: | | * smcGetConfig was extended with two new config items: |
− | * -GetConfig(16) now does the following, which seems to check whether the Switch is running on a Tegra 210: | + | ** GetConfig(16), which seems to check whether the Switch is running on a Tegra 210: |
| return (FUSE_RESERVED_ODM4 & 0x800) && FUSE_RESERVED_ODM0 == 0x8E61ECAE && FUSE_RESERVED_ODM1 == 0xF2BA3BB2 ? (FUSE_RESERVED_ODM2 & 0x1F) : 0 | | return (FUSE_RESERVED_ODM4 & 0x800) && FUSE_RESERVED_ODM0 == 0x8E61ECAE && FUSE_RESERVED_ODM1 == 0xF2BA3BB2 ? (FUSE_RESERVED_ODM2 & 0x1F) : 0 |
− | * Getconfig(17) now checks whether package2 is plaintext or encrypted. | + | ** Getconfig(17), which returns the Package2 meta fields (first 4 words) if package2 is plaintext. |
| | | |
| <fill in the rest later> | | <fill in the rest later> |