Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Clarified unaligned access related response bits. Added new WriteEn and ReadEn response bits. Added fields for locking (proposed) in yellow.

...

Word#BITSNameDescriptionNote
0[7:0]Version[7:0]SRP Version number 
0[9:8]OpCode[1:0]Operation Code
  • 0x0=Non-Posted Read
  • 0x1=Non-Posted Write
  • 0x2=Posted Write
  • 0x3=NULL
0[23:10]ReservedReservedIgnored
0[14]LockRequestRequest a lock 
0[15]LockReleaseRelease a lock 
0[23:16]LockCodeExclusive access code

Set to 0 when requesting a lock

Set to the returned lock code once a lock has been granted

0[31:24]TimeoutCnt[7:0]Timeout Counter
  • If 0x00, then no timeout
  • In units of 100 ms
1[31:0]TID[31:0]Transaction ID 
2[31:0]Addr[31:0]Register AddressIn units of bytes
3[31:0]Addr[63:32]Register AddressIn units of bytes
4[31:0]ReqSize[31:0]Request Size
  • In units of bytes
  • Counting from zero
  • ReqSize = 0x0 is 1 byte request
5[31:0]WriteData[31:0]Write DataOnly used for write operations
............Only used for write operations
4+CEIL((ReqSize+1)/4)[31:0]WriteData[31:0]Write DataOnly used for write operations

...

Word#BITSNameDescriptionNote
0[7:0]Version[7:0]Module's SRP Version numberAlways respond with local value
0[9:8]OpCode[1:0]Operation CodeEchoed back
0[10]AddressAccessUnalignedAccessModule's support for non 32-bit address access supportword-aligned addresses
  • Always respond with local value
  • 0 = not supported (only 32-bit alignment)
  • 1 = supported (byte alignment)
0[11]TransactionAccessMinAccessSizeModule's non 32-bit transaction byte/word transaction support
  • Always respond with local value
  • 0 = 32-bit (4 byte) transactions only
  • 1 = Byte level transactions allowed
0[12]WriteEnModule Write op support
  • Always respond with local value
  • 0 = not supported (only 32-bit transactions)1 = supported (byte level transactions)write operations are not supported
  • 1 = write operations are supported
  • Applies to both posted and non-posted writes
0[13]ReadEnModule Read op support
  • Always respond with local value
  • 0 = read operations are not supported
  • 1 = read operations are supported
0[14]LockGrantLock granted for exclusive access 
0[15]LockReleaseLock release granted 
0[23:16]LockCodeExclusive access codeWhen an exclusive access lock has been granted, transactions must use this code
0[23:1014]ReservedReservedResponses Responds back with 0x0
0[31:24]TimeoutCnt[7:0]Timeout CounterEchoed back
1[31:0]TID[31:0]Transaction IDEchoed back
2[31:0]Addr[31:0]Register AddressEchoed back
3[31:0]Addr[63:32]Register AddressEchoed back
4[31:0]ReqSize[31:0]Request SizeEchoed back
5[31:0]MemData[31:0]Memory DataOnly used for non-posted operations
............Only used for non-posted operations
4+CEIL((ReqSize+1)/4)[31:0]MemData[31:0]Memory DataOnly used for non-posted operations
5+CEIL((ReqSize+1)/4)[7:0]MemResp[7:0]Memory Bus ResponseFooter :
  • if MemResp == 0, then success
  • if MemResp != 0, then failed

Each SRP bus bridge implementation will define it's own use for this field.

5+CEIL((ReqSize+1)/4)[8]timeouttimeout errorFooter
5+CEIL((ReqSize+1)/4)[9]eofeEnd of Frame with ErrorFooter
5+CEIL((ReqSize+1)/4)[10]frameErrorFraming error detectedFooter
5+CEIL((ReqSize+1)/4)[11]verMismatchVersion Mismatch ErrorFooter
5+CEIL((ReqSize+1)/4)[12]reqSizeErrorRequest Size ErrorFooter
5+CEIL((ReqSize+1)/4)[13]LockErrorLock ErrorFooter. Module has granted a lock and the incorrect lock code was sent in a txn.
5+CEIL((ReqSize+1)/4)[31:13]ReservedAlways zerosFooter