291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan/*
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan * CDDL HEADER START
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan *
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan * The contents of this file are subject to the terms of the
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan * Common Development and Distribution License (the "License").
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan * You may not use this file except in compliance with the License.
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan *
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld * You can obtain a copy of the license at
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld * http://www.opensource.org/licenses/cddl1.txt.
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan * See the License for the specific language governing permissions
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan * and limitations under the License.
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan *
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan * When distributing Covered Code, include this CDDL HEADER in each
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan * If applicable, add the following below this CDDL HEADER, with the
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan * fields enclosed by brackets "[]" replaced with your own identifying
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan * information: Portions Copyright [yyyy] [name of copyright owner]
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan *
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan * CDDL HEADER END
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan */
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan/*
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld * Copyright (c) 2004-2011 Emulex. All rights reserved.
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan * Use is subject to license terms.
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan */
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan#ifndef _EMLXS_FW_H
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan#define _EMLXS_FW_H
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan#ifdef __cplusplus
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathanextern "C" {
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan#endif
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan#if 0
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan#define EMLXS_FW_TABLE_DEF /* Causes the firmware table to be */
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan /* defined in local memory. */
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan#define EMLXS_FW_IMAGE_DEF /* Causes the firmware image to be */
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan /* defined in the firmware table. */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#endif /* 0 */
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define EMLXS_FW_MODULE "misc/"DRIVER_NAME"/"DRIVER_NAME"_fw"
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan/* Unique id for each firmware image */
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathantypedef enum emlxs_fwid
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan{
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan FW_NOT_PROVIDED = 0,
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan LP10000_FW,
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan LP11000_FW,
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan LP11002_FW,
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan LPe11000_FW,
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan LPe11002_FW,
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan LPe12000_FW
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan} emlxs_fwid_t;
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan/* Firmware image descriptor */
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathantypedef struct emlxs_firmware
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan{
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan emlxs_fwid_t id;
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan uint32_t size;
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan uint8_t *image;
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan char label[64];
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan uint32_t kern;
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan uint32_t stub;
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan uint32_t sli1;
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan uint32_t sli2;
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan uint32_t sli3;
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan uint32_t sli4;
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan} emlxs_firmware_t;
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan#ifdef EMLXS_FW_TABLE_DEF
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan#ifndef MODFW_SUPPORT
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan#define EMLXS_FW_IMAGE_DEF
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan#endif /* MODFW_SUPPORT */
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan/* Provide firmware information for each adapter */
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan#include <fw_lp10000.h>
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan#include <fw_lp11000.h>
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan#include <fw_lp11002.h>
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan#include <fw_lpe11000.h>
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan#include <fw_lpe11002.h>
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan#include <fw_lpe12000.h>
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan/* Build the firmware table */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define EMLXS_FW_TABLE \
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan {\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan LP10000_FW,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lp10000_size,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lp10000_image,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lp10000_label,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lp10000_kern,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lp10000_stub,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lp10000_sli1,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lp10000_sli2,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lp10000_sli3,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lp10000_sli4\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan },\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan {\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan LP11000_FW,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lp11000_size,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lp11000_image,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lp11000_label,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lp11000_kern,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lp11000_stub,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lp11000_sli1,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lp11000_sli2,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lp11000_sli3,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lp11000_sli4,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan },\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan {\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan LP11002_FW,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lp11002_size,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lp11002_image,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lp11002_label,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lp11002_kern,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lp11002_stub,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lp11002_sli1,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lp11002_sli2,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lp11002_sli3,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lp11002_sli4\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan },\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan {\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan LPe11000_FW,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lpe11000_size,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lpe11000_image,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lpe11000_label,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lpe11000_kern,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lpe11000_stub,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lpe11000_sli1,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lpe11000_sli2,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lpe11000_sli3,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lpe11000_sli4\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan },\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan {\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan LPe11002_FW,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lpe11002_size,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lpe11002_image,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lpe11002_label,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lpe11002_kern,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lpe11002_stub,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lpe11002_sli1,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lpe11002_sli2,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lpe11002_sli3,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lpe11002_sli4\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan },\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan {\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan LPe12000_FW,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lpe12000_size,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lpe12000_image,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lpe12000_label,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lpe12000_kern,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lpe12000_stub,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lpe12000_sli1,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lpe12000_sli2,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lpe12000_sli3,\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_lpe12000_sli4\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan }\
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan}
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan#endif /* EMLXS_FW_TABLE_DEF */
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan#ifdef __cplusplus
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan}
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan#endif
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan
291a2b48b9adcd7b3666c34e80ba6411929afe7fSukumar Swaminathan#endif /* _EMLXS_FW_H */