##############################################################################
## This file is part of 'SLAC Firmware Standard Library'.
## It is subject to the license terms in the LICENSE.txt file found in the 
## top-level directory of this distribution and at: 
##    https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html. 
## No part of 'SLAC Firmware Standard Library', including this file, 
## may be copied, modified, propagated, or distributed except according to 
## the terms contained in the LICENSE.txt file.
##############################################################################

Device: &RssiCore 
  name: RssiCore
  description: RSSI module
  size: 0x1000
  #########
  IntField:
  #########  
    #########################################################
    - offset: 0x00
      name: OpenConn
      sizeBits: 1    
      lsBit: 0 
      mode: RW
      description: "Open Connection Request (Server goes to listen state, Client actively requests the connection by sending SYN segment)"
    #########################################################
    - offset: 0x00
      name: CloseConn
      sizeBits: 1    
      lsBit: 1 
      mode: RW
      description: "Close Connection Request (Send a RST Segment to peer and close the connection)"
    #########################################################
    - offset: 0x00
      name: Mode
      sizeBits: 1    
      lsBit: 2 
      mode: RW
      description: "Mode:'0': Use internal parameters from generics,'1': Use parameters from registers"
    #########################################################
    - offset: 0x00
      name: HeaderChksumEn
      sizeBits: 1    
      lsBit: 3 
      mode: RW
      description: "Header checksum: '1': Enable calculation and check, '0': Disable check and insert 0 in place of header checksum"
    #########################################################
    - offset: 0x00
      name: InjectFault
      sizeBits: 1    
      lsBit: 4 
      mode: RW
      description: "Inject fault to the next packet header checksum (Default '0'). Acts on rising edge - injects exactly one fault in next segment"
    #########################################################
    - offset: 0x04
      name: InitSeqN
      sizeBits: 8
      mode: RW
      description: "Initial sequence number [7:0]"
    #########################################################
    - offset: 0x08
      name: Version
      sizeBits: 4
      mode: RW
      description: "Version register [3:0]"
    #########################################################
    - offset: 0x0C
      name: MaxOutsSeg
      sizeBits: 8
      mode: RW
      description: "Maximum out standing segments [7:0]"
    #########################################################
    - offset: 0x10
      name: MaxSegSize
      sizeBits: 16
      mode: RW
      description: "Maximum segment size [15:0]"
    #########################################################
    - offset: 0x14
      name: RetransTimeout
      sizeBits: 16
      mode: RW
      description: "Retransmission timeout [15:0]"
    #########################################################
    - offset: 0x18
      name: CumAckTimeout
      sizeBits: 16
      mode: RW
      description: "Cumulative acknowledgment timeout [15:0]"
    #########################################################
    - offset: 0x1C
      name: NullSegTimeout
      sizeBits: 16
      mode: RW
      description: "Null segment timeout [15:0]"
    #########################################################
    - offset: 0x20
      name: MaxNumRetrans
      sizeBits: 8     
      mode: RW
      description: "Maximum number of retransmissions [7:0]"
    #########################################################
    - offset: 0x24
      name: MaxCumAck
      sizeBits: 8 
      mode: RW
      description: "Maximum cumulative acknowledgments [7:0]"
    #########################################################
    - offset: 0x28
      name: MaxOutOfSeq
      sizeBits: 8
      mode: RW
      description: "Max out of sequence segments (EACK) [7:0]"
    #########################################################
    - offset: 0x40
      name: ConnectionActive
      sizeBits: 1    
      lsBit: 0 
      mode: RO
      description: "Connection Active"    
    #########################################################
    - offset: 0x40
      name: ErrMaxRetrans
      sizeBits: 1    
      lsBit: 1 
      mode: RO
      description: "Maximum retransmissions exceeded retransMax."    
    #########################################################
    - offset: 0x40
      name: ErrNullTout
      sizeBits: 1    
      lsBit: 2 
      mode: RO
      description: "Null timeout reached (server) nullTout."    
    #########################################################
    - offset: 0x40
      name: ErrAck
      sizeBits: 1    
      lsBit: 3 
      mode: RO
      description: "Error in acknowledgment mechanism."  
    #########################################################
    - offset: 0x40
      name: ErrSsiFrameLen
      sizeBits: 1    
      lsBit: 4 
      mode: RO
      description: "SSI Frame length too long"    
    #########################################################
    - offset: 0x40
      name: ErrConnTout
      sizeBits: 1    
      lsBit: 5 
      mode: RO
      description: "Connection to peer timed out. Timeout defined in generic PEER_CONN_TIMEOUT_G (Default: 1000 ms)"
    #########################################################
    - offset: 0x40
      name: ParamRejected
      sizeBits: 1    
      lsBit: 6 
      mode: RO
      description: "Client rejected the connection (parameters out of range), Server proposed new parameters (parameters out of range)"      
    #########################################################
    - offset: 0x44
      name: ValidCnt
      sizeBits: 32
      mode: RO
      description: "Number of valid segments [31:0]"
    #########################################################    
    - offset: 0x48
      name: DropCnt
      sizeBits: 32
      mode: RO
      description: "Number of dropped segments [31:0]"
    #########################################################    
  #########
  Commands:
  #########
    #########################################################
    - name: C_OpenConn
      description: "Open connection request"
      sequence:
        - entry: OpenConn
          value: 0x1
        - entry: OpenConn
          value: 0x0          
    #########################################################
    - name: C_CloseConn
      description: "Close connection request"
      sequence:
        - entry: CloseConn
          value: 0x1
        - entry: CloseConn
          value: 0x0   
    #########################################################
    - name: C_InjectFault
      description: "Inject a single fault(for debug and test purposes only). Corrupts checksum during transmission"
      sequence:
        - entry: InjectFault
          value: 0x1
        - entry: InjectFault
          value: 0x0               
    #########################################################    
