Changes

Jump to navigation Jump to search
378 bytes added ,  19:17, 12 February 2019
no edit summary
Line 623: Line 623:  
| 0x04
 
| 0x04
 
|-
 
|-
| [[#TSEC_SCP_RES|TSEC_SCP_RES]]
+
| [[#TSEC_SCP_ACL_ERR|TSEC_SCP_ACL_ERR]]
 
| 0x54501490
 
| 0x54501490
 
| 0x04
 
| 0x04
Line 631: Line 631:  
| 0x04
 
| 0x04
 
|-
 
|-
| [[#TSEC_SCP_ERR|TSEC_SCP_ERR]]
+
| [[#TSEC_SCP_INSN_ERR|TSEC_SCP_INSN_ERR]]
 
| 0x54501498
 
| 0x54501498
 
| 0x04
 
| 0x04
 
|-
 
|-
| TSEC_TRNG_CLKDIV
+
| TSEC_TRNG_CLK_LIMIT_LOW
 
| 0x54501500
 
| 0x54501500
 
| 0x04
 
| 0x04
 
|-
 
|-
| TSEC_TRNG_UNK_04
+
| TSEC_TRNG_CLK_LIMIT_HIGH
 
| 0x54501504
 
| 0x54501504
 
| 0x04
 
| 0x04
Line 665: Line 665:  
| TSEC_TRNG_TEST_SEED1
 
| TSEC_TRNG_TEST_SEED1
 
| 0x5450151C
 
| 0x5450151C
 +
| 0x04
 +
|-
 +
| TSEC_TRNG_UNK_20
 +
| 0x54501520
 +
| 0x04
 +
|-
 +
| TSEC_TRNG_UNK_24
 +
| 0x54501524
 
| 0x04
 
| 0x04
 
|-
 
|-
Line 671: Line 679:  
| 0x04
 
| 0x04
 
|-
 
|-
| TSEC_TRNG_UNK_2C
+
| TSEC_TRNG_CTL
 
| 0x5450152C
 
| 0x5450152C
 
| 0x04
 
| 0x04
Line 719: Line 727:  
| 0x04
 
| 0x04
 
|-
 
|-
| [[#TSEC_DMA_VAL|TSEC_DMA_VAL]]
+
| [[#TSEC_DMA_DATA|TSEC_DMA_DATA]]
 
| 0x54501708
 
| 0x54501708
 
| 0x04
 
| 0x04
 
|-
 
|-
| [[#TSEC_DMA_CFG|TSEC_DMA_CFG]]
+
| [[#TSEC_DMA_TIMEOUT|TSEC_DMA_TIMEOUT]]
 
| 0x5450170C
 
| 0x5450170C
 
| 0x04
 
| 0x04
Line 1,882: Line 1,890:  
|-
 
|-
 
| 0
 
| 0
| Disable reads for the TRNG register block
+
| Disable reads for the SCP and TRNG register blocks
 
|-
 
|-
 
| 1
 
| 1
Line 1,894: Line 1,902:  
|-
 
|-
 
| 4
 
| 4
| Disable writes for the TRNG register block
+
| Disable writes for the SCP and TRNG register blocks
 
|-
 
|-
 
| 5
 
| 5
Line 1,906: Line 1,914:  
|}
 
|}
   −
Locks accesses to the other sub-engines and can only be cleared in Heavy Secure mode.
+
Locks accesses to sub-engines and can only be cleared in Heavy Secure mode.
    
=== TSEC_SCP_CTL_PKEY ===
 
=== TSEC_SCP_CTL_PKEY ===
Line 2,011: Line 2,019:  
|-
 
|-
 
| 28
 
| 28
| Unknown
+
| Set if the instruction is valid
 
|-
 
|-
 
| 31
 
| 31
| Set if running in secure mode (cauth)
+
| Set if running in HS mode
 
|}
 
|}
   Line 2,060: Line 2,068:  
|-
 
|-
 
| 8
 
| 8
| TSEC_SCP_IRQSTAT_HALT
+
| TSEC_SCP_IRQSTAT_ACL_ERROR
 
|-
 
|-
 
| 12
 
| 12
Line 2,089: Line 2,097:  
|-
 
|-
 
| 8
 
| 8
| TSEC_SCP_IRQMASK_HALT
+
| TSEC_SCP_IRQMASK_ACL_ERROR
 
|-
 
|-
 
| 12
 
| 12
Line 2,109: Line 2,117:  
Used for getting the value of the mask for crypto IRQs.
 
Used for getting the value of the mask for crypto IRQs.
   −
=== TSEC_SCP_RES ===
+
=== TSEC_SCP_ACL_ERR ===
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
!  Bits
 
!  Bits
 
!  Description
 
!  Description
 +
|-
 +
| 0
 +
| Set when writing to a crypto register without the correct ACL
 +
|-
 +
| 4
 +
| Set when reading from a crypto register without the correct ACL
 +
|-
 +
| 8
 +
| Set on an invalid ACL change (cchmod)
 
|-
 
|-
 
| 31
 
| 31
| SCP is halted
+
| An ACL error occurred
 
|}
 
|}
   −
Contains information on the status generated by the [[#TSEC_SCP_IRQSTAT|TSEC_SCP_IRQSTAT_HALT]] IRQ.
+
Contains information on the status generated by the [[#TSEC_SCP_IRQSTAT|TSEC_SCP_IRQSTAT_ACL_ERROR]] IRQ.
   −
=== TSEC_SCP_ERR ===
+
=== TSEC_SCP_INSN_ERR ===
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
!  Bits
 
!  Bits
Line 2,138: Line 2,155:  
|-
 
|-
 
| 16
 
| 16
| Invalid cauth signature (during csigenc, csigclr or csigauth)
+
| Insecure signature (csigenc, csigclr or csigauth)
 
|-
 
|-
 
| 20
 
| 20
| Wrong access level (during csigauth in HS mode)
+
| Invalid signature (csigauth in HS mode)
 
|-
 
|-
 
| 24
 
| 24
| Forbidden instruction (during cchmod in NS mode)
+
| Forbidden ACL change (cchmod in NS mode)
 
|}
 
|}
   Line 2,216: Line 2,233:  
|-
 
|-
 
| 4-7
 
| 4-7
| TSEC_DMA_CMD_UNK
+
| TSEC_DMA_CMD_BYTE_MASK
 
|-
 
|-
| 12
+
| 12-13
| TSEC_DMA_CMD_BUSY
+
| TSEC_DMA_CMD_STATUS
|-
+
0: Idle
| 13
+
1: Busy
| TSEC_DMA_CMD_ERROR
+
2: Error
 +
3: Disabled
 
|-
 
|-
 
| 31
 
| 31
Line 2,230: Line 2,248:  
A DMA read/write operation requires bits TSEC_DMA_CMD_INIT and TSEC_DMA_CMD_READ/TSEC_DMA_CMD_WRITE to be set in TSEC_DMA_CMD.
 
A DMA read/write operation requires bits TSEC_DMA_CMD_INIT and TSEC_DMA_CMD_READ/TSEC_DMA_CMD_WRITE to be set in TSEC_DMA_CMD.
   −
During the transfer, the TSEC_DMA_CMD_BUSY bit is set.
+
During the transfer, TSEC_DMA_CMD_STATUS is set to "Busy".
   −
Accessing an invalid address causes bit TSEC_DMA_CMD_ERROR to be set.
+
Accessing an invalid address sets TSEC_DMA_CMD_STATUS to "Error".
    
=== TSEC_DMA_ADDR ===
 
=== TSEC_DMA_ADDR ===
 
Takes the address for DMA transfers between TSEC and HOST1X (master and clients).
 
Takes the address for DMA transfers between TSEC and HOST1X (master and clients).
   −
=== TSEC_DMA_VAL ===
+
=== TSEC_DMA_DATA ===
Takes the value for DMA transfers between TSEC and HOST1X (master and clients).
+
Takes the data for DMA transfers between TSEC and HOST1X (master and clients).
   −
=== TSEC_DMA_CFG ===
+
=== TSEC_DMA_TIMEOUT ===
 
Always 0xFFF.
 
Always 0xFFF.
   Line 2,363: Line 2,381:     
Executing this instruction only succeeds if the TRNG is enabled for the SCP, which requires taking the following steps:
 
Executing this instruction only succeeds if the TRNG is enabled for the SCP, which requires taking the following steps:
* Write 0x7FFF to TSEC_TRNG_CLKDIV.
+
* Write 0x7FFF to TSEC_TRNG_CLK_LIMIT_LOW.
* Write 0x3FF0000 to TSEC_TRNG_UNK_00.
+
* Write 0x3FF0000 to TSEC_TRNG_CLK_LIMIT_HIGH.
* Write 0xFF00 to TSEC_TRNG_UNK_2C.
+
* Write 0xFF00 to TSEC_TRNG_CTL.
 
* Write 0x1000 to [[#TSEC_SCP_CTL1|TSEC_SCP_CTL1]].
 
* Write 0x1000 to [[#TSEC_SCP_CTL1|TSEC_SCP_CTL1]].
  

Navigation menu