~ubuntu-branches/ubuntu/trusty/linux-armadaxp/trusty

« back to all changes in this revision

Viewing changes to drivers/scsi/qla2xxx/qla_nx.h

  • Committer: Package Import Robot
  • Author(s): Michael Casadevall, Bryan Wu, Dann Frazier, Michael Casadeall
  • Date: 2012-03-10 15:00:54 UTC
  • mfrom: (1.1.1)
  • Revision ID: package-import@ubuntu.com-20120310150054-flugb39zon8vvgwe
Tags: 3.2.0-1600.1
[ Bryan Wu ]
* UBUNTU: import debian/debian.env and debian.armadaxp

[ Dann Frazier ]
* ARM: Armada XP: remove trailing '/' in dirnames in mvRules.mk

[ Michael Casadeall ]
* tools: add some tools for Marvell Armada XP processor
* kernel: timer tick hacking from Marvell
* kernel: Sheeva Errata: add delay on Sheeva when powering down
* net: add Marvell NFP netfilter
* net: socket and skb modifications made by Marvell
* miscdevice: add minor IDs for some Marvell Armada drivers
* fs: introduce memory pool for splice()
* video: EDID detection updates from Marvell Armada XP patchset
* video: backlight: add Marvell Dove LCD backlight driver
* video: display: add THS8200 display driver
* video: framebuffer: add Marvell Dove and Armada XP processor onchip LCD controller driver
* usbtest: add Interrupt transfer testing by Marvell Armada XP code
* usb: ehci: add support for Marvell EHCI controler
* tty/serial: 8250: add support for Marvell Armada XP processor and DeviceTree work
* rtc: add support for Marvell Armada XP onchip RTC controller
* net: pppoe: add Marvell ethernet NFP hook in PPPoE networking driver
* mtd: nand: add support for Marvell Armada XP Nand Flash Controller
* mtd: maps: add Marvell Armada XP specific map driver
* mmc: add support for Marvell Armada XP MMC/SD host controller
* i2c: add support for Marvell Armada XP onchip i2c bus controller
* hwmon: add Kconfig option for Armada XP onchip thermal sensor driver
* dmaengine: add Net DMA support for splice and update Marvell XOR DMA engine driver
* ata: add support for Marvell Armada XP SATA controller and update some quirks
* ARM: add Marvell Armada XP machine to mach-types
* ARM: oprofile: add support for Marvell PJ4B core
* ARM: mm: more ARMv6 switches for Marvell Armada XP
* ARM: remove static declaration to allow compilation
* ARM: alignment access fault trick
* ARM: mm: skip some fault fixing when run on NONE SMP ARMv6 mode during early abort event
* ARM: mm: add Marvell Sheeva CPU Architecture for PJ4B
* ARM: introduce optimized copy operation for Marvell Armada XP
* ARM: SAUCE: hardware breakpoint trick for Marvell Armada XP
* ARM: big endian and little endian tricks for Marvell Armada XP
* ARM: SAUCE: Add Marvell Armada XP build rules to arch/arm/kernel/Makefile
* ARM: vfp: add special handling for Marvell Armada XP
* ARM: add support for Marvell U-Boot
* ARM: add mv_controller_num for ARM PCI drivers
* ARM: add support for local PMUs, general SMP tweaks and cache flushing
* ARM: add Marvell device identifies in glue-proc.h
* ARM: add IPC driver support for Marvell platforms
* ARM: add DMA mapping for Marvell platforms
* ARM: add Sheeva errata and PJ4B code for booting
* ARM: update Kconfig and Makefile to include Marvell Armada XP platforms
* ARM: Armada XP: import LSP from Marvell for Armada XP 3.2 kernel enablement

Show diffs side-by-side

added added

removed removed

Lines of Context:
484
484
#define QLA82XX_ADDR_OCM1               (0x0000000200400000ULL)
485
485
#define QLA82XX_ADDR_OCM1_MAX           (0x00000002004fffffULL)
486
486
#define QLA82XX_ADDR_QDR_NET            (0x0000000300000000ULL)
487
 
 
488
 
#define QLA82XX_P2_ADDR_QDR_NET_MAX     (0x00000003001fffffULL)
489
487
#define QLA82XX_P3_ADDR_QDR_NET_MAX     (0x0000000303ffffffULL)
490
488
 
491
489
#define QLA82XX_PCI_CRBSPACE            (unsigned long)0x06000000
890
888
};
891
889
 
892
890
#define MBC_TOGGLE_INTERRUPT    0x10
 
891
#define MBC_SET_LED_CONFIG      0x125
893
892
 
894
893
/* Flash  offset */
895
894
#define FLT_REG_BOOTLOAD_82XX   0x72
922
921
#define M25P_INSTR_DP           0xb9
923
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 };
 
1176
 
 
1177
#define CRB_NIU_XG_PAUSE_CTL_P0        0x1
 
1178
#define CRB_NIU_XG_PAUSE_CTL_P1        0x8
 
1179
 
925
1180
#endif