Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
X
x393_sata
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
x393_sata
Commits
0ec9beab
Commit
0ec9beab
authored
Mar 12, 2016
by
Andrey Filippov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added ahci fsm listing output
parent
8af44fb8
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
472 additions
and
0 deletions
+472
-0
ahci_fsm_sequence.lst
generated/ahci_fsm_sequence.lst
+472
-0
No files found.
generated/ahci_fsm_sequence.lst
0 → 100644
View file @
0ec9beab
This file is auto-generated by ahci_fsm_sequence.py
Checking for undefined labels:
All jumps are to the defined labels
Checking for unused labels:
All labels are used
Asynchronous transitions labels:
0x000: POR
0x002: HBA_RST
0x004: PORT_RST
0x006: COMINIT
0x008: ST_CLEARED
Number of lines : 273
Number of labels : 74
Number of actions : 53
Number of conditions : 44
Actions that do not wait for done (40):
NOP
PXSERR_DIAG_X
SIRQ_DHR
SIRQ_DP
SIRQ_DS
SIRQ_IF
SIRQ_INF
SIRQ_PS
SIRQ_SDB
SIRQ_TFE
SIRQ_UF
PFSM_STARTED
PCMD_CR_CLEAR
PCMD_CR_SET
PXCI0_CLEAR
PXSSTS_DET_1
SSTS_DET_OFFLINE
SCTL_DET_CLEAR
HBA_RST_DONE
SET_UPDATE_SIG
UPDATE_SIG
UPDATE_ERR_STS
UPDATE_PIO
UPDATE_PRDBC
CLEAR_BSY_DRQ
CLEAR_BSY_SET_DRQ
SET_BSY
SET_STS_7F
SET_STS_80
XFER_CNTR_CLEAR
DECR_DWCR
DECR_DWCW
FIS_FIRST_FLUSH
CLEAR_CMD_TO_ISSUE
DMA_PRD_IRQ_CLEAR
XMIT_COMRESET
SET_OFFLINE
R_OK
R_ERR
EN_COMINIT
Actions that wait for done (13):
DMA_ABORT*
SEND_SYNC_ESC*
FETCH_CMD*
ATAPI_XMIT*
CFIS_XMIT*
DX_XMIT*
GET_DATA_FIS*
GET_DSFIS*
GET_IGNORE*
GET_PSFIS*
GET_RFIS*
GET_SDBFIS*
GET_UFIS*
Conditions(44):
ST_NB_ND
PXCI0_NOT_CMDTOISSUE
PCTI_CTBAR_XCZ
PCTI_XCZ
NST_D2HR
NPD_NCA
CHW_DMAA
SCTL_DET_CHANGED_TO_4
SCTL_DET_CHANGED_TO_1
PXSSTS_DET_NE_3
PXSSTS_DET_EQ_1
NPCMD_FRE
FIS_OK
FIS_ERR
FIS_FERR
FIS_EXTRA
FIS_FIRST_INVALID
FR_D2HR
FIS_DATA
FIS_ANY
NB_ND_D2HR_PIO
D2HR
SDB
DMA_ACT
DMA_SETUP
BIST_ACT_FE
BIST_ACT
PIO_SETUP
NB_ND
TFD_STS_ERR
FIS_I
PIO_I
NPD
PIOX
XFER0
PIOX_XFER0
CTBAA_CTBAP
CTBAP
CTBA_B
CTBA_C
TX_ERR
SYNCESC_ERR
DMA_PRD_IRQ_PEND
X_RDY_COLLISION
code:
000: 20000 # POR: do NOP
001: 0000c # always goto H:Init
002: 20000 # HBA_RST: do NOP
003: 0000a # always goto H:HBA_RST
004: 20000 # PORT_RST: do NOP
005: 0000c # always goto H:Init
006: 20000 # COMINIT: do NOP
007: 00022 # always goto P:Cominit
008: 20000 # ST_CLEARED: do NOP
009: 00035 # always goto P:StartBitCleared
00a: 20202 # H:HBA_RST: do HBA_RST_DONE
00b: 0000c # always goto H:Init
00c: 20000 # H:Init: do NOP
00d: 0000e # always goto H:WaitForAhciEnable
00e: 20000 # H:WaitForAhciEnable: do NOP
00f: 00010 # always goto H:Idle
010: 20000 # H:Idle: do NOP
011: 00012 # always goto P:Init
012: 00006 # P:Init: do PFSM_STARTED
013: 00022 # do PXCI0_CLEAR
014: 00104 # do CLEAR_BSY_SET_DRQ
015: 00404 # do SET_STS_7F
016: 00402 # do SET_UPDATE_SIG
017: 20050 # do XMIT_COMRESET
018: 0001b # always goto P:NotRunning
019: 20108 # P:NotRunningGarbage: do FIS_FIRST_FLUSH
01a: 0001b # always goto P:NotRunning
01b: 20060 # P:NotRunning: do EN_COMINIT
01c: 14419 # if FIS_FIRST_INVALID goto P:NotRunningGarbage
01d: 05432 # if SCTL_DET_CHANGED_TO_4 goto P:Offline
01e: 09449 # if SCTL_DET_CHANGED_TO_1 goto P:StartComm
01f: 01c3c # if ST_NB_ND goto P:Idle
020: 24455 # if FR_D2HR goto NDR:Entry
021: 0001b # always goto P:NotRunning
022: 00000 # P:Cominit: do NOP
023: 00018 # do SET_STS_80
024: 00042 # do PXSSTS_DET_1
025: 20003 # do PXSERR_DIAG_X
026: 0001b # always goto P:NotRunning
027: 30180 # P:RegFisUpdate: do GET_RFIS, WAIT DONE
028: 1250e # if FIS_ERR goto ERR:Non-Fatal
029: 22507 # if FIS_FERR goto ERR:Fatal
02a: 0002b # always goto P:RegFisAccept
02b: 00210 # P:RegFisAccept: do R_OK
02c: 0000c # do UPDATE_SIG
02d: 20014 # do UPDATE_ERR_STS
02e: 0c830 # if FIS_I goto P:RegFisSetIS
02f: 0001b # always goto P:NotRunning
030: 20005 # P:RegFisSetIS: do SIRQ_DHR
031: 0001b # always goto P:NotRunning
032: 00110 # P:Offline: do SET_OFFLINE
033: 20102 # do SCTL_DET_CLEAR
034: 0001b # always goto P:NotRunning
035: 00410 # P:StartBitCleared: do R_ERR
036: 00022 # do PXCI0_CLEAR
037: 10408 # do DMA_ABORT, WAIT DONE
038: 0000a # do PCMD_CR_CLEAR
039: 00028 # do XFER_CNTR_CLEAR
03a: 20108 # P:IdleGarbage: do FIS_FIRST_FLUSH
03b: 0003c # always goto P:Idle
03c: 20012 # P:Idle: do PCMD_CR_SET
03d: 1141b # if PXSSTS_DET_NE_3 goto P:NotRunning
03e: 02c45 # if PXCI0_NOT_CMDTOISSUE goto P:FetchCmd
03f: 04c6b # if PCTI_CTBAR_XCZ goto CFIS:SyncEscape
040: 1443a # if FIS_FIRST_INVALID goto P:IdleGarbage
041: 184c7 # if FIS_DATA goto DR:Entry
042: 28455 # if FIS_ANY goto NDR:Entry
043: 08c6e # if PCTI_XCZ goto CFIS:Xmit
044: 0003c # always goto P:Idle
045: 300a0 # P:FetchCmd: do FETCH_CMD, WAIT DONE
046: 0707d # if CTBAA_CTBAP goto CFIS:PrefetchACMD
047: 0b080 # if CTBAP goto CFIS:PrefetchPRD
048: 0003c # always goto P:Idle
049: 00404 # P:StartComm: do SET_STS_7F
04a: 00402 # do SET_UPDATE_SIG
04b: 00050 # do XMIT_COMRESET
04c: 20102 # do SCTL_DET_CLEAR
04d: 21449 # if PXSSTS_DET_EQ_1 goto P:StartComm
04e: 0001b # always goto P:NotRunning
04f: 20210 # P:OkIdle: do R_OK
050: 0003c # always goto P:Idle
051: 20210 # P:OkNotRunning: do R_OK
052: 0001b # always goto P:NotRunning
053: 20000 # PM:Aggr: do NOP
054: 0003c # always goto P:Idle
055: 20000 # NDR:Entry: do NOP
056: 0005f # always goto NDR:Accept
057: 30240 # NDR:IgnoreNR: do GET_IGNORE, WAIT DONE
058: 1250e # if FIS_ERR goto ERR:Non-Fatal
059: 22507 # if FIS_FERR goto ERR:Fatal
05a: 0004f # always goto P:OkIdle
05b: 30240 # NDR:IgnoreIdle: do GET_IGNORE, WAIT DONE
05c: 1250e # if FIS_ERR goto ERR:Non-Fatal
05d: 22507 # if FIS_FERR goto ERR:Fatal
05e: 00051 # always goto P:OkNotRunning
05f: 20000 # NDR:Accept: do NOP
060: 3045b # if NB_ND_D2HR_PIO goto NDR:IgnoreIdle
061: 10c27 # if NST_D2HR goto P:RegFisUpdate
062: 06457 # if NPCMD_FRE goto NDR:IgnoreNR
063: 03885 # if D2HR goto RegFIS:Entry
064: 058e0 # if SDB goto SDB:Entry
065: 098b0 # if DMA_ACT goto DX:EntryIgnore
066: 118d4 # if DMA_SETUP goto DmaSet:Entry
067: 218f5 # if BIST_ACT_FE goto BIST:FarEndLoopback
068: 068fc # if BIST_ACT goto BIST:TestOngoing
069: 0a899 # if PIO_SETUP goto PIO:Entry
06a: 000ee # always goto UFIS:Entry
06b: 10090 # CFIS:SyncEscape: do SEND_SYNC_ESC, WAIT DONE
06c: 20402 # do SET_UPDATE_SIG
06d: 0006e # always goto CFIS:Xmit
06e: 00204 # CFIS:Xmit: do SET_BSY
06f: 30220 # do CFIS_XMIT, WAIT DONE
070: 1903c # if X_RDY_COLLISION goto P:Idle
071: 15104 # if SYNCESC_ERR goto ERR:SyncEscapeRecv
072: 0d10e # if TX_ERR goto ERR:Non-Fatal
073: 00074 # always goto CFIS:Success
074: 20208 # CFIS:Success: do CLEAR_CMD_TO_ISSUE
075: 130fc # if CTBA_B goto BIST:TestOngoing
076: 2307a # if CTBA_C goto CFIS:ClearCI
077: 0707d # if CTBAA_CTBAP goto CFIS:PrefetchACMD
078: 0b080 # if CTBAP goto CFIS:PrefetchPRD
079: 0003c # always goto P:Idle
07a: 00022 # CFIS:ClearCI: do PXCI0_CLEAR
07b: 20084 # do CLEAR_BSY_DRQ
07c: 00053 # always goto PM:Aggr
07d: 20000 # CFIS:PrefetchACMD: do NOP
07e: 0b080 # if CTBAP goto CFIS:PrefetchPRD
07f: 0003c # always goto P:Idle
080: 20000 # CFIS:PrefetchPRD: do NOP
081: 0003c # always goto P:Idle
082: 30120 # ATAPI:Entry: do ATAPI_XMIT, WAIT DONE
083: 0d107 # if TX_ERR goto ERR:Fatal
084: 000a2 # always goto PIO:Update
085: 30180 # RegFIS:Entry: do GET_RFIS, WAIT DONE
086: 1250e # if FIS_ERR goto ERR:Non-Fatal
087: 22507 # if FIS_FERR goto ERR:Fatal
088: 00089 # always goto RegFIS:Accept
089: 00210 # RegFIS:Accept: do R_OK
08a: 00014 # do UPDATE_ERR_STS
08b: 00000 # do NOP
08c: 00000 # do NOP
08d: 20000 # do NOP
08e: 2290a # if TFD_STS_ERR goto ERR:FatalTaskfile
08f: 12891 # if NB_ND goto RegFIS:ClearCI
090: 00097 # always goto RegFIS:UpdateSig
091: 00044 # RegFIS:ClearCI: do UPDATE_PRDBC
092: 20022 # do PXCI0_CLEAR
093: 0c895 # if FIS_I goto RegFIS:SetIntr
094: 00097 # always goto RegFIS:UpdateSig
095: 20005 # RegFIS:SetIntr: do SIRQ_DHR
096: 00097 # always goto RegFIS:UpdateSig
097: 2000c # RegFIS:UpdateSig: do UPDATE_SIG
098: 00053 # always goto PM:Aggr
099: 30440 # PIO:Entry: do GET_PSFIS, WAIT DONE
09a: 1250e # if FIS_ERR goto ERR:Non-Fatal
09b: 22507 # if FIS_FERR goto ERR:Fatal
09c: 0009d # always goto PIO:Accept
09d: 20210 # PIO:Accept: do R_OK
09e: 2290a # if TFD_STS_ERR goto ERR:FatalTaskfile
09f: 20cb6 # if NPD_NCA goto DX:Entry
0a0: 24882 # if NPD goto ATAPI:Entry
0a1: 0003c # always goto P:Idle
0a2: 00024 # PIO:Update: do UPDATE_PIO
0a3: 00000 # do NOP
0a4: 00000 # do NOP
0a5: 20000 # do NOP
0a6: 2290a # if TFD_STS_ERR goto ERR:FatalTaskfile
0a7: 128aa # if NB_ND goto PIO:ClearCI
0a8: 148ae # if PIO_I goto PIO:SetIntr
0a9: 0003c # always goto P:Idle
0aa: 00044 # PIO:ClearCI: do UPDATE_PRDBC
0ab: 20022 # do PXCI0_CLEAR
0ac: 148ae # if PIO_I goto PIO:SetIntr
0ad: 00053 # always goto PM:Aggr
0ae: 20081 # PIO:SetIntr: do SIRQ_PS
0af: 00053 # always goto PM:Aggr
0b0: 30240 # DX:EntryIgnore: do GET_IGNORE, WAIT DONE
0b1: 1250e # if FIS_ERR goto ERR:Non-Fatal
0b2: 22507 # if FIS_FERR goto ERR:Fatal
0b3: 000b4 # always goto DX:Accept
0b4: 20210 # DX:Accept: do R_OK
0b5: 000b6 # always goto DX:Entry
0b6: 20030 # DX:Entry: do DMA_PRD_IRQ_CLEAR
0b7: 308a2 # if PIOX_XFER0 goto PIO:Update
0b8: 2883c # if XFER0 goto P:Idle
0b9: 000ba # always goto DX:Transmit
0ba: 30420 # DX:Transmit: do DX_XMIT, WAIT DONE
0bb: 15104 # if SYNCESC_ERR goto ERR:SyncEscapeRecv
0bc: 0d107 # if TX_ERR goto ERR:Fatal
0bd: 000be # always goto DX:UpdateByteCount
0be: 00088 # DX:UpdateByteCount: do DECR_DWCW
0bf: 20044 # do UPDATE_PRDBC
0c0: 250c3 # if DMA_PRD_IRQ_PEND goto DX:PrdSetIntr
0c1: 188a2 # if PIOX goto PIO:Update
0c2: 0003c # always goto P:Idle
0c3: 00009 # DX:PrdSetIntr: do SIRQ_DP
0c4: 20030 # do DMA_PRD_IRQ_CLEAR
0c5: 188a2 # if PIOX goto PIO:Update
0c6: 0003c # always goto P:Idle
0c7: 20030 # DR:Entry: do DMA_PRD_IRQ_CLEAR
0c8: 000c9 # always goto DR:Receive
0c9: 300c0 # DR:Receive: do GET_DATA_FIS, WAIT DONE
0ca: 12507 # if FIS_ERR goto ERR:Fatal
0cb: 22507 # if FIS_FERR goto ERR:Fatal
0cc: 0c50e # if FIS_EXTRA goto ERR:Non-Fatal
0cd: 000ce # always goto DR:UpdateByteCount
0ce: 00210 # DR:UpdateByteCount: do R_OK
0cf: 00048 # do DECR_DWCR
0d0: 20044 # do UPDATE_PRDBC
0d1: 250c3 # if DMA_PRD_IRQ_PEND goto DX:PrdSetIntr
0d2: 188a2 # if PIOX goto PIO:Update
0d3: 0003c # always goto P:Idle
0d4: 30140 # DmaSet:Entry: do GET_DSFIS, WAIT DONE
0d5: 1250e # if FIS_ERR goto ERR:Non-Fatal
0d6: 22507 # if FIS_FERR goto ERR:Fatal
0d7: 000d8 # always goto DmaSet:Accept
0d8: 20210 # DmaSet:Accept: do R_OK
0d9: 0c8db # if FIS_I goto DmaSet:SetIntr
0da: 000dd # always goto DmaSet:AutoActivate
0db: 20011 # DmaSet:SetIntr: do SIRQ_DS
0dc: 000dd # always goto DmaSet:AutoActivate
0dd: 20000 # DmaSet:AutoActivate: do NOP
0de: 034db # if CHW_DMAA goto DmaSet:SetIntr
0df: 0003c # always goto P:Idle
0e0: 30280 # SDB:Entry: do GET_SDBFIS, WAIT DONE
0e1: 1250e # if FIS_ERR goto ERR:Non-Fatal
0e2: 22507 # if FIS_FERR goto ERR:Fatal
0e3: 000e4 # always goto SDB:Accept
0e4: 00210 # SDB:Accept: do R_OK
0e5: 00014 # do UPDATE_ERR_STS
0e6: 00000 # do NOP
0e7: 00000 # do NOP
0e8: 20000 # do NOP
0e9: 2290a # if TFD_STS_ERR goto ERR:FatalTaskfile
0ea: 0c8ec # if FIS_I goto SDB:SetIntr
0eb: 00053 # always goto PM:Aggr
0ec: 20101 # SDB:SetIntr: do SIRQ_SDB
0ed: 00053 # always goto PM:Aggr
0ee: 30480 # UFIS:Entry: do GET_UFIS, WAIT DONE
0ef: 1250e # if FIS_ERR goto ERR:Non-Fatal
0f0: 22507 # if FIS_FERR goto ERR:Fatal
0f1: 000f2 # always goto UFIS:Accept
0f2: 00210 # UFIS:Accept: do R_OK
0f3: 20401 # do SIRQ_UF
0f4: 0003c # always goto P:Idle
0f5: 30240 # BIST:FarEndLoopback: do GET_IGNORE, WAIT DONE
0f6: 1250e # if FIS_ERR goto ERR:Non-Fatal
0f7: 22507 # if FIS_FERR goto ERR:Fatal
0f8: 000f9 # always goto BIST:FarEndLoopbackAccept
0f9: 00210 #BIST:FarEndLoopbackAccept: do R_OK
0fa: 20082 # do SSTS_DET_OFFLINE
0fb: 00102 # always goto BIST:TestLoop
0fc: 30240 # BIST:TestOngoing: do GET_IGNORE, WAIT DONE
0fd: 1250e # if FIS_ERR goto ERR:Non-Fatal
0fe: 22507 # if FIS_FERR goto ERR:Fatal
0ff: 00100 # always goto BIST:TestLoopAccept
100: 20210 # BIST:TestLoopAccept: do R_OK
101: 00102 # always goto BIST:TestLoop
102: 20000 # BIST:TestLoop: do NOP
103: 00102 # always goto BIST:TestLoop
104: 00084 # ERR:SyncEscapeRecv: do CLEAR_BSY_DRQ
105: 20021 # do SIRQ_IF
106: 0010c # always goto ERR:WaitForClear
107: 00410 # ERR:Fatal: do R_ERR
108: 20021 # do SIRQ_IF
109: 0010c # always goto ERR:WaitForClear
10a: 20201 # ERR:FatalTaskfile: do SIRQ_TFE
10b: 0010c # always goto ERR:WaitForClear
10c: 20000 # ERR:WaitForClear: do NOP
10d: 0010c # always goto ERR:WaitForClear
10e: 00410 # ERR:Non-Fatal: do R_ERR
10f: 20041 # do SIRQ_INF
110: 0003c # always goto P:Idle
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment