1/* 2 * Aic94xx SAS/SATA driver sequencer interface header file. 3 * 4 * Copyright (C) 2005 Adaptec, Inc. All rights reserved. 5 * Copyright (C) 2005 Luben Tuikov <luben_tuikov@adaptec.com> 6 * 7 * This file is licensed under GPLv2. 8 * 9 * This file is part of the aic94xx driver. 10 * 11 * The aic94xx driver is free software; you can redistribute it and/or 12 * modify it under the terms of the GNU General Public License as 13 * published by the Free Software Foundation; version 2 of the 14 * License. 15 * 16 * The aic94xx driver is distributed in the hope that it will be useful, 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 19 * General Public License for more details. 20 * 21 * You should have received a copy of the GNU General Public License 22 * along with the aic94xx driver; if not, write to the Free Software 23 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 24 * 25 */ 26 27#ifndef _AIC94XX_SEQ_H_ 28#define _AIC94XX_SEQ_H_ 29 30#define CSEQ_NUM_VECS 3 31#define LSEQ_NUM_VECS 11 32 33#define SAS_RAZOR_SEQUENCER_FW_FILE "aic94xx-seq.fw" 34#define SAS_RAZOR_SEQUENCER_FW_MAJOR 1 35 36/* Note: All quantites in the sequencer file are little endian */ 37struct sequencer_file_header { 38 /* Checksum of the entire contents of the sequencer excluding 39 * these four bytes */ 40 u32 csum; 41 /* numeric major version */ 42 u32 major; 43 /* numeric minor version */ 44 u32 minor; 45 /* version string printed by driver */ 46 char version[16]; 47 u32 cseq_table_offset; 48 u32 cseq_table_size; 49 u32 lseq_table_offset; 50 u32 lseq_table_size; 51 u32 cseq_code_offset; 52 u32 cseq_code_size; 53 u32 lseq_code_offset; 54 u32 lseq_code_size; 55 u16 mode2_task; 56 u16 cseq_idle_loop; 57 u16 lseq_idle_loop; 58} __attribute__((packed)); 59 60#ifdef __KERNEL__ 61int asd_init_seqs(struct asd_ha_struct *asd_ha); 62int asd_start_seqs(struct asd_ha_struct *asd_ha); 63int asd_release_firmware(void); 64 65void asd_update_port_links(struct asd_ha_struct *asd_ha, struct asd_phy *phy); 66#endif 67 68#endif 69