TSEC: Difference between revisions

No edit summary
No edit summary
Line 295: Line 295:
| 0x04
| 0x04
|-
|-
| [[#FALCON_DMATRF_EXTBASE|FALCON_DMATRF_EXTBASE]]
| [[#FALCON_DMATRFBASE|FALCON_DMATRFBASE]]
| 0x54501110
| 0x54501110
| 0x04
| 0x04
|-
|-
| [[#FALCON_DMATRF_VOFF|FALCON_DMATRF_VOFF]]
| [[#FALCON_DMATRFMOFFS|FALCON_DMATRFMOFFS]]
| 0x54501114
| 0x54501114
| 0x04
| 0x04
Line 307: Line 307:
| 0x04
| 0x04
|-
|-
| [[#FALCON_DMATRF_POFF|FALCON_DMATRF_POFF]]
| [[#FALCON_DMATRFFBOFFS|FALCON_DMATRFFBOFFS]]
| 0x5450111C
| 0x5450111C
| 0x04
| 0x04
Line 383: Line 383:
| 0x04
| 0x04
|-
|-
| FALCON_CODE_INDEX
| [[#FALCON_IMEMC|FALCON_IMEMC]]
| 0x54501180
| 0x54501180
| 0x04
| 0x04
|-
|-
| FALCON_CODE
| [[#FALCON_IMEMD|FALCON_IMEMD]]
| 0x54501184
| 0x54501184
| 0x04
| 0x04
|-
|-
| FALCON_CODE_VIRT_ADDR
| [[#FALCON_IMEMT|FALCON_IMEMT]]
| 0x54501188
| 0x54501188
| 0x04
| 0x04
|-
|-
| FALCON_DATA_INDEX0
| [[#FALCON_DMEMC0|FALCON_DMEMC0]]
| 0x545011C0
| 0x545011C0
| 0x04
| 0x04
|-
|-
| FALCON_DATA0
| [[#FALCON_DMEMD0|FALCON_DMEMD0]]
| 0x545011C4
| 0x545011C4
| 0x04
| 0x04
|-
|-
| FALCON_DATA_INDEX1
| FALCON_DMEMC1
| 0x545011C8
| 0x545011C8
| 0x04
| 0x04
|-
|-
| FALCON_DATA1
| FALCON_DMEMD1
| 0x545011CC
| 0x545011CC
| 0x04
| 0x04
|-
|-
| FALCON_DATA_INDEX2
| FALCON_DMEMC2
| 0x545011D0
| 0x545011D0
| 0x04
| 0x04
|-
|-
| FALCON_DATA2
| FALCON_DMEMD2
| 0x545011D4
| 0x545011D4
| 0x04
| 0x04
|-
|-
| FALCON_DATA_INDEX3
| FALCON_DMEMC3
| 0x545011D8
| 0x545011D8
| 0x04
| 0x04
|-
|-
| FALCON_DATA3
| FALCON_DMEMD3
| 0x545011DC
| 0x545011DC
| 0x04
| 0x04
|-
|-
| FALCON_DATA_INDEX4
| FALCON_DMEMC4
| 0x545011E0
| 0x545011E0
| 0x04
| 0x04
|-
|-
| FALCON_DATA4
| FALCON_DMEMD4
| 0x545011E4
| 0x545011E4
| 0x04
| 0x04
|-
|-
| FALCON_DATA_INDEX5
| FALCON_DMEMC5
| 0x545011E8
| 0x545011E8
| 0x04
| 0x04
|-
|-
| FALCON_DATA5
| FALCON_DMEMD5
| 0x545011EC
| 0x545011EC
| 0x04
| 0x04
|-
|-
| FALCON_DATA_INDEX6
| FALCON_DMEMC6
| 0x545011F0
| 0x545011F0
| 0x04
| 0x04
|-
|-
| FALCON_DATA6
| FALCON_DMEMD6
| 0x545011F4
| 0x545011F4
| 0x04
| 0x04
|-
|-
| FALCON_DATA_INDEX7
| FALCON_DMEMC7
| 0x545011F8
| 0x545011F8
| 0x04
| 0x04
|-
|-
| FALCON_DATA7
| FALCON_DMEMD7
| 0x545011FC
| 0x545011FC
| 0x04
| 0x04
Line 1,372: Line 1,372:
|-
|-
| 6
| 6
| FALCON_CPUCTL_STARTCPU_SECURE
| FALCON_CPUCTL_CPUCTL_ALIAS_EN
|}
|}


Line 1,421: Line 1,421:
Used for configuring the Falcon's DMA engine.
Used for configuring the Falcon's DMA engine.


=== FALCON_DMATRF_EXTBASE ===
=== FALCON_DMATRFBASE ===
Base of the external memory buffer.
Base address of the external memory buffer, shifted right by 8.


The base of the transfer is calculated by adding [[#FALCON_DMATRF_POFF]] to the base.
The current transfer address is calculated by adding [[#FALCON_DMATRFFBOFFS]] to the base.


=== FALCON_DMATRF_VOFF ===
=== FALCON_DMATRFMOFFS ===
For transfers to DMEM: the destination address.
For transfers to DMEM: the destination address.
For transfers to IMEM: the destination virtual IMEM page.
For transfers to IMEM: the destination virtual IMEM page.
=== FALCON_DMATRF_POFF ===
For transfers to IMEM: the destination physical IMEM page.


=== FALCON_DMATRFCMD ===
=== FALCON_DMATRFCMD ===
Line 1,461: Line 1,458:


Used for configuring DMA transfers.
Used for configuring DMA transfers.
=== FALCON_DMATRFFBOFFS ===
For transfers to IMEM: the destination physical IMEM page.


=== FALCON_DMATRFSTAT ===
=== FALCON_DMATRFSTAT ===
Line 1,519: Line 1,519:
|-
|-
| 27
| 27
| FALCON_HWCFG2_HAS_PRIV_DEBUG
| FALCON_HWCFG2_HAS_IMCTL_DEBUG
|-
|-
| 28-29
| 28-29
Line 1,570: Line 1,570:
=== FALCON_TRACEPC ===
=== FALCON_TRACEPC ===
Returns the PC of the last call or branch executed.
Returns the PC of the last call or branch executed.
=== FALCON_IMEMC ===
{| class="wikitable" border="1"
!  Bits
!  Description
|-
| 2-7
| Offset in IMEM block to read/write
|-
| 8-15
| IMEM block to read/write
|-
| 24
| Write auto-increment
|-
| 25
| Read auto-increment
|-
| 28
| Mark uploaded code as secret
|-
| 29
| Secret code upload lockdown status (read-only)
|-
| 30
| Secret code upload failure status (read-only)
|-
| 31
| Secret code upload reset scrubber status (read-only)
|}
Used for configuring access to Falcon's DMEM.
=== FALCON_IMEMD ===
Returns or takes the value for an IMEM read/write operation.
=== FALCON_IMEMT ===
Returns or takes the virtual page index for an IMEM read/write operation.
=== FALCON_DMEMC0 ===
{| class="wikitable" border="1"
!  Bits
!  Description
|-
| 2-7
| Offset in DMEM block to read/write
|-
| 8-15
| DMEM block to read/write
|-
| 24
| Write auto-increment
|-
| 25
| Read auto-increment
|}
Used for configuring access to Falcon's DMEM.
=== FALCON_DMEMD0 ===
Returns or takes the value for a DMEM read/write operation.


=== FALCON_ICD_CMD ===
=== FALCON_ICD_CMD ===
Line 2,080: Line 2,141:
|-
|-
| 20
| 20
| Wrong access level (during csigauth)
| Wrong access level (during csigauth in HS mode)
|-
|-
| 24
| 24
| Forbidden instruction
| Forbidden instruction (during cchmod in NS mode)
|}
|}