cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

mpi30_init.h (5566B)


      1/* SPDX-License-Identifier: GPL-2.0-or-later */
      2/*
      3 *  Copyright 2016-2021 Broadcom Inc. All rights reserved.
      4 *
      5 */
      6#ifndef MPI30_INIT_H
      7#define MPI30_INIT_H     1
      8struct mpi3_scsi_io_cdb_eedp32 {
      9	u8                 cdb[20];
     10	__be32          primary_reference_tag;
     11	__le16             primary_application_tag;
     12	__le16             primary_application_tag_mask;
     13	__le32             transfer_length;
     14};
     15
     16union mpi3_scsi_io_cdb_union {
     17	u8                         cdb32[32];
     18	struct mpi3_scsi_io_cdb_eedp32 eedp32;
     19	struct mpi3_sge_common         sge;
     20};
     21
     22struct mpi3_scsi_io_request {
     23	__le16                     host_tag;
     24	u8                         ioc_use_only02;
     25	u8                         function;
     26	__le16                     ioc_use_only04;
     27	u8                         ioc_use_only06;
     28	u8                         msg_flags;
     29	__le16                     change_count;
     30	__le16                     dev_handle;
     31	__le32                     flags;
     32	__le32                     skip_count;
     33	__le32                     data_length;
     34	u8                         lun[8];
     35	union mpi3_scsi_io_cdb_union  cdb;
     36	union mpi3_sge_union          sgl[4];
     37};
     38
     39#define MPI3_SCSIIO_MSGFLAGS_METASGL_VALID                  (0x80)
     40#define MPI3_SCSIIO_MSGFLAGS_DIVERT_TO_FIRMWARE             (0x40)
     41#define MPI3_SCSIIO_FLAGS_LARGE_CDB                         (0x60000000)
     42#define MPI3_SCSIIO_FLAGS_CDB_16_OR_LESS                    (0x00000000)
     43#define MPI3_SCSIIO_FLAGS_CDB_GREATER_THAN_16               (0x20000000)
     44#define MPI3_SCSIIO_FLAGS_CDB_IN_SEPARATE_BUFFER            (0x40000000)
     45#define MPI3_SCSIIO_FLAGS_TASKATTRIBUTE_MASK                (0x07000000)
     46#define MPI3_SCSIIO_FLAGS_TASKATTRIBUTE_SIMPLEQ             (0x00000000)
     47#define MPI3_SCSIIO_FLAGS_TASKATTRIBUTE_HEADOFQ             (0x01000000)
     48#define MPI3_SCSIIO_FLAGS_TASKATTRIBUTE_ORDEREDQ            (0x02000000)
     49#define MPI3_SCSIIO_FLAGS_TASKATTRIBUTE_ACAQ                (0x04000000)
     50#define MPI3_SCSIIO_FLAGS_CMDPRI_MASK                       (0x00f00000)
     51#define MPI3_SCSIIO_FLAGS_CMDPRI_SHIFT                      (20)
     52#define MPI3_SCSIIO_FLAGS_DATADIRECTION_MASK                (0x000c0000)
     53#define MPI3_SCSIIO_FLAGS_DATADIRECTION_NO_DATA_TRANSFER    (0x00000000)
     54#define MPI3_SCSIIO_FLAGS_DATADIRECTION_WRITE               (0x00040000)
     55#define MPI3_SCSIIO_FLAGS_DATADIRECTION_READ                (0x00080000)
     56#define MPI3_SCSIIO_FLAGS_DMAOPERATION_MASK                 (0x00030000)
     57#define MPI3_SCSIIO_FLAGS_DMAOPERATION_HOST_PI              (0x00010000)
     58#define MPI3_SCSIIO_FLAGS_DIVERT_REASON_MASK                (0x000000f0)
     59#define MPI3_SCSIIO_FLAGS_DIVERT_REASON_IO_THROTTLING       (0x00000010)
     60#define MPI3_SCSIIO_FLAGS_DIVERT_REASON_PROD_SPECIFIC       (0x00000080)
     61#define MPI3_SCSIIO_METASGL_INDEX                           (3)
     62struct mpi3_scsi_io_reply {
     63	__le16                     host_tag;
     64	u8                         ioc_use_only02;
     65	u8                         function;
     66	__le16                     ioc_use_only04;
     67	u8                         ioc_use_only06;
     68	u8                         msg_flags;
     69	__le16                     ioc_use_only08;
     70	__le16                     ioc_status;
     71	__le32                     ioc_log_info;
     72	u8                         scsi_status;
     73	u8                         scsi_state;
     74	__le16                     dev_handle;
     75	__le32                     transfer_count;
     76	__le32                     sense_count;
     77	__le32                     response_data;
     78	__le16                     task_tag;
     79	__le16                     scsi_status_qualifier;
     80	__le32                     eedp_error_offset;
     81	__le16                     eedp_observed_app_tag;
     82	__le16                     eedp_observed_guard;
     83	__le32                     eedp_observed_ref_tag;
     84	__le64                     sense_data_buffer_address;
     85};
     86
     87#define MPI3_SCSIIO_REPLY_MSGFLAGS_REFTAG_OBSERVED_VALID        (0x01)
     88#define MPI3_SCSIIO_REPLY_MSGFLAGS_APPTAG_OBSERVED_VALID        (0x02)
     89#define MPI3_SCSIIO_REPLY_MSGFLAGS_GUARD_OBSERVED_VALID         (0x04)
     90#define MPI3_SCSI_STATUS_GOOD                   (0x00)
     91#define MPI3_SCSI_STATUS_CHECK_CONDITION        (0x02)
     92#define MPI3_SCSI_STATUS_CONDITION_MET          (0x04)
     93#define MPI3_SCSI_STATUS_BUSY                   (0x08)
     94#define MPI3_SCSI_STATUS_INTERMEDIATE           (0x10)
     95#define MPI3_SCSI_STATUS_INTERMEDIATE_CONDMET   (0x14)
     96#define MPI3_SCSI_STATUS_RESERVATION_CONFLICT   (0x18)
     97#define MPI3_SCSI_STATUS_COMMAND_TERMINATED     (0x22)
     98#define MPI3_SCSI_STATUS_TASK_SET_FULL          (0x28)
     99#define MPI3_SCSI_STATUS_ACA_ACTIVE             (0x30)
    100#define MPI3_SCSI_STATUS_TASK_ABORTED           (0x40)
    101#define MPI3_SCSI_STATE_SENSE_MASK              (0x03)
    102#define MPI3_SCSI_STATE_SENSE_VALID             (0x00)
    103#define MPI3_SCSI_STATE_SENSE_FAILED            (0x01)
    104#define MPI3_SCSI_STATE_SENSE_BUFF_Q_EMPTY      (0x02)
    105#define MPI3_SCSI_STATE_SENSE_NOT_AVAILABLE     (0x03)
    106#define MPI3_SCSI_STATE_NO_SCSI_STATUS          (0x04)
    107#define MPI3_SCSI_STATE_TERMINATED              (0x08)
    108#define MPI3_SCSI_STATE_RESPONSE_DATA_VALID     (0x10)
    109#define MPI3_SCSI_RSP_RESPONSECODE_MASK         (0x000000ff)
    110#define MPI3_SCSI_RSP_RESPONSECODE_SHIFT        (0)
    111#define MPI3_SCSI_RSP_ARI2_MASK                 (0x0000ff00)
    112#define MPI3_SCSI_RSP_ARI2_SHIFT                (8)
    113#define MPI3_SCSI_RSP_ARI1_MASK                 (0x00ff0000)
    114#define MPI3_SCSI_RSP_ARI1_SHIFT                (16)
    115#define MPI3_SCSI_RSP_ARI0_MASK                 (0xff000000)
    116#define MPI3_SCSI_RSP_ARI0_SHIFT                (24)
    117#define MPI3_SCSI_TASKTAG_UNKNOWN               (0xffff)
    118#endif