Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Fields
scu_task_context Struct Reference

#include <scu_task_context.h>

Data Fields

u32 priority:2
 
u32 initiator_request:1
 
u32 connection_rate:4
 
u32 protocol_engine_index:3
 
u32 logical_port_index:3
 
u32 protocol_type:3
 
u32 task_index:12
 
u32 reserved_00_0:1
 
u32 abort:1
 
u32 valid:1
 
u32 context_type:1
 
u32 remote_node_index:12
 
u32 mirrored_node_index:12
 
u32 sata_direction:1
 
u32 command_code:2
 
u32 suspend_node:1
 
u32 task_type:4
 
u32 link_layer_control:8
 
u32 ssp_tlr_enable:1
 
u32 dma_ssp_target_good_response:1
 
u32 do_not_dma_ssp_good_response:1
 
u32 strict_ordering:1
 
u32 control_frame:1
 
u32 tl_control_reserved:3
 
u32 timeout_enable:1
 
u32 pts_control_reserved:7
 
u32 block_guard_enable:1
 
u32 sdma_control_reserved:7
 
u32 address_modifier:16
 
u32 mirrored_protocol_engine:3
 
u32 mirrored_logical_port:4
 
u32 reserved_0C_0:8
 
u32 mirror_request_enable:1
 
u32 ssp_command_iu_length:8
 
u32 xfer_ready_tlr_enable:1
 
u32 reserved_10_0:7
 
u32 ssp_max_burst_size:16
 
u32 transfer_length_bytes:24
 
u32 reserved_14_0:8
 
union protocol_context type
 
u32 command_iu_upper
 
u32 command_iu_lower
 
u32 response_iu_upper
 
u32 response_iu_lower
 
u32 task_phase:8
 
u32 task_status:8
 
u32 previous_extended_tag:4
 
u32 stp_retry_count:2
 
u32 reserved_40_1:2
 
u32 ssp_tlr_threshold:4
 
u32 reserved_40_2:4
 
u32 write_data_length
 
struct transport_snapshot snapshot
 
u32 blk_prot_en:1
 
u32 blk_sz:2
 
u32 blk_prot_func:2
 
u32 reserved_5C_0:9
 
u32 active_sgl_element:2
 
u32 sgl_exhausted:1
 
u32 payload_data_transfer_error:4
 
u32 frame_buffer_offset:11
 
struct scu_sgl_element_pair sgl_pair_ab
 
struct scu_sgl_element_pair sgl_pair_cd
 
struct scu_sgl_element_pair sgl_snapshot_ac
 
u32 active_sgl_element_pair
 
u32 reserved_C4_CC [3]
 
u32 interm_crc_val:16
 
u32 init_crc_seed:16
 
u32 app_tag_verify:16
 
u32 app_tag_gen:16
 
u32 ref_tag_seed_verify
 
u32 UD_bytes_immed_val:13
 
u32 reserved_DC_0:3
 
u32 DIF_bytes_immed_val:4
 
u32 reserved_DC_1:12
 
u32 bgc_blk_sz:13
 
u32 reserved_E0_0:3
 
u32 app_tag_gen_mask:16
 
union {
   u16   bgctl
 
   struct {
      u16   crc_verify:1
 
      u16   app_tag_chk:1
 
      u16   ref_tag_chk:1
 
      u16   op:2
 
      u16   legacy:1
 
      u16   invert_crc_seed:1
 
      u16   ref_tag_gen:1
 
      u16   fixed_ref_tag:1
 
      u16   invert_crc:1
 
      u16   app_ref_f_detect:1
 
      u16   uninit_dif_check_err:1
 
      u16   uninit_dif_bypass:1
 
      u16   app_f_detect:1
 
      u16   reserved_0:2
 
   }   bgctl_f
 
}; 
 
u16 app_tag_verify_mask
 
u32 blk_guard_err:8
 
u32 reserved_E8_0:24
 
u32 ref_tag_seed_gen
 
u32 intermediate_crc_valid_snapshot:16
 
u32 reserved_F0_0:16
 
u32 reference_tag_seed_for_verify_function_snapshot
 
u32 snapshot_of_reserved_dword_DC_of_tc
 
u32 reference_tag_seed_for_generate_function_snapshot
 

Detailed Description

struct scu_task_context - This structure defines the contents of the SCU silicon task context. It lays out all of the fields according to the expected order and location for the Storage Controller unit.

Definition at line 537 of file scu_task_context.h.

Field Documentation

union { ... }
u32 abort

