arcmsr.h (1618c554b091b6c1745671c0a7836e398c0ccc4d) arcmsr.h (fa42a0bfa40342531df64873dcef74593702f4b3)
1/*
2********************************************************************************
3** OS : FreeBSD
4** FILE NAME : arcmsr.h
5** BY : Erich Chen, Ching Huang
6** Description: SCSI RAID Device Driver for
7** ARECA (ARC11XX/ARC12XX/ARC13XX/ARC16XX/ARC188x)
8** SATA/SAS RAID HOST Adapter

--- 136 unchanged lines hidden (view full) ---

145#define PCIDevVenIDARC1280 0x128017D3 /* Vendor Device ID */
146#define PCIDevVenIDARC1380 0x138017D3 /* Vendor Device ID */
147#define PCIDevVenIDARC1381 0x138117D3 /* Vendor Device ID */
148#define PCIDevVenIDARC1680 0x168017D3 /* Vendor Device ID */
149#define PCIDevVenIDARC1681 0x168117D3 /* Vendor Device ID */
150#define PCIDevVenIDARC1880 0x188017D3 /* Vendor Device ID */
151#define PCIDevVenIDARC1882 0x188217D3 /* Vendor Device ID */
152#define PCIDevVenIDARC1884 0x188417D3 /* Vendor Device ID */
1/*
2********************************************************************************
3** OS : FreeBSD
4** FILE NAME : arcmsr.h
5** BY : Erich Chen, Ching Huang
6** Description: SCSI RAID Device Driver for
7** ARECA (ARC11XX/ARC12XX/ARC13XX/ARC16XX/ARC188x)
8** SATA/SAS RAID HOST Adapter

--- 136 unchanged lines hidden (view full) ---

145#define PCIDevVenIDARC1280 0x128017D3 /* Vendor Device ID */
146#define PCIDevVenIDARC1380 0x138017D3 /* Vendor Device ID */
147#define PCIDevVenIDARC1381 0x138117D3 /* Vendor Device ID */
148#define PCIDevVenIDARC1680 0x168017D3 /* Vendor Device ID */
149#define PCIDevVenIDARC1681 0x168117D3 /* Vendor Device ID */
150#define PCIDevVenIDARC1880 0x188017D3 /* Vendor Device ID */
151#define PCIDevVenIDARC1882 0x188217D3 /* Vendor Device ID */
152#define PCIDevVenIDARC1884 0x188417D3 /* Vendor Device ID */
153#define PCIDevVenIDARC1886_ 0x188917D3 /* Vendor Device ID */
154#define PCIDevVenIDARC1886 0x188A17D3 /* Vendor Device ID */
153
154#ifndef PCIR_BARS
155 #define PCIR_BARS 0x10
156 #define PCIR_BAR(x) (PCIR_BARS + (x) * 4)
157#endif
158
159#define PCI_BASE_ADDR0 0x10
160#define PCI_BASE_ADDR1 0x14

--- 292 unchanged lines hidden (view full) ---

453#define ARCMSR_HBDMU_IOP2DRV_MESSAGE_CMD_DONE_CLEAR 0x02000000
454
455/*outbound list */
456#define ARCMSR_HBDMU_OUTBOUND_LIST_INTERRUPT 0x00000001
457#define ARCMSR_HBDMU_OUTBOUND_LIST_INTERRUPT_CLEAR 0x00000001
458
459/*ARCMSR_HBAMU_MESSAGE_FIRMWARE_OK*/
460#define ARCMSR_HBDMU_MESSAGE_FIRMWARE_OK 0x80000000
155
156#ifndef PCIR_BARS
157 #define PCIR_BARS 0x10
158 #define PCIR_BAR(x) (PCIR_BARS + (x) * 4)
159#endif
160
161#define PCI_BASE_ADDR0 0x10
162#define PCI_BASE_ADDR1 0x14

--- 292 unchanged lines hidden (view full) ---

