; --------------------------------------------------------------------------------
; @Title: CoreSight TMC On-Chip Peripherals
; @Props: Released
; @Author: KRU
; @Changelog: 2011-03-31 KRU
; @Manufacturer: ARM - ARM Ltd.
; @Doc: DDI0461B_tmc_r0p1_trm.pdf
; @Core: Generic
; @Copyright: (C) 1989-2020 Lauterbach GmbH, licensed for use with TRACE32(R) only
; --------------------------------------------------------------------------------
; $Id: pertmc.per 12186 2020-07-29 10:51:51Z slauterbach $
config 16. 8.
width 11.
base edap:per.arg(0)
width 10.
group.long 0x004++0x3 "TMC Registers"
line.long 0x00 "RSZ,RAM Size Register"
hexmask.long 0x00 0.--30. 1. " RSZ         ,Size of the RAM in 32-bit words"
rgroup.long 0x00c++0x3
line.long 0x00 "STS,Status Register"
bitfld.long 0x00 5. " MEMERR      ,AXI master interface error" "No error,Error"
bitfld.long 0x00 4. "         EMPTY ,No valid trace data in the trace memory" "Not empty,Empty"
bitfld.long 0x00 3. "  FTEMPTY ,All internal pipelines and buffers empty" "Not empty,Empty"
bitfld.long 0x00 2. "  TMCREADY ,Trace capture ready" "Not ready,Ready"
textline "                   "
bitfld.long 0x00 1. " TRIGGERED   ,Trigger event detected" "Not detected,Detected"
bitfld.long 0x00 0. "     FULL  ,Ram full" "Not full,Full"
wgroup.long 0x010++0x3
hide.long 0x00 "RRD,RAM Read Data Register"
in
group.long 0x014++0xb
line.long 0x00 "RRP,RAM Read Pointer Register"
line.long 0x04 "RWP,RAM Write Pointer Register"
line.long 0x08 "TRG,Trigger Counter Register"
group.long 0x020++0x3
line.long 0x00 "CTL,Control Register"
bitfld.long 0x00 0. " TRACECAPTEN ,Trace Capture Enable" "Disabled,Enabled"
wgroup.long 0x024++0x3
line.long 0x00 "RWD,RAM Write Data Register"
group.long 0x028++0x3
line.long 0x00 "MODE,Mode Register"
bitfld.long 0x00 0.--1. " MODE        ,Mode select" "Circular Buffer,Software FIFO,Hardware FIFO,Software FIFO 2"
rgroup.long 0x02c++0x7
line.long 0x00 "LBUFLEVEL,Latched Buffer Fill Level Register"
line.long 0x04 "CBUFLEVEL,Current Buffer Fill Level Register"
group.long 0x034++0x3
line.long 0x00 "BUFWM,Buffer Level Water Mark Register"
group.long 0x038++0x7
line.long 0x00 "RRPHI,RAM Read Pointer High Register"
hexmask.long.byte 0x00 0.--7. 1. " RRPHI         ,Bits [39:32] of the read pointer"
line.long 0x04 "RWPHI,RAM Write Pointer High Register"
hexmask.long.byte 0x04 0.--7. 1. " RWPHI         ,Bits [39:32] of the write pointer"
group.long 0x110++0x3
line.long 0x00 "AXICTL,AXI Control Register"
bitfld.long 0x00 8.--11. " WRBURSTLEN    ,Maximum number of data transfers per burst" "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16"
bitfld.long 0x00 7. "     SGM ,Scatter Gather Mode Enable" "Disabled,Enabled"
bitfld.long 0x00 5. "          CC3 ,Cache allocate on writes enable" "Disabled,Enabled"
bitfld.long 0x00 4. "     CC2 ,Cache allocate on reads enable" "Disabled,Enabled"
textline "                   "
bitfld.long 0x00 3. " CC1 ,Cacheable" "Non-cacheable,Cacheable"
bitfld.long 0x00 2. "    CC0 ,Bufferable" "Non-bufferable,Bufferable"
bitfld.long 0x00 1. "    PC1 ,Secure/Non-secure Access" "Secure,Non-secure"
bitfld.long 0x00 0. "   PC0 ,Normal/Privileged Access" "Normal,Privileged"
group.long 0x118++0x7
line.long 0x00 "DBALO,Data Buffer Address Low Register"
line.long 0x04 "DBAHI,Data Buffer Address High Register"
hexmask.long.byte 0x04 0.--7. 1. " BUFADDRHI     ,Bits [39:32] of the trace buffer address"
rgroup.long 0x300++0x3
line.long 0x00 "FFSR,Formatter and Flush Status Register"
bitfld.long 0x00 1. " FTSTOPPED     ,Formatter Stopped" "No,Yes"
bitfld.long 0x00 0. "    FLINPROG          ,Flush in Progress" "No,Yes"
group.long 0x304++0x7
line.long 0x00 "FFCR,Formatter and Flush Control Register"
bitfld.long 0x00 14. " DRAINBUFFER   ,Drain trace data through ATB master interface" "No,Yes"
bitfld.long 0x00 13. "    STOPONTRIGEVT     ,Stop trace capture on trigger event" "No,Yes"
bitfld.long 0x00 12. "   STOPONFL      ,Stop formatter on completion of a flush operation" "No,Yes"
bitfld.long 0x00 10. "   TRIGONFL      ,Trigger on flush completion" "No,Yes"
textline "                   "
bitfld.long 0x00 9. " TRIGONTRIGEVT ,Trigger on a trigger event" "No,Yes"
bitfld.long 0x00 8. "    TRIGONTRIGIN      ,Trigger on TRIGIN being asserted" "No,Yes"
bitfld.long 0x00 6. "   FLUSHMAN      ,Manual Flush" "No,Yes"
bitfld.long 0x00 5. "   FONTRIGEVT    ,Flush on trigger event" "No,Yes"
textline "                   "
bitfld.long 0x00 4. " FONFLIN       ,Flush on FLUSHIN feature" "No,Yes"
bitfld.long 0x00 1. "    ENTI              ,Insertion of triggers in the formatted trace stream enable" "No,Yes"
bitfld.long 0x00 0. "   ENFT          ,Formatting enable" "No,Yes"
line.long 0x04 "PSCR,Periodic Synchronization Counter Register"
bitfld.long 0x04 5. " EMBEDSYNC     ,Embed Frame Sync packets" "No,Yes"
bitfld.long 0x04 0.--4. "    PSCOUNT           ,Reload value of the Synchronization Counter" "Disabled,Reserved,Reserved,Reserved,Reserved,Reserved,Reserved,128 bytes,256 bytes,512 bytes,1 KB,2 KB,4 KB,8 KB,16 KB,32 KB,64 KB,128 KB,256 KB,512 KB,1 MB,2 MB,4 MB,8 MB,16 MB,32 MB,64 MB,128 MB,?..."
width 13.
tree "Coresight Management Registers"
group 0xFA0--0xFA8
line.long 0x000 "CTS, Claim Tag Set"
bitfld.long 0x000 7. " SETCTV7   ,Set Claim Tag Value" "No effect,Set"
bitfld.long 0x000 6. "        SETCTV6 ,Set Claim Tag Value" "No effect,Set"
textline "                      "
bitfld.long 0x000 5. " SETCTV5   ,Set Claim Tag Value" "No effect,Set"
bitfld.long 0x000 4. "        SETCTV4 ,Set Claim Tag Value" "No effect,Set"
textline "                      "
bitfld.long 0x000 3. " SETCTV3   ,Set Claim Tag Value" "No effect,Set"
bitfld.long 0x000 2. "        SETCTV2 ,Set Claim Tag Value" "No effect,Set"
textline "                      "
bitfld.long 0x000 1. " SETCTV1   ,Set Claim Tag Value" "No effect,Set"
bitfld.long 0x000 0. "        SETCTV0 ,Set Claim Tag Value" "No effect,Set"
line.long 0x004 "CTC, Claim Tag Clear"
bitfld.long 0x004 7. " CLRCTV7   ,Clear Claim Tag Value" "No effect,Cleared"
bitfld.long 0x004 6. "        CLRCTV6 ,Clear Claim Tag Value" "No effect,Cleared"
textline "                      "
bitfld.long 0x004 5. " CLRCTV5   ,Clear Claim Tag Value" "No effect,Cleared"
bitfld.long 0x004 4. "        CLRCTV4 ,Clear Claim Tag Value" "No effect,Cleared"
textline "                      "
bitfld.long 0x004 3. " CLRCTV3   ,Clear Claim Tag Value" "No effect,Cleared"
bitfld.long 0x004 2. "        CLRCTV2 ,Clear Claim Tag Value" "No effect,Cleared"
textline "                      "
bitfld.long 0x004 1. " CLRCTV1   ,Clear Claim Tag Value" "No effect,Cleared"
bitfld.long 0x004 0. "        CLRCTV0 ,Clear Claim Tag Value" "No effect,Cleared"
wgroup.long 0xfb0++0x3
line.long 0x00 "LAR,Lock Access Register"
rgroup.long 0xfb4++0x7
line.long 0x00 "LSR,Lock Status Register"
bitfld.long 0x00 2. " LOCKTYPE         ,32-bit Lock Access Register Implemented" "32-bit,?..."
bitfld.long 0x00 1. "         LOCKGRANT ,Lock Status" "Unlocked,Locked"
bitfld.long 0x00 0. "         LOCKEXIST  ,Lock control mechanism present" "Not present,Present"
line.long 0x04 "AUTHSTATUS,Authentication Status Register"
bitfld.long 0x04 6.--7. " SNID   ,Security level for secure non-invasive debug" "Not implemented,?..."
bitfld.long 0x04 4.--5. "  SID  ,Security level for secure invasive debug" "Not implemented,Reserved,Disabled,Enabled"
bitfld.long 0x04 2.--3. "  NSNID ,Security level for non-secure non-invasive debug" "Not implemented,?..."
bitfld.long 0x04 0.--1. "  NSID ,Security level for non-secure invasive debug" "Not implemented,Reserved,Disabled,Enabled"
rgroup.long 0xfc8++0x3
line.long 0x00 "DEVID,Device Configuration Register"
bitfld.long 0x00 11.--13. " WBUF_DEPTH  ,Number of entries in the write buffer (in ETR)" "Reserved,Reserved,4 entries,8 entries,16 entries,32 entries,?..."
bitfld.long 0x00 8.--10. "  MEMWIDTH  ,Memory interface databus width" "Reserved,Reserved,32-bit,64-bit,128-bit,256-bit,?..."
bitfld.long 0x00 6.--7. "    CONFIGTYPE ,Configuration type" "ETB,ETR,ETF,?..."
bitfld.long 0x00 5. "    CLKSCHEME ,RAM clocking scheme" "Synchronous,?..."
textline "                    "
bitfld.long 0x00 0.--4. "   ATBINPORTCOUNT   ,Type or number of ATB multiplexing" "No multiplexing,?..."
width 13.
if ((d.l(edap:per.arg(0)+0xfc8)&0xc0)==(0x00||0x40))
rgroup.long 0xfcc++0x3
line.long 0x00 "DEVTYPE,Device Type Identifier Register"
bitfld.long 0x00 4.--7. " SUB_TYPE         ,Sub-classification within the major category" "Reserved,Reserved,RAM->APB,?..."
bitfld.long 0x00 0.--3. "                    MAJOR_TYPE ,Major classification grouping for this debug or trace component" "Reserved,Trace sink,?..."
elif ((d.l(edap:per.arg(0)+0xfc8)&0xc0)==0x80)
rgroup.long 0xfcc++0x3
line.long 0x00 "DEVTYPE,Device Type Identifier Register"
bitfld.long 0x00 4.--7. " SUB_TYPE         ,Sub-classification within the major category" "Reserved,Reserved,Reserved,ATB slave->RAM->ATB master,?..."
bitfld.long 0x00 0.--3. "  MAJOR_TYPE ,Major classification grouping for this debug or trace component" "Reserved,Reserved,Trace link,?..."
else
hgroup.long 0xfcc++0x3
hide.long 0x00 "DEVTYPE,Device Type Identifier Register"
endif
group 0xf00--0xf03 "Integration Test Registers"
line.long 0x000 "ITCTRL,Integration Mode Control"
bitfld.long 0x000 0. " ENABLE       ,Enable Integration mode" "no,yes"
wgroup.long 0xee0++0x3
line.long 0x00 "ITMISCOP0,Integration Test Miscellaneous Output Register 0"
bitfld.long 0x00 1. " FULL          ,FULL output value set" "0,1"
bitfld.long 0x00 0. "     ACQCOMP       ,ACQCOMP output value set" "0,1"
rgroup.long 0xee8++0x3
line.long 0x00 "ITTRFLIN,Integration Test Trigger In and Flush In Register"
bitfld.long 0x00 1. " FLUSHIN       ,FLUSHIN output value" "0,1"
bitfld.long 0x00 0. "     TRIGIN        ,TRIGIN output value" "0,1"
rgroup 0xEEC--0xEEF
line.long 0x000 "ITATBDATA0,ATB Data 0"
bitfld.long 0x000 8. " ATDATAS[127] ,Returns the Value of the ATDATAS[127] Input pin" "Low,High"
bitfld.long 0x000 7. "  ATDATAS[119] ,Returns the Value of the ATDATAS[119] Input Pin" "Low,High"
bitfld.long 0x000 6. "  ATDATAS[111] ,Returns the Value of the ATDATAS[111] Input pin" "Low,High"
bitfld.long 0x000 5. "  ATDATAS[103] ,Returns the Value of the ATDATAS[103] Input Pin" "Low,High"
textline "                     "
bitfld.long 0x000 8. "  ATDATAS[95]  ,Returns the Value of the ATDATAS[95] Input pin" "Low,High"
bitfld.long 0x000 7. "  ATDATAS[87]  ,Returns the Value of the ATDATAS[87] Input Pin" "Low,High"
bitfld.long 0x000 6. "  ATDATAS[79]  ,Returns the Value of the ATDATAS[79] Input pin" "Low,High"
bitfld.long 0x000 5. "  ATDATAS[71]  ,Returns the Value of the ATDATAS[71] Input Pin" "Low,High"
textline "                     "
bitfld.long 0x000 8. "  ATDATAS[63]  ,Returns the Value of the ATDATAS[63] Input pin" "Low,High"
bitfld.long 0x000 7. "  ATDATAS[55]  ,Returns the Value of the ATDATAS[55] Input Pin" "Low,High"
bitfld.long 0x000 6. "  ATDATAS[47]  ,Returns the Value of the ATDATAS[47] Input pin" "Low,High"
bitfld.long 0x000 5. "  ATDATAS[39]  ,Returns the Value of the ATDATAS[39] Input Pin" "Low,High"
textline "                     "
bitfld.long 0x000 4. "  ATDATAS[31]  ,Returns the Value of the ATDATAS[31] Input Pin" "Low,High"
bitfld.long 0x000 3. "  ATDATAS[23]  ,Returns the Value of the ATDATAS[23] Input pin" "Low,High"
bitfld.long 0x000 2. "  ATDATAS[15]  ,Returns the Value of the ATDATAS[15] Input Pin" "Low,High"
bitfld.long 0x000 1. "  ATDATAS[7]   ,Returns the Value of the ATDATAS[7] Input Pin" "Low,High"
bitfld.long 0x000 0. "  ATDATAS[0]   ,Returns the Value of the ATDATAS[0] Input Pin" "Low,High"
wgroup 0xEF0--0xEF3
line.long 0x000 "ITATBCTR2,ATB Control 2"
bitfld.long 0x000 1. " AFREADYS     ,Drives the AFREADYS Output Pin" "Low,High"
bitfld.long 0x000 0. "  ATVALIDS     ,Drives the ATVALIDS Output Pin" "Low,High"
rgroup 0xEF4--0xEF7
line.long 0x000 "ITATBCTR1,ATB Control 1"
hexmask.long.byte 0x000 0.--6. " ATIDS        ,Returns the Value of the ATIDS Input Pins"
rgroup 0xEF8--0xEFB
line.long 0x000 "ITATBCTR0,ATB Control 0"
bitfld.long 0x000 9. " ATBYTESS[1]  ,Returns the Value of the ATBYTESS[1] Input Pin" "Low,High"
bitfld.long 0x000 8. "  ATBYTESS[0]  ,Returns the Value of the ATBYTESS[1] Input Pin" "Low,High"
bitfld.long 0x000 1. "  AFVALIDS     ,Returns the Value of the AFVALIDS Input Pin" "Low,High"
bitfld.long 0x000 0. "  ATREADYS     ,Returns the Value of the ATREADYS Input Pin" "Low,High"
wgroup 0xEEC--0xEEF
line.long 0x000 "ITATBDATA0,ATB Data 0"
bitfld.long 0x000 8. " ATDATAM[127] ,Drives the ATDATAM[127] Output pin" "Low,High"
bitfld.long 0x000 7. "  ATDATAM[119] ,Drives the ATDATAM[119] Output Pin" "Low,High"
bitfld.long 0x000 6. "  ATDATAM[111] ,Drives the ATDATAM[111] Output pin" "Low,High"
bitfld.long 0x000 5. "  ATDATAM[103] ,Drives the ATDATAM[103] Output Pin" "Low,High"
textline "                     "
bitfld.long 0x000 8. "  ATDATAM[95]  ,Drives the ATDATAM[95] Output pin" "Low,High"
bitfld.long 0x000 7. "  ATDATAM[87]  ,Drives the ATDATAM[87] Output Pin" "Low,High"
bitfld.long 0x000 6. "  ATDATAM[79]  ,Drives the ATDATAM[79] Output pin" "Low,High"
bitfld.long 0x000 5. "  ATDATAM[71]  ,Drives the ATDATAM[71] Output Pin" "Low,High"
textline "                     "
bitfld.long 0x000 8. "  ATDATAM[63]  ,Drives the ATDATAM[63] Output pin" "Low,High"
bitfld.long 0x000 7. "  ATDATAM[55]  ,Drives the ATDATAM[55] Output Pin" "Low,High"
bitfld.long 0x000 6. "  ATDATAM[47]  ,Drives the ATDATAM[47] Output pin" "Low,High"
bitfld.long 0x000 5. "  ATDATAM[39]  ,Drives the ATDATAM[39] Output Pin" "Low,High"
textline "                     "
bitfld.long 0x000 4. "  ATDATAM[31]  ,Drives the ATDATAM[31] Output Pin" "Low,High"
bitfld.long 0x000 3. "  ATDATAM[23]  ,Drives the ATDATAM[23] Output pin" "Low,High"
bitfld.long 0x000 2. "  ATDATAM[15]  ,Drives the ATDATAM[15] Output Pin" "Low,High"
bitfld.long 0x000 1. "  ATDATAM[7]   ,Drives the ATDATAM[7] Output Pin" "Low,High"
bitfld.long 0x000 0. "  ATDATAM[0]   ,Drives the ATDATAM[0] Output Pin" "Low,High"
rgroup 0xEF0--0xEF3
line.long 0x000 "ITATBCTR2,ATB Control 2"
bitfld.long 0x000 1. " AFVALIDM     ,Returns the Value of the AFVALIDM Input Pin" "Low,High"
bitfld.long 0x000 0. "  ATREADYM     ,Returns the Value of the ATREADYM Input Pin" "Low,High"
wgroup 0xEF4--0xEF7
line.long 0x000 "ITATBCTR1,ATB Control 1"
hexmask.long.byte 0x000 0.--6. " ATIDM        ,Drives the ATIDM Output Pins"
wgroup 0xEF8--0xEFB
line.long 0x000 "ITATBCTR0,ATB Control 0"
bitfld.long 0x000 9. " ATBYTESM[1]  ,Drives the ATBYTESM[1] Output Pin" "Low,High"
bitfld.long 0x000 8. "  ATBYTESM[0]  ,Drives the ATBYTESM[0] Output Pin" "Low,High"
bitfld.long 0x000 1. "  AFREADYM     ,Drives the AFREADYM Output Pin" "Low,High"
bitfld.long 0x000 0. "  ATVALIDM     ,Drives the ATVALIDM Output Pin" "Low,High"
width 13.
rgroup.long 0xfe0++0x13 "Peripheral Identification Registers"
line.long 0x00 "PERIPHID0,Peripheral ID0 Register"
hexmask.long.byte 0x00 0.--7. 1. " PART_NUMBER[7:0] ,Bits [7:0] of the component part number"
line.long 0x04 "PERIPHID1,Peripheral ID1 Register"
bitfld.long 0x04 4.--7. " JEP106[3:0]      ,Bits [3:0] of the JEDEC identity code" "0000,0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011,1100,1101,1110,1111"
bitfld.long 0x04 0.--3. "       PART_NUMBER[11:8] ,Bits [11:8] of the component part number" "0000,0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011,1100,1101,1110,1111"
line.long 0x08 "PERIPHID2,Peripheral ID2 Register"
bitfld.long 0x08 4.--7. " REVISION         ,Revision" "Reserved,r0p1,?..."
bitfld.long 0x08 3. "   JEDEC             ,JEDEC assigned value used" "Not used,Used"
bitfld.long 0x08 0.--2. "  JEP106[6:4] ,Bits [6:4] of the JEDEC identity code" "000,001,010,011,100,101,110,111"
line.long 0x0c "PERIPHID3,Peripheral ID3 Register"
hexmask.long.byte 0x0c 4.--7. 1. " REVAND           ,Minor errata fixes"
hexmask.long.byte 0x0c 0.--3. 1. "         CUSTOMER_MODIFIED ,Customer Modified"
rgroup.long 0xfd0++0x3
line.long 0x00 "PERIPHID4,Peripheral ID4 Register"
bitfld.long 0x00 4.--7. " FOURKB_COUNT     ,Total contiguous size of the memory window" "4 KB,8 KB,16 KB,32 KB,64 KB,128 KB,256 KB,512 KB,1 MB,2 MB,4 MB,8 MB,16 MB,32 MB,64 MB,128 MB"
bitfld.long 0x00 0.--3. "     JEP106_CONT       ,JEDEC continuation code" "Reserved,Reserved,Reserved,Reserved,5th bank,?..."
rgroup.long 0xff0++0xf "Component Identification Registers"
line.long 0x00 "COMPID0,Component ID0 Register"
hexmask.long.byte 0x00 0.--7. 1. " PREAMBLE[7:0]    ,Bits [7:0] of the component identification"
line.long 0x04 "COMPID1,Component ID1 Register"
bitfld.long 0x04 4.--7. " CLASS            ,Class of the component" "Reserved,Reserved,Reserved,Reserved,Reserved,Reserved,Reserved,Reserved,Reserved,CoreSight,?..."
bitfld.long 0x04 0.--3. "  PREAMBLE[11:8]    ,Bits [11:8] of the component identification" "0000,0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011,1100,1101,1110,1111"
line.long 0x08 "COMPID2,Component ID2 Register"
hexmask.long.byte 0x08 0.--7. 1. " PREAMBLE[23:16]  ,Bits [23:16] of the component identification"
line.long 0x0c "COMPID3,Component ID3 Register"
hexmask.long.byte 0x0c 0.--7. 1. " PREAMBLE[31:24]  ,Bits [31:24] of the component identification"
tree.end
width 11.
textline " "