For a normal task request this must be set to 0. If this is an abort of this task request it must be set to 1.

Definition at line 593 of file scu_task_context.h.

u32 active_sgl_element

Definition at line 873 of file scu_task_context.h.

u32 active_sgl_element_pair

Definition at line 893 of file scu_task_context.h.

u32 address_modifier

This field is the address modifier for this io request it should be programmed with the virtual function that is making the request.

Definition at line 727 of file scu_task_context.h.

u16 app_f_detect

Definition at line 936 of file scu_task_context.h.

u16 app_ref_f_detect

Definition at line 933 of file scu_task_context.h.

u16 app_tag_chk

Definition at line 925 of file scu_task_context.h.

u32 app_tag_gen

Definition at line 904 of file scu_task_context.h.

u32 app_tag_gen_mask

Definition at line 918 of file scu_task_context.h.

u32 app_tag_verify

Definition at line 903 of file scu_task_context.h.

u16 app_tag_verify_mask

Definition at line 941 of file scu_task_context.h.

u32 bgc_blk_sz

Definition at line 916 of file scu_task_context.h.

u16 bgctl

Definition at line 922 of file scu_task_context.h.

struct { ... } bgctl_f
u32 blk_guard_err

Definition at line 944 of file scu_task_context.h.

u32 blk_prot_en

Definition at line 869 of file scu_task_context.h.

u32 blk_prot_func

Definition at line 871 of file scu_task_context.h.

u32 blk_sz

Definition at line 870 of file scu_task_context.h.

u32 block_guard_enable

This field should be set to true when block guard is to be enabled

Definition at line 715 of file scu_task_context.h.

u32 command_code

This field is programmsed with one of the following SCU_COMMAND_CODE

  • SCU_COMMAND_CODE_INITIATOR_NEW_TASK
  • SCU_COMMAND_CODE_ACTIVE_TASK
  • SCU_COMMAND_CODE_PRIMITIVE_SEQ_TASK
  • SCU_COMMAND_CODE_TARGET_RAW_FRAMES

Definition at line 631 of file scu_task_context.h.

u32 command_iu_lower

This field is the lower 32 bits of the 64 bit physical address of the command iu buffer

Definition at line 803 of file scu_task_context.h.

u32 command_iu_upper

This field is the upper 32 bits of the 64 bit physical address of the command iu buffer

Definition at line 797 of file scu_task_context.h.

u32 connection_rate

This field must be set to one of the valid connection rates valid values are 0x8, 0x9, and 0xA.

Definition at line 557 of file scu_task_context.h.

u32 context_type

This field must be set to SCU_TASK_CONTEXT_TYPE

Definition at line 603 of file scu_task_context.h.

u32 control_frame

This field indicates the type of endianess to be utilized for the frame. command, task, and response frames utilized control_frame set to 1.

Definition at line 694 of file scu_task_context.h.

u16 crc_verify

Definition at line 924 of file scu_task_context.h.

u32 DIF_bytes_immed_val

Definition at line 912 of file scu_task_context.h.

u32 dma_ssp_target_good_response

This is field specifies if the SCU DMAs a response frame to host memory for good response frames when operating in target mode.

Definition at line 676 of file scu_task_context.h.

u32 do_not_dma_ssp_good_response

This field indicates if the SCU should DMA the response frame to host memory.

Definition at line 682 of file scu_task_context.h.

u16 fixed_ref_tag

Definition at line 931 of file scu_task_context.h.

u32 frame_buffer_offset

Definition at line 876 of file scu_task_context.h.

u32 init_crc_seed

Definition at line 900 of file scu_task_context.h.

u32 initiator_request

This field must be set to true if this is an initiator generated request. Until target mode is supported all task requests are initiator requests.

Definition at line 551 of file scu_task_context.h.

u32 interm_crc_val

Definition at line 899 of file scu_task_context.h.

u32 intermediate_crc_valid_snapshot

Definition at line 951 of file scu_task_context.h.

u16 invert_crc

Definition at line 932 of file scu_task_context.h.

u16 invert_crc_seed

Definition at line 929 of file scu_task_context.h.

u16 legacy

Definition at line 928 of file scu_task_context.h.

u32 link_layer_control

This field is reserved and the must be set to 0x00

Definition at line 665 of file scu_task_context.h.

u32 logical_port_index

This field must contain the logical port for the task request.

Definition at line 568 of file scu_task_context.h.

u32 mirror_request_enable

This field must be set to true if the mirrored request processing is to be enabled.