455#define ARCMSR_HBDMU_IOP2DRV_MESSAGE_CMD_DONE_CLEAR 0x02000000
456
457/*outbound list */
458#define ARCMSR_HBDMU_OUTBOUND_LIST_INTERRUPT 0x00000001
459#define ARCMSR_HBDMU_OUTBOUND_LIST_INTERRUPT_CLEAR 0x00000001
460
461/*ARCMSR_HBAMU_MESSAGE_FIRMWARE_OK*/
462#define ARCMSR_HBDMU_MESSAGE_FIRMWARE_OK 0x80000000
461/*
463/*
462*******************************************************************************
463** SPEC. for Areca HBE adapter
464*******************************************************************************
465*/
466#define ARCMSR_SIGNATURE_1884 0x188417D3
467#define ARCMSR_HBEMU_OUTBOUND_DOORBELL_ISR 0x00000001
468#define ARCMSR_HBEMU_OUTBOUND_POSTQUEUE_ISR 0x00000008
469#define ARCMSR_HBEMU_ALL_INTMASKENABLE 0x00000009 /* disable all ISR */

--- 4 unchanged lines hidden (view full) ---

474#define ARCMSR_HBEMU_IOP2DRV_DATA_WRITE_OK 0x00000002
475#define ARCMSR_HBEMU_IOP2DRV_DATA_READ_OK 0x00000004
476#define ARCMSR_HBEMU_IOP2DRV_MESSAGE_CMD_DONE 0x00000008 /* outbound message 0 ready */
477#define ARCMSR_HBEMU_MESSAGE_FIRMWARE_OK 0x80000000 /* ARCMSR_HBCMU_MESSAGE_FIRMWARE_OK */
478/* ARC-1884 doorbell sync */
479#define ARCMSR_HBEMU_DOORBELL_SYNC 0x100
480#define ARCMSR_ARC188X_RESET_ADAPTER 0x00000004
481/*
464*******************************************************************************
465** SPEC. for Areca HBE adapter
466*******************************************************************************
467*/
468#define ARCMSR_SIGNATURE_1884 0x188417D3
469#define ARCMSR_HBEMU_OUTBOUND_DOORBELL_ISR 0x00000001
470#define ARCMSR_HBEMU_OUTBOUND_POSTQUEUE_ISR 0x00000008
471#define ARCMSR_HBEMU_ALL_INTMASKENABLE 0x00000009 /* disable all ISR */

--- 4 unchanged lines hidden (view full) ---

