aic94xx_seq.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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 <[email protected]>
  7. */
  8. #ifndef _AIC94XX_SEQ_H_
  9. #define _AIC94XX_SEQ_H_
  10. #define CSEQ_NUM_VECS 3
  11. #define LSEQ_NUM_VECS 11
  12. #define SAS_RAZOR_SEQUENCER_FW_FILE "aic94xx-seq.fw"
  13. #define SAS_RAZOR_SEQUENCER_FW_MAJOR 1
  14. /* Note: All quantites in the sequencer file are little endian */
  15. struct sequencer_file_header {
  16. /* Checksum of the entire contents of the sequencer excluding
  17. * these four bytes */
  18. u32 csum;
  19. /* numeric major version */
  20. u32 major;
  21. /* numeric minor version */
  22. u32 minor;
  23. /* version string printed by driver */
  24. char version[16];
  25. u32 cseq_table_offset;
  26. u32 cseq_table_size;
  27. u32 lseq_table_offset;
  28. u32 lseq_table_size;
  29. u32 cseq_code_offset;
  30. u32 cseq_code_size;
  31. u32 lseq_code_offset;
  32. u32 lseq_code_size;
  33. u16 mode2_task;
  34. u16 cseq_idle_loop;
  35. u16 lseq_idle_loop;
  36. } __attribute__((packed));
  37. #ifdef __KERNEL__
  38. int asd_init_seqs(struct asd_ha_struct *asd_ha);
  39. int asd_start_seqs(struct asd_ha_struct *asd_ha);
  40. int asd_release_firmware(void);
  41. void asd_update_port_links(struct asd_ha_struct *asd_ha, struct asd_phy *phy);
  42. #endif
  43. #endif