Definition at line 749 of file scu_task_context.h.

u32 mirrored_logical_port

If this is a mirrored request the logical port index for the mirrored RNi must be programmed.

Definition at line 738 of file scu_task_context.h.

u32 mirrored_node_index

This field is programmed if this is a mirrored request, which we are not using, in which case it is the RNi for the mirrored target.

Definition at line 615 of file scu_task_context.h.

u32 mirrored_protocol_engine
Todo:
What we support mirrored SMP response frame?

Definition at line 732 of file scu_task_context.h.

Definition at line 927 of file scu_task_context.h.

u32 payload_data_transfer_error

Definition at line 875 of file scu_task_context.h.

u32 previous_extended_tag

This field is used during initiator write TLR

Definition at line 834 of file scu_task_context.h.

u32 priority

This field must be encoded to one of the valid SCU task priority values

  • SCU_TASK_PRIORITY_NORMAL
  • SCU_TASK_PRIORITY_HEAD_OF_Q
  • SCU_TASK_PRIORITY_HIGH

Definition at line 545 of file scu_task_context.h.

u32 protocol_engine_index

This field muse be programed when generating an SMP response since the SMP connection remains open until the SMP response is generated.

Definition at line 563 of file scu_task_context.h.

u32 protocol_type

This field must be set to one of the SCU_TASK_CONTEXT_PROTOCOL values

  • SCU_TASK_CONTEXT_PROTOCOL_SMP
  • SCU_TASK_CONTEXT_PROTOCOL_SSP
  • SCU_TASK_CONTEXT_PROTOCOL_STP
  • SCU_TASK_CONTEXT_PROTOCOL_NONE

Definition at line 577 of file scu_task_context.h.

u32 pts_control_reserved

This field is reserved and the driver should set it to 0x00

Definition at line 710 of file scu_task_context.h.

u16 ref_tag_chk

Definition at line 926 of file scu_task_context.h.

u16 ref_tag_gen

Definition at line 930 of file scu_task_context.h.

u32 ref_tag_seed_gen

Definition at line 948 of file scu_task_context.h.

u32 ref_tag_seed_verify

Definition at line 907 of file scu_task_context.h.

u32 reference_tag_seed_for_generate_function_snapshot

Definition at line 961 of file scu_task_context.h.

u32 reference_tag_seed_for_verify_function_snapshot

Definition at line 955 of file scu_task_context.h.

u32 remote_node_index

This field contains the RNi that is the target of this request.

Definition at line 609 of file scu_task_context.h.

u16 reserved_0

Definition at line 937 of file scu_task_context.h.

u32 reserved_00_0

This field is reserved and must be set to 0x00

Definition at line 587 of file scu_task_context.h.

u32 reserved_0C_0

This field is reserved and the driver must set it to 0x00

Definition at line 743 of file scu_task_context.h.

u32 reserved_10_0

This field is reserved and the driver must set it to 0x00

Definition at line 766 of file scu_task_context.h.

u32 reserved_14_0

This field is reserved and the driver should set it to 0x00

Definition at line 784 of file scu_task_context.h.

u32 reserved_40_1

This field is reserved and the driver must set it to 0x00

Definition at line 844 of file scu_task_context.h.

u32 reserved_40_2

This field is reserved and the driver must set it to 0x00

Definition at line 860 of file scu_task_context.h.

u32 reserved_5C_0

Definition at line 872 of file scu_task_context.h.

u32 reserved_C4_CC[3]

Definition at line 896 of file scu_task_context.h.

u32 reserved_DC_0

Definition at line 911 of file scu_task_context.h.

u32 reserved_DC_1

Definition at line 913 of file scu_task_context.h.

u32 reserved_E0_0

Definition at line 917 of file scu_task_context.h.

u32 reserved_E8_0

Definition at line 945 of file scu_task_context.h.

u32 reserved_F0_0

Definition at line 952 of file scu_task_context.h.

u32 response_iu_lower

This field is the lower 32 bits of the 64 bit physical address of the response iu buffer

Definition at line 816 of file scu_task_context.h.

u32 response_iu_upper

This field is the upper 32 bits of the 64 bit physical address of the response iu buffer

Definition at line 810 of file scu_task_context.h.

u32 sata_direction

This field is programmed with the direction of the SATA reqeust

  • SCU_SATA_WRITE_DATA_DIRECTION
  • SCU_SATA_READ_DATA_DIRECTION

Definition at line 622 of file scu_task_context.h.

