| /* |
| * Copyright (C) 2005 - 2008 ServerEngines |
| * All rights reserved. |
| * |
| * This program is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU General Public License version 2 |
| * as published by the Free Software Foundation. The full GNU General |
| * Public License is included in this distribution in the file called COPYING. |
| * |
| * Contact Information: |
| * linux-drivers@serverengines.com |
| * |
| * ServerEngines |
| * 209 N. Fair Oaks Ave |
| * Sunnyvale, CA 94085 |
| */ |
| /* |
| * Autogenerated by srcgen version: 0127 |
| */ |
| #ifndef __fwcmd_mcc_amap_h__ |
| #define __fwcmd_mcc_amap_h__ |
| #include "fwcmd_opcodes.h" |
| /* |
| * Where applicable, a WRB, may contain a list of Scatter-gather elements. |
| * Each element supports a 64 bit address and a 32bit length field. |
| */ |
| struct BE_MCC_SGE_AMAP { |
| u8 pa_lo[32]; /* DWORD 0 */ |
| u8 pa_hi[32]; /* DWORD 1 */ |
| u8 length[32]; /* DWORD 2 */ |
| } __packed; |
| struct MCC_SGE_AMAP { |
| u32 dw[3]; |
| }; |
| /* |
| * The design of an MCC_SGE allows up to 19 elements to be embedded |
| * in a WRB, supporting 64KB data transfers (assuming a 4KB page size). |
| */ |
| struct BE_MCC_WRB_PAYLOAD_AMAP { |
| union { |
| struct BE_MCC_SGE_AMAP sgl[19]; |
| u8 embedded[59][32]; /* DWORD 0 */ |
| }; |
| } __packed; |
| struct MCC_WRB_PAYLOAD_AMAP { |
| u32 dw[59]; |
| }; |
| |
| /* |
| * This is the structure of the MCC Command WRB for commands |
| * sent to the Management Processing Unit (MPU). See section |
| * for usage in embedded and non-embedded modes. |
| */ |
| struct BE_MCC_WRB_AMAP { |
| u8 embedded; /* DWORD 0 */ |
| u8 rsvd0[2]; /* DWORD 0 */ |
| u8 sge_count[5]; /* DWORD 0 */ |
| u8 rsvd1[16]; /* DWORD 0 */ |
| u8 special[8]; /* DWORD 0 */ |
| u8 payload_length[32]; /* DWORD 1 */ |
| u8 tag[2][32]; /* DWORD 2 */ |
| u8 rsvd2[32]; /* DWORD 4 */ |
| struct BE_MCC_WRB_PAYLOAD_AMAP payload; |
| } __packed; |
| struct MCC_WRB_AMAP { |
| u32 dw[64]; |
| }; |
| |
| /* This is the structure of the MCC Completion queue entry */ |
| struct BE_MCC_CQ_ENTRY_AMAP { |
| u8 completion_status[16]; /* DWORD 0 */ |
| u8 extended_status[16]; /* DWORD 0 */ |
| u8 mcc_tag[2][32]; /* DWORD 1 */ |
| u8 rsvd0[27]; /* DWORD 3 */ |
| u8 consumed; /* DWORD 3 */ |
| u8 completed; /* DWORD 3 */ |
| u8 hpi_buffer_completion; /* DWORD 3 */ |
| u8 async_event; /* DWORD 3 */ |
| u8 valid; /* DWORD 3 */ |
| } __packed; |
| struct MCC_CQ_ENTRY_AMAP { |
| u32 dw[4]; |
| }; |
| |
| /* Mailbox structures used by the MPU during bootstrap */ |
| struct BE_MCC_MAILBOX_AMAP { |
| struct BE_MCC_WRB_AMAP wrb; |
| struct BE_MCC_CQ_ENTRY_AMAP cq; |
| } __packed; |
| struct MCC_MAILBOX_AMAP { |
| u32 dw[68]; |
| }; |
| |
| #endif /* __fwcmd_mcc_amap_h__ */ |