476#define ARCMSR_HBEMU_IOP2DRV_DATA_WRITE_OK 0x00000002
477#define ARCMSR_HBEMU_IOP2DRV_DATA_READ_OK 0x00000004
478#define ARCMSR_HBEMU_IOP2DRV_MESSAGE_CMD_DONE 0x00000008 /* outbound message 0 ready */
479#define ARCMSR_HBEMU_MESSAGE_FIRMWARE_OK 0x80000000 /* ARCMSR_HBCMU_MESSAGE_FIRMWARE_OK */
480/* ARC-1884 doorbell sync */
481#define ARCMSR_HBEMU_DOORBELL_SYNC 0x100
482#define ARCMSR_ARC188X_RESET_ADAPTER 0x00000004
483/*
484*******************************************************************************
485** SPEC. for Areca HBF adapter
486*******************************************************************************
487*/
488#define ARCMSR_SIGNATURE_1886 0x188617D3
489// Doorbell and interrupt definition are same as Type E adapter
490/* ARC-1886 doorbell sync */
491#define ARCMSR_HBFMU_DOORBELL_SYNC 0x100
492//set host rw buffer physical address at inbound message 0, 1 (low,high)
493#define ARCMSR_HBFMU_DOORBELL_SYNC1 0x300
494#define ARCMSR_HBFMU_MESSAGE_FIRMWARE_OK 0x80000000
495#define ARCMSR_HBFMU_MESSAGE_NO_VOLUME_CHANGE 0x20000000
496
497/*
482*********************************************************************
498*********************************************************************
483** Message Unit structure
499** Messaging Unit (MU) of Type A processor
484*********************************************************************
485*/
486struct HBA_MessageUnit
487{
488 u_int32_t resrved0[4]; /*0000 000F*/
489 u_int32_t inbound_msgaddr0; /*0010 0013*/
490 u_int32_t inbound_msgaddr1; /*0014 0017*/
491 u_int32_t outbound_msgaddr0; /*0018 001B*/

--- 47 unchanged lines hidden (view full) ---

539 u_int8_t message_reserved0[ARCMSR_MSGCODE_RWBUFFER]; /*reserved */
540 u_int32_t msgcode_rwbuffer[256]; /*offset 0x0000fa00: 0, 1, 2, 3,...,1023: message code read write 1024bytes */
541 u_int32_t message_wbuffer[32]; /*offset 0x0000fe00:1024,1025,1026,1027,...,1151: user space data to iop 128bytes */
542 u_int32_t message_reserved1[32]; /* 1152,1153,1154,1155,...,1279: message reserved*/
543 u_int32_t message_rbuffer[32]; /*offset 0x0000ff00:1280,1281,1282,1283,...,1407: iop data to user space 128bytes */
544};
545/*
546*********************************************************************
500*********************************************************************
501*/
502struct HBA_MessageUnit
503{
504 u_int32_t resrved0[4]; /*0000 000F*/
505 u_int32_t inbound_msgaddr0; /*0010 0013*/
506 u_int32_t inbound_msgaddr1; /*0014 0017*/
507 u_int32_t outbound_msgaddr0; /*0018 001B*/

--- 47 unchanged lines hidden (view full) ---

555 u_int8_t message_reserved0[ARCMSR_MSGCODE_RWBUFFER]; /*reserved */
556 u_int32_t msgcode_rwbuffer[256]; /*offset 0x0000fa00: 0, 1, 2, 3,...,1023: message code read write 1024bytes */
557 u_int32_t message_wbuffer[32]; /*offset 0x0000fe00:1024,1025,1026,1027,...,1151: user space data to iop 128bytes */
558 u_int32_t message_reserved1[32]; /* 1152,1153,1154,1155,...,1279: message reserved*/
559 u_int32_t message_rbuffer[32]; /*offset 0x0000ff00:1280,1281,1282,1283,...,1407: iop data to user space 128bytes */
560};
561/*
562*********************************************************************
547**
563** Messaging Unit (MU) of Type B processor(MARVEL)
548*********************************************************************
549*/
550struct HBB_MessageUnit
551{
552 u_int32_t post_qbuffer[ARCMSR_MAX_HBB_POSTQUEUE]; /* post queue buffer for iop */
553 u_int32_t done_qbuffer[ARCMSR_MAX_HBB_POSTQUEUE]; /* done queue buffer for iop */
554 int32_t postq_index; /* post queue index */
555 int32_t doneq_index; /* done queue index */
556 struct HBB_DOORBELL *hbb_doorbell;
557 struct HBB_RWBUFFER *hbb_rwbuffer;
558 bus_size_t drv2iop_doorbell; /* window of "instruction flags" from driver to iop */
559 bus_size_t drv2iop_doorbell_mask; /* doorbell mask */
560 bus_size_t iop2drv_doorbell; /* window of "instruction flags" from iop to driver */
561 bus_size_t iop2drv_doorbell_mask; /* doorbell mask */
562};
563
564/*
565*********************************************************************
564*********************************************************************
565*/
566struct HBB_MessageUnit
567{
568 u_int32_t post_qbuffer[ARCMSR_MAX_HBB_POSTQUEUE]; /* post queue buffer for iop */
569 u_int32_t done_qbuffer[ARCMSR_MAX_HBB_POSTQUEUE]; /* done queue buffer for iop */
570 int32_t postq_index; /* post queue index */
571 int32_t doneq_index; /* done queue index */
572 struct HBB_DOORBELL *hbb_doorbell;
573 struct HBB_RWBUFFER *hbb_rwbuffer;
574 bus_size_t drv2iop_doorbell; /* window of "instruction flags" from driver to iop */
575 bus_size_t drv2iop_doorbell_mask; /* doorbell mask */
576 bus_size_t iop2drv_doorbell; /* window of "instruction flags" from iop to driver */
577 bus_size_t iop2drv_doorbell_mask; /* doorbell mask */
578};
579
580/*
581*********************************************************************
566**
582** Messaging Unit (MU) of Type C processor(LSI)
567*********************************************************************
568*/
569struct HBC_MessageUnit {
570 u_int32_t message_unit_status; /*0000 0003*/
571 u_int32_t slave_error_attribute; /*0004 0007*/
572 u_int32_t slave_error_address; /*0008 000B*/
573 u_int32_t posted_outbound_doorbell; /*000C 000F*/
574 u_int32_t master_error_attribute; /*0010 0013*/

--- 58 unchanged lines hidden (view full) ---

633 u_int32_t message_wbuffer[32]; /*2000 207F*/
634 u_int32_t reserved3[32]; /*2080 20FF*/
635 u_int32_t message_rbuffer[32]; /*2100 217F*/
636 u_int32_t reserved4[32]; /*2180 21FF*/
637 u_int32_t msgcode_rwbuffer[256]; /*2200 23FF*/
638};
639/*
640*********************************************************************
583*********************************************************************
584*/
585struct HBC_MessageUnit {
586 u_int32_t message_unit_status; /*0000 0003*/
587 u_int32_t slave_error_attribute; /*0004 0007*/
588 u_int32_t slave_error_address; /*0008 000B*/
589 u_int32_t posted_outbound_doorbell; /*000C 000F*/
590 u_int32_t master_error_attribute; /*0010 0013*/

--- 58 unchanged lines hidden (view full) ---

649 u_int32_t message_wbuffer[32]; /*2000 207F*/
650 u_int32_t reserved3[32]; /*2080 20FF*/
651 u_int32_t message_rbuffer[32]; /*2100 217F*/
652 u_int32_t reserved4[32]; /*2180 21FF*/
653 u_int32_t msgcode_rwbuffer[256]; /*2200 23FF*/
654};
655/*
656*********************************************************************
641**
657** Messaging Unit (MU) of Type D processor
642*********************************************************************
643*/
644struct InBound_SRB {
645 uint32_t addressLow; //pointer to SRB block
646 uint32_t addressHigh;
647 uint32_t length; // in DWORDs
648 uint32_t reserved0;
649};

--- 52 unchanged lines hidden (view full) ---

702 struct InBound_SRB post_qbuffer[ARCMSR_MAX_HBD_POSTQUEUE];
703 struct OutBound_SRB done_qbuffer[ARCMSR_MAX_HBD_POSTQUEUE+1];
704 uint16_t postq_index;
705 uint16_t doneq_index;
706 struct HBD_MessageUnit *phbdmu;
707};
708/*
709*********************************************************************
658*********************************************************************
659*/
660struct InBound_SRB {
661 uint32_t addressLow; //pointer to SRB block
662 uint32_t addressHigh;
663 uint32_t length; // in DWORDs
664 uint32_t reserved0;
665};

--- 52 unchanged lines hidden (view full) ---

718 struct InBound_SRB post_qbuffer[ARCMSR_MAX_HBD_POSTQUEUE];
719 struct OutBound_SRB done_qbuffer[ARCMSR_MAX_HBD_POSTQUEUE+1];
720 uint16_t postq_index;
721 uint16_t doneq_index;
722 struct HBD_MessageUnit *phbdmu;
723};
724/*
725*********************************************************************
710**
726** Messaging Unit (MU) of Type E processor(LSI)
711*********************************************************************
712*/
713struct HBE_MessageUnit {
714 u_int32_t iobound_doorbell; /*0000 0003*/
715 u_int32_t write_sequence_3xxx; /*0004 0007*/
716 u_int32_t host_diagnostic_3xxx; /*0008 000B*/
717 u_int32_t posted_outbound_doorbell; /*000C 000F*/
718 u_int32_t master_error_attribute; /*0010 0013*/

--- 59 unchanged lines hidden (view full) ---

778 u_int32_t reserved2[1936]; /*01C0 1FFF*/
779 u_int32_t message_wbuffer[32]; /*2000 207F*/
780 u_int32_t reserved3[32]; /*2080 20FF*/
781 u_int32_t message_rbuffer[32]; /*2100 217F*/
782 u_int32_t reserved4[32]; /*2180 21FF*/
783 u_int32_t msgcode_rwbuffer[256]; /*2200 23FF*/
784};
785
727*********************************************************************
728*/
729struct HBE_MessageUnit {
730 u_int32_t iobound_doorbell; /*0000 0003*/
731 u_int32_t write_sequence_3xxx; /*0004 0007*/
732 u_int32_t host_diagnostic_3xxx; /*0008 000B*/
733 u_int32_t posted_outbound_doorbell; /*000C 000F*/
734 u_int32_t master_error_attribute; /*0010 0013*/

--- 59 unchanged lines hidden (view full) ---

794 u_int32_t reserved2[1936]; /*01C0 1FFF*/
795 u_int32_t message_wbuffer[32]; /*2000 207F*/
796 u_int32_t reserved3[32]; /*2080 20FF*/
797 u_int32_t message_rbuffer[32]; /*2100 217F*/
798 u_int32_t reserved4[32]; /*2180 21FF*/
799 u_int32_t msgcode_rwbuffer[256]; /*2200 23FF*/
800};
801
802/*
803*********************************************************************
804** Messaging Unit (MU) of Type F processor(LSI)
805*********************************************************************
806*/
807struct HBF_MessageUnit {
808 u_int32_t iobound_doorbell; /*0000 0003*/
809 u_int32_t write_sequence_3xxx; /*0004 0007*/
810 u_int32_t host_diagnostic_3xxx; /*0008 000B*/
811 u_int32_t posted_outbound_doorbell; /*000C 000F*/
812 u_int32_t master_error_attribute; /*0010 0013*/
813 u_int32_t master_error_address_low; /*0014 0017*/
814 u_int32_t master_error_address_high; /*0018 001B*/
815 u_int32_t hcb_size; /*001C 001F*/
816 u_int32_t inbound_doorbell; /*0020 0023*/
817 u_int32_t diagnostic_rw_data; /*0024 0027*/
818 u_int32_t diagnostic_rw_address_low; /*0028 002B*/
819 u_int32_t diagnostic_rw_address_high; /*002C 002F*/
820 u_int32_t host_int_status; /*0030 0033 host interrupt status*/
821 u_int32_t host_int_mask; /*0034 0037 host interrupt mask*/
822 u_int32_t dcr_data; /*0038 003B*/
823 u_int32_t dcr_address; /*003C 003F*/
824 u_int32_t inbound_queueport; /*0040 0043 port32 host inbound queue port*/
825 u_int32_t outbound_queueport; /*0044 0047 port32 host outbound queue port*/
826 u_int32_t hcb_pci_address_low; /*0048 004B*/
827 u_int32_t hcb_pci_address_high; /*004C 004F*/
828 u_int32_t iop_int_status; /*0050 0053*/
829 u_int32_t iop_int_mask; /*0054 0057*/
830 u_int32_t iop_inbound_queue_port; /*0058 005B*/
831 u_int32_t iop_outbound_queue_port; /*005C 005F*/
832 u_int32_t inbound_free_list_index; /*0060 0063*/
833 u_int32_t inbound_post_list_index; /*0064 0067*/
834 u_int32_t reply_post_producer_index; /*0068 006B*/
835 u_int32_t reply_post_consumer_index; /*006C 006F*/
836 u_int32_t inbound_doorbell_clear; /*0070 0073*/
837 u_int32_t i2o_message_unit_control; /*0074 0077*/
838 u_int32_t last_used_message_source_address_low; /*0078 007B*/
839 u_int32_t last_used_message_source_address_high; /*007C 007F*/
840 u_int32_t pull_mode_data_byte_count[4]; /*0080 008F*/
841 u_int32_t message_dest_address_index; /*0090 0093*/
842 u_int32_t done_queue_not_empty_int_counter_timer; /*0094 0097*/
843 u_int32_t utility_A_int_counter_timer; /*0098 009B*/
844 u_int32_t outbound_doorbell; /*009C 009F*/
845 u_int32_t outbound_doorbell_clear; /*00A0 00A3*/
846 u_int32_t message_source_address_index; /*00A4 00A7*/
847 u_int32_t message_done_queue_index; /*00A8 00AB*/
848 u_int32_t reserved0; /*00AC 00AF*/
849 u_int32_t inbound_msgaddr0; /*00B0 00B3 scratchpad0*/
850 u_int32_t inbound_msgaddr1; /*00B4 00B7 scratchpad1*/
851 u_int32_t outbound_msgaddr0; /*00B8 00BB scratchpad2*/
852 u_int32_t outbound_msgaddr1; /*00BC 00BF scratchpad3*/
853 u_int32_t inbound_queueport_low; /*00C0 00C3 port64 host inbound queue port low*/
854 u_int32_t inbound_queueport_high; /*00C4 00C7 port64 host inbound queue port high*/
855 u_int32_t outbound_queueport_low; /*00C8 00CB port64 host outbound queue port low*/
856 u_int32_t outbound_queueport_high; /*00CC 00CF port64 host outbound queue port high*/
857 u_int32_t iop_inbound_queue_port_low; /*00D0 00D3*/
858 u_int32_t iop_inbound_queue_port_high; /*00D4 00D7*/
859 u_int32_t iop_outbound_queue_port_low; /*00D8 00DB*/
860 u_int32_t iop_outbound_queue_port_high; /*00DC 00DF*/
861 u_int32_t message_dest_queue_port_low; /*00E0 00E3*/
862 u_int32_t message_dest_queue_port_high; /*00E4 00E7*/
863 u_int32_t last_used_message_dest_address_low; /*00E8 00EB*/
864 u_int32_t last_used_message_dest_address_high; /*00EC 00EF*/
865 u_int32_t message_done_queue_base_address_low; /*00F0 00F3*/
866 u_int32_t message_done_queue_base_address_high; /*00F4 00F7*/
867 u_int32_t host_diagnostic; /*00F8 00FB*/
868 u_int32_t write_sequence; /*00FC 00FF*/
869 u_int32_t reserved1[46]; /*0100 01B7*/
870 u_int32_t reply_post_producer_index1; /*01B8 01BB*/
871 u_int32_t reply_post_consumer_index1; /*01BC 01BF*/
872};
873
874#define MESG_RW_BUFFER_SIZE (256 * 3)
875
786typedef struct deliver_completeQ {
787 u_int16_t cmdFlag;
788 u_int16_t cmdSMID;
789 u_int16_t cmdLMID; // reserved (0)
790 u_int16_t cmdFlag2; // reserved (0)
791} DeliverQ, CompletionQ, *pDeliver_Q, *pCompletion_Q;
792
793#define COMPLETION_Q_POOL_SIZE (sizeof(struct deliver_completeQ) * 512 + 128)