u32 sdma_control_reserved

This field is reserved and the driver should set to 0x00

Definition at line 720 of file scu_task_context.h.

u32 sgl_exhausted

Definition at line 874 of file scu_task_context.h.

This field is the first SGL element pair found in the TC data structure.

Definition at line 882 of file scu_task_context.h.

This field is the second SGL element pair found in the TC data structure.

Definition at line 887 of file scu_task_context.h.

struct scu_sgl_element_pair sgl_snapshot_ac

Definition at line 890 of file scu_task_context.h.

Definition at line 866 of file scu_task_context.h.

u32 snapshot_of_reserved_dword_DC_of_tc

Definition at line 958 of file scu_task_context.h.

u32 ssp_command_iu_length

This field is the command iu length in dwords

Definition at line 755 of file scu_task_context.h.

u32 ssp_max_burst_size

This is the maximum burst size that the SCU hardware will send in one connection its value is (N x 512) and N must be a multiple of 2. If the value is 0x00 then maximum burst size is disabled.

Definition at line 773 of file scu_task_context.h.

u32 ssp_tlr_enable

This field is set to true when TLR is to be enabled

Definition at line 670 of file scu_task_context.h.

u32 ssp_tlr_threshold

This field is used by the SCU TL to determine when to take a snapshot when tranmitting read data frames.

  • 0x00 The entire IO
  • 0x01 32k
  • 0x02 64k
  • 0x04 128k
  • 0x08 256k

Definition at line 855 of file scu_task_context.h.

u32 stp_retry_count

This field is set the maximum number of retries for a STP non-data FIS

Definition at line 839 of file scu_task_context.h.

u32 strict_ordering

This field is set to true when strict ordering is to be enabled

Definition at line 687 of file scu_task_context.h.

u32 suspend_node

This field is set to true if the remote node should be suspended. This bit is only valid for SSP & SMP target devices.

Definition at line 637 of file scu_task_context.h.

u32 task_index

This filed must be set to the TCi allocated for this task

Definition at line 582 of file scu_task_context.h.

u32 task_phase

This field is set to the task phase of the SCU hardware. The driver must set this to 0x01

Definition at line 823 of file scu_task_context.h.

u32 task_status

This field is set to the transport layer task status. The driver must set this to 0x00

Definition at line 829 of file scu_task_context.h.

u32 task_type

This field is programmed with one of the following command type codes

For SAS requests use the scu_ssp_task_type

  • SCU_TASK_TYPE_IOREAD
  • SCU_TASK_TYPE_IOWRITE
  • SCU_TASK_TYPE_SMP_REQUEST
  • SCU_TASK_TYPE_RESPONSE
  • SCU_TASK_TYPE_RAW_FRAME
  • SCU_TASK_TYPE_PRIMITIVE

For SATA requests use the scu_sata_task_type

  • SCU_TASK_TYPE_DMA_IN
  • SCU_TASK_TYPE_FPDMAQ_READ
  • SCU_TASK_TYPE_PACKET_DMA_IN
  • SCU_TASK_TYPE_SATA_RAW_FRAME
  • SCU_TASK_TYPE_DMA_OUT
  • SCU_TASK_TYPE_FPDMAQ_WRITE
  • SCU_TASK_TYPE_PACKET_DMA_OUT

Definition at line 659 of file scu_task_context.h.

u32 timeout_enable

This field is set to true when the SCU hardware task timeout control is to be enabled

Definition at line 705 of file scu_task_context.h.

u32 tl_control_reserved

This field is reserved and the driver should set to 0x00

Definition at line 699 of file scu_task_context.h.

u32 transfer_length_bytes

This filed is set to the number of bytes to be transfered in the request.

Definition at line 779 of file scu_task_context.h.

This union provides for the protocol specif part of the SCU Task Context.

Definition at line 790 of file scu_task_context.h.

u32 UD_bytes_immed_val

Definition at line 910 of file scu_task_context.h.

u16 uninit_dif_bypass

Definition at line 935 of file scu_task_context.h.

u16 uninit_dif_check_err

Definition at line 934 of file scu_task_context.h.

u32 valid

This field must be set to true for the SCU hardware to process the task.

Definition at line 598 of file scu_task_context.h.

u32 write_data_length

Definition at line 863 of file scu_task_context.h.

u32 xfer_ready_tlr_enable

This is the target TLR enable bit it must be set to 0 when creatning the task context.

Definition at line 761 of file scu_task_context.h.


The documentation for this struct was generated from the following file: