aic94xx_seq.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. #ifndef _AIC94XX_SEQ_H_
  27. #define _AIC94XX_SEQ_H_
  28. #define CSEQ_NUM_VECS 3
  29. #define LSEQ_NUM_VECS 11
  30. #define SAS_RAZOR_SEQUENCER_FW_FILE "aic94xx-seq.fw"
  31. #define SAS_RAZOR_SEQUENCER_FW_MAJOR 1
  32. /* Note: All quantites in the sequencer file are little endian */
  33. struct sequencer_file_header {
  34. /* Checksum of the entire contents of the sequencer excluding
  35. * these four bytes */
  36. u32 csum;
  37. /* numeric major version */
  38. u32 major;
  39. /* numeric minor version */
  40. u32 minor;
  41. /* version string printed by driver */
  42. char version[16];
  43. u32 cseq_table_offset;
  44. u32 cseq_table_size;
  45. u32 lseq_table_offset;
  46. u32 lseq_table_size;
  47. u32 cseq_code_offset;
  48. u32 cseq_code_size;
  49. u32 lseq_code_offset;
  50. u32 lseq_code_size;
  51. u16 mode2_task;
  52. u16 cseq_idle_loop;
  53. u16 lseq_idle_loop;
  54. } __attribute__((packed));
  55. #ifdef __KERNEL__
  56. int asd_init_seqs(struct asd_ha_struct *asd_ha);
  57. int asd_start_seqs(struct asd_ha_struct *asd_ha);
  58. int asd_release_firmware(void);
  59. void asd_update_port_links(struct asd_ha_struct *asd_ha, struct asd_phy *phy);
  60. #endif
  61. #endif