diff options
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_nx.h')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_nx.h | 255 |
1 files changed, 253 insertions, 2 deletions
diff --git a/drivers/scsi/qla2xxx/qla_nx.h b/drivers/scsi/qla2xxx/qla_nx.h index 8a21832c6693..57820c199bc2 100644 --- a/drivers/scsi/qla2xxx/qla_nx.h +++ b/drivers/scsi/qla2xxx/qla_nx.h | |||
@@ -484,8 +484,6 @@ | |||
484 | #define QLA82XX_ADDR_OCM1 (0x0000000200400000ULL) | 484 | #define QLA82XX_ADDR_OCM1 (0x0000000200400000ULL) |
485 | #define QLA82XX_ADDR_OCM1_MAX (0x00000002004fffffULL) | 485 | #define QLA82XX_ADDR_OCM1_MAX (0x00000002004fffffULL) |
486 | #define QLA82XX_ADDR_QDR_NET (0x0000000300000000ULL) | 486 | #define QLA82XX_ADDR_QDR_NET (0x0000000300000000ULL) |
487 | |||
488 | #define QLA82XX_P2_ADDR_QDR_NET_MAX (0x00000003001fffffULL) | ||
489 | #define QLA82XX_P3_ADDR_QDR_NET_MAX (0x0000000303ffffffULL) | 487 | #define QLA82XX_P3_ADDR_QDR_NET_MAX (0x0000000303ffffffULL) |
490 | 488 | ||
491 | #define QLA82XX_PCI_CRBSPACE (unsigned long)0x06000000 | 489 | #define QLA82XX_PCI_CRBSPACE (unsigned long)0x06000000 |
@@ -890,6 +888,7 @@ struct ct6_dsd { | |||
890 | }; | 888 | }; |
891 | 889 | ||
892 | #define MBC_TOGGLE_INTERRUPT 0x10 | 890 | #define MBC_TOGGLE_INTERRUPT 0x10 |
891 | #define MBC_SET_LED_CONFIG 0x125 | ||
893 | 892 | ||
894 | /* Flash offset */ | 893 | /* Flash offset */ |
895 | #define FLT_REG_BOOTLOAD_82XX 0x72 | 894 | #define FLT_REG_BOOTLOAD_82XX 0x72 |
@@ -922,4 +921,256 @@ struct ct6_dsd { | |||
922 | #define M25P_INSTR_DP 0xb9 | 921 | #define M25P_INSTR_DP 0xb9 |
923 | #define M25P_INSTR_RES 0xab | 922 | #define M25P_INSTR_RES 0xab |
924 | 923 | ||
924 | /* Minidump related */ | ||
925 | |||
926 | /* | ||
927 | * Version of the template | ||
928 | * 4 Bytes | ||
929 | * X.Major.Minor.RELEASE | ||
930 | */ | ||
931 | #define QLA82XX_MINIDUMP_VERSION 0x10101 | ||
932 | |||
933 | /* | ||
934 | * Entry Type Defines | ||
935 | */ | ||
936 | #define QLA82XX_RDNOP 0 | ||
937 | #define QLA82XX_RDCRB 1 | ||
938 | #define QLA82XX_RDMUX 2 | ||
939 | #define QLA82XX_QUEUE 3 | ||
940 | #define QLA82XX_BOARD 4 | ||
941 | #define QLA82XX_RDSRE 5 | ||
942 | #define QLA82XX_RDOCM 6 | ||
943 | #define QLA82XX_CACHE 10 | ||
944 | #define QLA82XX_L1DAT 11 | ||
945 | #define QLA82XX_L1INS 12 | ||
946 | #define QLA82XX_L2DTG 21 | ||
947 | #define QLA82XX_L2ITG 22 | ||
948 | #define QLA82XX_L2DAT 23 | ||
949 | #define QLA82XX_L2INS 24 | ||
950 | #define QLA82XX_RDROM 71 | ||
951 | #define QLA82XX_RDMEM 72 | ||
952 | #define QLA82XX_CNTRL 98 | ||
953 | #define QLA82XX_TLHDR 99 | ||
954 | #define QLA82XX_RDEND 255 | ||
955 | |||
956 | /* | ||
957 | * Opcodes for Control Entries. | ||
958 | * These Flags are bit fields. | ||
959 | */ | ||
960 | #define QLA82XX_DBG_OPCODE_WR 0x01 | ||
961 | #define QLA82XX_DBG_OPCODE_RW 0x02 | ||
962 | #define QLA82XX_DBG_OPCODE_AND 0x04 | ||
963 | #define QLA82XX_DBG_OPCODE_OR 0x08 | ||
964 | #define QLA82XX_DBG_OPCODE_POLL 0x10 | ||
965 | #define QLA82XX_DBG_OPCODE_RDSTATE 0x20 | ||
966 | #define QLA82XX_DBG_OPCODE_WRSTATE 0x40 | ||
967 | #define QLA82XX_DBG_OPCODE_MDSTATE 0x80 | ||
968 | |||
969 | /* | ||
970 | * Template Header and Entry Header definitions start here. | ||
971 | */ | ||
972 | |||
973 | /* | ||
974 | * Template Header | ||
975 | * Parts of the template header can be modified by the driver. | ||
976 | * These include the saved_state_array, capture_debug_level, driver_timestamp | ||
977 | */ | ||
978 | |||
979 | #define QLA82XX_DBG_STATE_ARRAY_LEN 16 | ||
980 | #define QLA82XX_DBG_CAP_SIZE_ARRAY_LEN 8 | ||
981 | #define QLA82XX_DBG_RSVD_ARRAY_LEN 8 | ||
982 | |||
983 | /* | ||
984 | * Driver Flags | ||
985 | */ | ||
986 | #define QLA82XX_DBG_SKIPPED_FLAG 0x80 /* driver skipped this entry */ | ||
987 | #define QLA82XX_DEFAULT_CAP_MASK 0xFF /* default capture mask */ | ||
988 | |||
989 | struct qla82xx_md_template_hdr { | ||
990 | uint32_t entry_type; | ||
991 | uint32_t first_entry_offset; | ||
992 | uint32_t size_of_template; | ||
993 | uint32_t capture_debug_level; | ||
994 | |||
995 | uint32_t num_of_entries; | ||
996 | uint32_t version; | ||
997 | uint32_t driver_timestamp; | ||
998 | uint32_t template_checksum; | ||
999 | |||
1000 | uint32_t driver_capture_mask; | ||
1001 | uint32_t driver_info[3]; | ||
1002 | |||
1003 | uint32_t saved_state_array[QLA82XX_DBG_STATE_ARRAY_LEN]; | ||
1004 | uint32_t capture_size_array[QLA82XX_DBG_CAP_SIZE_ARRAY_LEN]; | ||
1005 | |||
1006 | /* markers_array used to capture some special locations on board */ | ||
1007 | uint32_t markers_array[QLA82XX_DBG_RSVD_ARRAY_LEN]; | ||
1008 | uint32_t num_of_free_entries; /* For internal use */ | ||
1009 | uint32_t free_entry_offset; /* For internal use */ | ||
1010 | uint32_t total_table_size; /* For internal use */ | ||
1011 | uint32_t bkup_table_offset; /* For internal use */ | ||
1012 | } __packed; | ||
1013 | |||
1014 | /* | ||
1015 | * Entry Header: Common to All Entry Types | ||
1016 | */ | ||
1017 | |||
1018 | /* | ||
1019 | * Driver Code is for driver to write some info about the entry. | ||
1020 | * Currently not used. | ||
1021 | */ | ||
1022 | typedef struct qla82xx_md_entry_hdr { | ||
1023 | uint32_t entry_type; | ||
1024 | uint32_t entry_size; | ||
1025 | uint32_t entry_capture_size; | ||
1026 | struct { | ||
1027 | uint8_t entry_capture_mask; | ||
1028 | uint8_t entry_code; | ||
1029 | uint8_t driver_code; | ||
1030 | uint8_t driver_flags; | ||
1031 | } d_ctrl; | ||
1032 | } __packed qla82xx_md_entry_hdr_t; | ||
1033 | |||
1034 | /* | ||
1035 | * Read CRB entry header | ||
1036 | */ | ||
1037 | struct qla82xx_md_entry_crb { | ||
1038 | qla82xx_md_entry_hdr_t h; | ||
1039 | uint32_t addr; | ||
1040 | struct { | ||
1041 | uint8_t addr_stride; | ||
1042 | uint8_t state_index_a; | ||
1043 | uint16_t poll_timeout; | ||
1044 | } crb_strd; | ||
1045 | |||
1046 | uint32_t data_size; | ||
1047 | uint32_t op_count; | ||
1048 | |||
1049 | struct { | ||
1050 | uint8_t opcode; | ||
1051 | uint8_t state_index_v; | ||
1052 | uint8_t shl; | ||
1053 | uint8_t shr; | ||
1054 | } crb_ctrl; | ||
1055 | |||
1056 | uint32_t value_1; | ||
1057 | uint32_t value_2; | ||
1058 | uint32_t value_3; | ||
1059 | } __packed; | ||
1060 | |||
1061 | /* | ||
1062 | * Cache entry header | ||
1063 | */ | ||
1064 | struct qla82xx_md_entry_cache { | ||
1065 | qla82xx_md_entry_hdr_t h; | ||
1066 | |||
1067 | uint32_t tag_reg_addr; | ||
1068 | struct { | ||
1069 | uint16_t tag_value_stride; | ||
1070 | uint16_t init_tag_value; | ||
1071 | } addr_ctrl; | ||
1072 | |||
1073 | uint32_t data_size; | ||
1074 | uint32_t op_count; | ||
1075 | |||
1076 | uint32_t control_addr; | ||
1077 | struct { | ||
1078 | uint16_t write_value; | ||
1079 | uint8_t poll_mask; | ||
1080 | uint8_t poll_wait; | ||
1081 | } cache_ctrl; | ||
1082 | |||
1083 | uint32_t read_addr; | ||
1084 | struct { | ||
1085 | uint8_t read_addr_stride; | ||
1086 | uint8_t read_addr_cnt; | ||
1087 | uint16_t rsvd_1; | ||
1088 | } read_ctrl; | ||
1089 | } __packed; | ||
1090 | |||
1091 | /* | ||
1092 | * Read OCM | ||
1093 | */ | ||
1094 | struct qla82xx_md_entry_rdocm { | ||
1095 | qla82xx_md_entry_hdr_t h; | ||
1096 | |||
1097 | uint32_t rsvd_0; | ||
1098 | uint32_t rsvd_1; | ||
1099 | uint32_t data_size; | ||
1100 | uint32_t op_count; | ||
1101 | |||
1102 | uint32_t rsvd_2; | ||
1103 | uint32_t rsvd_3; | ||
1104 | uint32_t read_addr; | ||
1105 | uint32_t read_addr_stride; | ||
1106 | uint32_t read_addr_cntrl; | ||
1107 | } __packed; | ||
1108 | |||
1109 | /* | ||
1110 | * Read Memory | ||
1111 | */ | ||
1112 | struct qla82xx_md_entry_rdmem { | ||
1113 | qla82xx_md_entry_hdr_t h; | ||
1114 | uint32_t rsvd[6]; | ||
1115 | uint32_t read_addr; | ||
1116 | uint32_t read_data_size; | ||
1117 | } __packed; | ||
1118 | |||
1119 | /* | ||
1120 | * Read ROM | ||
1121 | */ | ||
1122 | struct qla82xx_md_entry_rdrom { | ||
1123 | qla82xx_md_entry_hdr_t h; | ||
1124 | uint32_t rsvd[6]; | ||
1125 | uint32_t read_addr; | ||
1126 | uint32_t read_data_size; | ||
1127 | } __packed; | ||
1128 | |||
1129 | struct qla82xx_md_entry_mux { | ||
1130 | qla82xx_md_entry_hdr_t h; | ||
1131 | |||
1132 | uint32_t select_addr; | ||
1133 | uint32_t rsvd_0; | ||
1134 | uint32_t data_size; | ||
1135 | uint32_t op_count; | ||
1136 | |||
1137 | uint32_t select_value; | ||
1138 | uint32_t select_value_stride; | ||
1139 | uint32_t read_addr; | ||
1140 | uint32_t rsvd_1; | ||
1141 | } __packed; | ||
1142 | |||
1143 | struct qla82xx_md_entry_queue { | ||
1144 | qla82xx_md_entry_hdr_t h; | ||
1145 | |||
1146 | uint32_t select_addr; | ||
1147 | struct { | ||
1148 | uint16_t queue_id_stride; | ||
1149 | uint16_t rsvd_0; | ||
1150 | } q_strd; | ||
1151 | |||
1152 | uint32_t data_size; | ||
1153 | uint32_t op_count; | ||
1154 | uint32_t rsvd_1; | ||
1155 | uint32_t rsvd_2; | ||
1156 | |||
1157 | uint32_t read_addr; | ||
1158 | struct { | ||
1159 | uint8_t read_addr_stride; | ||
1160 | uint8_t read_addr_cnt; | ||
1161 | uint16_t rsvd_3; | ||
1162 | } rd_strd; | ||
1163 | } __packed; | ||
1164 | |||
1165 | #define MBC_DIAGNOSTIC_MINIDUMP_TEMPLATE 0x129 | ||
1166 | #define RQST_TMPLT_SIZE 0x0 | ||
1167 | #define RQST_TMPLT 0x1 | ||
1168 | #define MD_DIRECT_ROM_WINDOW 0x42110030 | ||
1169 | #define MD_DIRECT_ROM_READ_BASE 0x42150000 | ||
1170 | #define MD_MIU_TEST_AGT_CTRL 0x41000090 | ||
1171 | #define MD_MIU_TEST_AGT_ADDR_LO 0x41000094 | ||
1172 | #define MD_MIU_TEST_AGT_ADDR_HI 0x41000098 | ||
1173 | |||
1174 | static const int MD_MIU_TEST_AGT_RDDATA[] = { 0x410000A8, 0x410000AC, | ||
1175 | 0x410000B8, 0x410000BC }; | ||
925 | #endif | 1176 | #endif |