1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Aic94xx SAS/SATA driver sequencer interface header file. 4 * 5 * Copyright (C) 2005 Adaptec, Inc. All rights reserved. 6 * Copyright (C) 2005 Luben Tuikov <luben_tuikov@adaptec.com> 7 */ 8 9 #ifndef _AIC94XX_SEQ_H_ 10 #define _AIC94XX_SEQ_H_ 11 12 #define CSEQ_NUM_VECS 3 13 #define LSEQ_NUM_VECS 11 14 15 #define SAS_RAZOR_SEQUENCER_FW_FILE "aic94xx-seq.fw" 16 #define SAS_RAZOR_SEQUENCER_FW_MAJOR 1 17 18 /* Note: All quantites in the sequencer file are little endian */ 19 struct sequencer_file_header { 20 /* Checksum of the entire contents of the sequencer excluding 21 * these four bytes */ 22 u32 csum; 23 /* numeric major version */ 24 u32 major; 25 /* numeric minor version */ 26 u32 minor; 27 /* version string printed by driver */ 28 char version[16]; 29 u32 cseq_table_offset; 30 u32 cseq_table_size; 31 u32 lseq_table_offset; 32 u32 lseq_table_size; 33 u32 cseq_code_offset; 34 u32 cseq_code_size; 35 u32 lseq_code_offset; 36 u32 lseq_code_size; 37 u16 mode2_task; 38 u16 cseq_idle_loop; 39 u16 lseq_idle_loop; 40 } __attribute__((packed)); 41 42 #ifdef __KERNEL__ 43 int asd_init_seqs(struct asd_ha_struct *asd_ha); 44 int asd_start_seqs(struct asd_ha_struct *asd_ha); 45 int asd_release_firmware(void); 46 47 void asd_update_port_links(struct asd_ha_struct *asd_ha, struct asd_phy *phy); 48 #endif 49 50 #endif 51