Changes

Jump to navigation Jump to search
70 bytes added ,  13:22, 14 March 2018
no edit summary
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>
88

edits

Navigation menu