--- 6 unchanged lines hidden (view full) ---

800struct MessageUnit_UNION
801{
802 union {
803 struct HBA_MessageUnit hbamu;
804 struct HBB_MessageUnit hbbmu;
805 struct HBC_MessageUnit hbcmu;
806 struct HBD_MessageUnit0 hbdmu;
807 struct HBE_MessageUnit hbemu;
876typedef struct deliver_completeQ {
877 u_int16_t cmdFlag;
878 u_int16_t cmdSMID;
879 u_int16_t cmdLMID; // reserved (0)
880 u_int16_t cmdFlag2; // reserved (0)
881} DeliverQ, CompletionQ, *pDeliver_Q, *pCompletion_Q;
882
883#define COMPLETION_Q_POOL_SIZE (sizeof(struct deliver_completeQ) * 512 + 128)

--- 6 unchanged lines hidden (view full) ---

890struct MessageUnit_UNION
891{
892 union {
893 struct HBA_MessageUnit hbamu;
894 struct HBB_MessageUnit hbbmu;
895 struct HBC_MessageUnit hbcmu;
896 struct HBD_MessageUnit0 hbdmu;
897 struct HBE_MessageUnit hbemu;
898 struct HBF_MessageUnit hbfmu;
808 } muu;
809};
810/*
811*************************************************************
812** structure for holding DMA address data
813*************************************************************
814*/
815#define IS_SG64_ADDR 0x01000000 /* bit24 */

--- 411 unchanged lines hidden (view full) ---

1227** Adapter Control Block
1228*********************************************************************
1229*/
1230#define ACB_ADAPTER_TYPE_A 0x00000000 /* hba I IOP */
1231#define ACB_ADAPTER_TYPE_B 0x00000001 /* hbb M IOP */
1232#define ACB_ADAPTER_TYPE_C 0x00000002 /* hbc L IOP */
1233#define ACB_ADAPTER_TYPE_D 0x00000003 /* hbd M IOP */
1234#define ACB_ADAPTER_TYPE_E 0x00000004 /* hbd L IOP */
899 } muu;
900};
901/*
902*************************************************************
903** structure for holding DMA address data
904*************************************************************
905*/
906#define IS_SG64_ADDR 0x01000000 /* bit24 */

