TSEC: Difference between revisions
No edit summary |
|||
Line 623: | Line 623: | ||
| 0x04 | | 0x04 | ||
|- | |- | ||
| [[# | | [[#TSEC_SCP_ACL_ERR|TSEC_SCP_ACL_ERR]] | ||
| 0x54501490 | | 0x54501490 | ||
| 0x04 | | 0x04 | ||
Line 631: | Line 631: | ||
| 0x04 | | 0x04 | ||
|- | |- | ||
| [[# | | [[#TSEC_SCP_INSN_ERR|TSEC_SCP_INSN_ERR]] | ||
| 0x54501498 | | 0x54501498 | ||
| 0x04 | | 0x04 | ||
|- | |- | ||
| | | TSEC_TRNG_CLK_LIMIT_LOW | ||
| 0x54501500 | | 0x54501500 | ||
| 0x04 | | 0x04 | ||
|- | |- | ||
| | | 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_CTL | ||
| 0x5450152C | | 0x5450152C | ||
| 0x04 | | 0x04 | ||
Line 719: | Line 727: | ||
| 0x04 | | 0x04 | ||
|- | |- | ||
| [[# | | [[#TSEC_DMA_DATA|TSEC_DMA_DATA]] | ||
| 0x54501708 | | 0x54501708 | ||
| 0x04 | | 0x04 | ||
|- | |- | ||
| [[# | | [[#TSEC_DMA_TIMEOUT|TSEC_DMA_TIMEOUT]] | ||
| 0x5450170C | | 0x5450170C | ||
| 0x04 | | 0x04 | ||
Line 1,882: | Line 1,890: | ||
|- | |- | ||
| 0 | | 0 | ||
| Disable reads for the TRNG register | | 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 | | Disable writes for the SCP and TRNG register blocks | ||
|- | |- | ||
| 5 | | 5 | ||
Line 1,906: | Line 1,914: | ||
|} | |} | ||
Locks accesses to | 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 | ||
| | | Set if the instruction is valid | ||
|- | |- | ||
| 31 | | 31 | ||
| Set if running in | | Set if running in HS mode | ||
|} | |} | ||
Line 2,060: | Line 2,068: | ||
|- | |- | ||
| 8 | | 8 | ||
| | | TSEC_SCP_IRQSTAT_ACL_ERROR | ||
|- | |- | ||
| 12 | | 12 | ||
Line 2,089: | Line 2,097: | ||
|- | |- | ||
| 8 | | 8 | ||
| | | 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_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 | ||
| | | An ACL error occurred | ||
|} | |} | ||
Contains information on the status generated by the [[#TSEC_SCP_IRQSTAT| | Contains information on the status generated by the [[#TSEC_SCP_IRQSTAT|TSEC_SCP_IRQSTAT_ACL_ERROR]] IRQ. | ||
=== | === TSEC_SCP_INSN_ERR === | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! Bits | ! Bits | ||
Line 2,138: | Line 2,155: | ||
|- | |- | ||
| 16 | | 16 | ||
| | | Insecure signature (csigenc, csigclr or csigauth) | ||
|- | |- | ||
| 20 | | 20 | ||
| | | Invalid signature (csigauth in HS mode) | ||
|- | |- | ||
| 24 | | 24 | ||
| Forbidden | | Forbidden ACL change (cchmod in NS mode) | ||
|} | |} | ||
Line 2,216: | Line 2,233: | ||
|- | |- | ||
| 4-7 | | 4-7 | ||
| | | TSEC_DMA_CMD_BYTE_MASK | ||
|- | |- | ||
| 12 | | 12-13 | ||
| | | TSEC_DMA_CMD_STATUS | ||
0: Idle | |||
1: Busy | |||
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, | During the transfer, TSEC_DMA_CMD_STATUS is set to "Busy". | ||
Accessing an invalid address | 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_DATA === | ||
Takes the | Takes the data for DMA transfers between TSEC and HOST1X (master and clients). | ||
=== | === 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 | * Write 0x7FFF to TSEC_TRNG_CLK_LIMIT_LOW. | ||
* Write 0x3FF0000 to | * Write 0x3FF0000 to TSEC_TRNG_CLK_LIMIT_HIGH. | ||
* Write 0xFF00 to | * Write 0xFF00 to TSEC_TRNG_CTL. | ||
* Write 0x1000 to [[#TSEC_SCP_CTL1|TSEC_SCP_CTL1]]. | * Write 0x1000 to [[#TSEC_SCP_CTL1|TSEC_SCP_CTL1]]. | ||