linux/drivers/scsi/aic94xx/aic94xx_seq.h
<<
>>
Prefs
   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