--- 411 unchanged lines hidden (view full) ---

1318** Adapter Control Block
1319*********************************************************************
1320*/
1321#define ACB_ADAPTER_TYPE_A 0x00000000 /* hba I IOP */
1322#define ACB_ADAPTER_TYPE_B 0x00000001 /* hbb M IOP */
1323#define ACB_ADAPTER_TYPE_C 0x00000002 /* hbc L IOP */
1324#define ACB_ADAPTER_TYPE_D 0x00000003 /* hbd M IOP */
1325#define ACB_ADAPTER_TYPE_E 0x00000004 /* hbd L IOP */
1326#define ACB_ADAPTER_TYPE_F 0x00000005 /* hbd L IOP */
1235
1236struct AdapterControlBlock {
1237 u_int32_t adapter_type; /* adapter A,B..... */
1238
1239 bus_space_tag_t btag[2];
1240 bus_space_handle_t bhandle[2];
1241 bus_dma_tag_t parent_dmat;
1242 bus_dma_tag_t dm_segs_dmat; /* dmat for buffer I/O */

--- 20 unchanged lines hidden (view full) ---

1263 u_int32_t phyadd_high;
1264 }B;
1265 }srb_phyaddr;
1266// unsigned long srb_phyaddr;
1267 /* Offset is used in making arc cdb physical to virtual calculations */
1268 u_int32_t outbound_int_enable;
1269
1270 struct MessageUnit_UNION *pmu; /* message unit ATU inbound base address0 */
1327
1328struct AdapterControlBlock {
1329 u_int32_t adapter_type; /* adapter A,B..... */
1330
1331 bus_space_tag_t btag[2];
1332 bus_space_handle_t bhandle[2];
1333 bus_dma_tag_t parent_dmat;
1334 bus_dma_tag_t dm_segs_dmat; /* dmat for buffer I/O */

--- 20 unchanged lines hidden (view full) ---

1355 u_int32_t phyadd_high;
1356 }B;
1357 }srb_phyaddr;
1358// unsigned long srb_phyaddr;
1359 /* Offset is used in making arc cdb physical to virtual calculations */
1360 u_int32_t outbound_int_enable;
1361
1362 struct MessageUnit_UNION *pmu; /* message unit ATU inbound base address0 */
1363 uint32_t *message_wbuffer; //0x000 - COMPORT_IN (to be sent to ROC)
1364 uint32_t *message_rbuffer; //0x100 - COMPORT_OUT (to be sent to Host)
1365 uint32_t *msgcode_rwbuffer; //0x200 - BIOS_AREA
1271
1272 u_int8_t adapter_index;
1273 u_int8_t irq;
1274 u_int16_t acb_flags;
1275
1276 struct CommandControlBlock *psrb_pool[ARCMSR_MAX_FREESRB_NUM]; /* serial srb pointer array */
1277 struct CommandControlBlock *srbworkingQ[ARCMSR_MAX_FREESRB_NUM]; /* working srb pointer array */
1278 int32_t workingsrb_doneindex; /* done srb array index */

