#ifndef __MYRI10GE_MCP_GEN_HEADER_H__
#define __MYRI10GE_MCP_GEN_HEADER_H__

/* this file define a standard header used as a first entry point to
 * exchange information between firmware/driver and driver.  The
 * header structure can be anywhere in the mcp. It will usually be in
 * the .data section, because some fields needs to be initialized at
 * compile time.
 * The 32bit word at offset MX_HEADER_PTR_OFFSET in the mcp must
 * contains the location of the header.
 *
 * Typically a MCP will start with the following:
 * .text
 * .space 52    ! to help catch MEMORY_INT errors
 * bt start     ! jump to real code
 * nop
 * .long _gen_mcp_header
 *
 * The source will have a definition like:
 *
 * mcp_gen_header_t gen_mcp_header = {
 * .header_length = sizeof(mcp_gen_header_t),
 * .mcp_type = MCP_TYPE_XXX,
 * .version = "something $Id: mcp_gen_header.h,v 1.2 2006/05/13 10:04:35 bgoglin Exp $",
 * .mcp_globals = (unsigned)&Globals
 * };
 */

#define MCP_HEADER_PTR_OFFSET  0x3c

#define MCP_TYPE_MX 0x4d582020	/* "MX  " */
#define MCP_TYPE_PCIE 0x70636965	/* "PCIE" pcie-only MCP */
#define MCP_TYPE_ETH 0x45544820	/* "ETH " */
#define MCP_TYPE_MCP0 0x4d435030	/* "MCP0" */

struct mcp_gen_header {
	/* the first 4 fields are filled at compile time */
	unsigned header_length;
	__be32 mcp_type;
	char version[128];
	unsigned mcp_globals;	/* pointer to mcp-type specific structure */

	/* filled by the MCP at run-time */
	unsigned sram_size;
	unsigned string_specs;	/* either the original STRING_SPECS or a superset */
	unsigned string_specs_len;

	/* Fields above this comment are guaranteed to be present.
	 *
	 * Fields below this comment are extensions added in later versions
	 * of this struct, drivers should compare the header_length against
	 * offsetof(field) to check wether a given MCP implements them.
	 *
	 * Never remove any field.  Keep everything naturally align.
	 */
};

#endif				/* __MYRI10GE_MCP_GEN_HEADER_H__ */
