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