--- 33 unchanged lines hidden (view full) ---

1312 u_int16_t sub_device_id;
1313 u_int32_t doneq_index;
1314 u_int32_t in_doorbell;
1315 u_int32_t out_doorbell;
1316 u_int32_t completionQ_entry;
1317 pCompletion_Q pCompletionQ;
1318 int msix_vectors;
1319 int rid[2];
1366
1367 u_int8_t adapter_index;
1368 u_int8_t irq;
1369 u_int16_t acb_flags;
1370
1371 struct CommandControlBlock *psrb_pool[ARCMSR_MAX_FREESRB_NUM]; /* serial srb pointer array */
1372 struct CommandControlBlock *srbworkingQ[ARCMSR_MAX_FREESRB_NUM]; /* working srb pointer array */
1373 int32_t workingsrb_doneindex; /* done srb array index */

--- 33 unchanged lines hidden (view full) ---

1407 u_int16_t sub_device_id;
1408 u_int32_t doneq_index;
1409 u_int32_t in_doorbell;
1410 u_int32_t out_doorbell;
1411 u_int32_t completionQ_entry;
1412 pCompletion_Q pCompletionQ;
1413 int msix_vectors;
1414 int rid[2];
1415 unsigned long completeQ_phys;
1320};/* HW_DEVICE_EXTENSION */
1321/* acb_flags */
1322#define ACB_F_SCSISTOPADAPTER 0x0001
1323#define ACB_F_MSG_STOP_BGRB 0x0002 /* stop RAID background rebuild */
1324#define ACB_F_MSG_START_BGRB 0x0004 /* stop RAID background rebuild */
1325#define ACB_F_IOPDATA_OVERFLOW 0x0008 /* iop ioctl data rqbuffer overflow */
1326#define ACB_F_MESSAGE_WQBUFFER_CLEARED 0x0010 /* ioctl clear wqbuffer */
1327#define ACB_F_MESSAGE_RQBUFFER_CLEARED 0x0020 /* ioctl clear rqbuffer */

--- 4531 unchanged lines hidden ---
1416};/* HW_DEVICE_EXTENSION */
1417/* acb_flags */
1418#define ACB_F_SCSISTOPADAPTER 0x0001
1419#define ACB_F_MSG_STOP_BGRB 0x0002 /* stop RAID background rebuild */
1420#define ACB_F_MSG_START_BGRB 0x0004 /* stop RAID background rebuild */
1421#define ACB_F_IOPDATA_OVERFLOW 0x0008 /* iop ioctl data rqbuffer overflow */
1422#define ACB_F_MESSAGE_WQBUFFER_CLEARED 0x0010 /* ioctl clear wqbuffer */
1423#define ACB_F_MESSAGE_RQBUFFER_CLEARED 0x0020 /* ioctl clear rqbuffer */

--- 4531 unchanged lines hidden ---