| /** |
| * @file IxNpeDlImageMgr_p.h |
| * |
| * @author Intel Corporation |
| * @date 14 December 2001 |
| |
| * @brief This file contains the private API for the ImageMgr module |
| * |
| * |
| * @par |
| * IXP400 SW Release version 2.0 |
| * |
| * -- Copyright Notice -- |
| * |
| * @par |
| * Copyright 2001-2005, Intel Corporation. |
| * All rights reserved. |
| * |
| * @par |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions |
| * are met: |
| * 1. Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * 2. Redistributions in binary form must reproduce the above copyright |
| * notice, this list of conditions and the following disclaimer in the |
| * documentation and/or other materials provided with the distribution. |
| * 3. Neither the name of the Intel Corporation nor the names of its contributors |
| * may be used to endorse or promote products derived from this software |
| * without specific prior written permission. |
| * |
| * @par |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' |
| * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
| * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE |
| * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
| * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
| * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
| * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
| * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
| * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
| * SUCH DAMAGE. |
| * |
| * @par |
| * -- End of Copyright Notice -- |
| */ |
| |
| /** |
| * @defgroup IxNpeDlImageMgr_p IxNpeDlImageMgr_p |
| * |
| * @brief The private API for the IxNpeDl ImageMgr module |
| * |
| * @{ |
| */ |
| |
| #ifndef IXNPEDLIMAGEMGR_P_H |
| #define IXNPEDLIMAGEMGR_P_H |
| |
| |
| /* |
| * Put the user defined include files required. |
| */ |
| #include "IxNpeDl.h" |
| #include "IxOsalTypes.h" |
| |
| |
| /* |
| * #defines and macros |
| */ |
| |
| /** |
| * @def IX_NPEDL_IMAGEMGR_SIGNATURE |
| * |
| * @brief Signature found as 1st word in a microcode image library |
| */ |
| #define IX_NPEDL_IMAGEMGR_SIGNATURE 0xDEADBEEF |
| |
| /** |
| * @def IX_NPEDL_IMAGEMGR_END_OF_HEADER |
| * |
| * @brief Marks end of header in a microcode image library |
| */ |
| #define IX_NPEDL_IMAGEMGR_END_OF_HEADER 0xFFFFFFFF |
| |
| /** |
| * @def IX_NPEDL_IMAGEID_NPEID_OFFSET |
| * |
| * @brief Offset from LSB of NPE ID field in Image ID |
| */ |
| #define IX_NPEDL_IMAGEID_NPEID_OFFSET 24 |
| |
| /** |
| * @def IX_NPEDL_IMAGEID_DEVICEID_OFFSET |
| * |
| * @brief Offset from LSB of Device ID field in Image ID |
| */ |
| #define IX_NPEDL_IMAGEID_DEVICEID_OFFSET 28 |
| |
| /** |
| * @def IX_NPEDL_IMAGEID_FUNCTIONID_OFFSET |
| * |
| * @brief Offset from LSB of Functionality ID field in Image ID |
| */ |
| #define IX_NPEDL_IMAGEID_FUNCTIONID_OFFSET 16 |
| |
| /** |
| * @def IX_NPEDL_IMAGEID_MAJOR_OFFSET |
| * |
| * @brief Offset from LSB of Major revision field in Image ID |
| */ |
| #define IX_NPEDL_IMAGEID_MAJOR_OFFSET 8 |
| |
| /** |
| * @def IX_NPEDL_IMAGEID_MINOR_OFFSET |
| * |
| * @brief Offset from LSB of Minor revision field in Image ID |
| */ |
| #define IX_NPEDL_IMAGEID_MINOR_OFFSET 0 |
| |
| |
| /** |
| * @def IX_NPEDL_NPEID_FROM_IMAGEID_GET |
| * |
| * @brief Macro to extract NPE ID field from Image ID |
| */ |
| #define IX_NPEDL_NPEID_FROM_IMAGEID_GET(imageId) \ |
| (((imageId) >> IX_NPEDL_IMAGEID_NPEID_OFFSET) & \ |
| IX_NPEDL_NPEIMAGE_NPEID_MASK) |
| |
| /** |
| * @def IX_NPEDL_DEVICEID_FROM_IMAGEID_GET |
| * |
| * @brief Macro to extract NPE ID field from Image ID |
| */ |
| #define IX_NPEDL_DEVICEID_FROM_IMAGEID_GET(imageId) \ |
| (((imageId) >> IX_NPEDL_IMAGEID_DEVICEID_OFFSET) & \ |
| IX_NPEDL_NPEIMAGE_DEVICEID_MASK) |
| |
| /** |
| * @def IX_NPEDL_FUNCTIONID_FROM_IMAGEID_GET |
| * |
| * @brief Macro to extract Functionality ID field from Image ID |
| */ |
| #define IX_NPEDL_FUNCTIONID_FROM_IMAGEID_GET(imageId) \ |
| (((imageId) >> IX_NPEDL_IMAGEID_FUNCTIONID_OFFSET) & \ |
| IX_NPEDL_NPEIMAGE_FIELD_MASK) |
| |
| /** |
| * @def IX_NPEDL_MAJOR_FROM_IMAGEID_GET |
| * |
| * @brief Macro to extract Major revision field from Image ID |
| */ |
| #define IX_NPEDL_MAJOR_FROM_IMAGEID_GET(imageId) \ |
| (((imageId) >> IX_NPEDL_IMAGEID_MAJOR_OFFSET) & \ |
| IX_NPEDL_NPEIMAGE_FIELD_MASK) |
| |
| /** |
| * @def IX_NPEDL_MINOR_FROM_IMAGEID_GET |
| * |
| * @brief Macro to extract Minor revision field from Image ID |
| */ |
| #define IX_NPEDL_MINOR_FROM_IMAGEID_GET(imageId) \ |
| (((imageId) >> IX_NPEDL_IMAGEID_MINOR_OFFSET) & \ |
| IX_NPEDL_NPEIMAGE_FIELD_MASK) |
| |
| |
| /* |
| * Prototypes for interface functions |
| */ |
| |
| /** |
| * @fn IX_STATUS ixNpeDlImageMgrMicrocodeImageLibraryOverride (UINT32 *clientImageLibrary) |
| * |
| * @brief This instructs NPE Downloader to use client-supplied microcode image library. |
| * |
| * This function sets NPE Downloader to use a client-supplied microcode image library |
| * instead of the standard image library which is included by the NPE Downloader. |
| * |
| * @note THIS FUNCTION HAS BEEN DEPRECATED AND SHOULD NOT BE USED. |
| * It will be removed in a future release. |
| * See API header file IxNpeDl.h for more information. |
| * |
| * @pre |
| * - <i>clientImageLibrary</i> should point to a microcode image library valid for use |
| * by the NPE Downloader component. |
| * |
| * @post |
| * - the client-supplied image uibrary will be used for all subsequent operations |
| * performed by the NPE Downloader |
| * |
| * @return |
| * - IX_SUCCESS if the operation was successful |
| * - IX_FAIL if the client-supplied image library did not contain a valid signature |
| */ |
| IX_STATUS |
| ixNpeDlImageMgrMicrocodeImageLibraryOverride (UINT32 *clientImageLibrary); |
| |
| |
| /** |
| * @fn IX_STATUS ixNpeDlImageMgrImageListExtract (IxNpeDlImageId *imageListPtr, |
| UINT32 *numImages) |
| * |
| * @brief Extracts a list of images available in the NPE microcode image library. |
| * |
| * @param IxNpeDlImageId* [out] imageListPtr - pointer to array to contain |
| * a list of images. If NULL, |
| * only the number of images |
| * is returned (in |
| * <i>numImages</i>) |
| * @param UINT32* [inout] numImages - As input, it points to a variable |
| * containing the number of images which |
| * can be stored in the |
| * <i>imageListPtr</i> array. Its value |
| * is ignored as input if |
| * <i>imageListPtr</i> is NULL. As an |
| * output, it will contain number of |
| * images in the image library. |
| * |
| * This function reads the header of the microcode image library and extracts a list of the |
| * images available in the image library. It can also be used to find the number of |
| * images in the image library. |
| * |
| * @note THIS FUNCTION HAS BEEN DEPRECATED AND SHOULD NOT BE USED. |
| * It will be removed in a future release. |
| * See API header file IxNpeDl.h for more information. |
| * |
| * @pre |
| * - if <i>imageListPtr</i> != NULL, <i>numImages</i> should reflect the |
| * number of image Id elements the <i>imageListPtr</i> can contain. |
| * |
| * @post |
| * - <i>numImages</i> will reflect the number of image Id's found in the |
| * microcode image library. |
| * |
| * @return |
| * - IX_SUCCESS if the operation was successful |
| * - IX_FAIL otherwise |
| */ |
| IX_STATUS |
| ixNpeDlImageMgrImageListExtract (IxNpeDlImageId *imageListPtr, |
| UINT32 *numImages); |
| |
| |
| /** |
| * @fn IX_STATUS ixNpeDlImageMgrImageLocate (IxNpeDlImageId *imageId, |
| UINT32 **imagePtr, |
| UINT32 *imageSize) |
| * |
| * @brief Finds a image block in the NPE microcode image library. |
| * |
| * @param IxNpeDlImageId* [in] imageId - the id of the image to locate |
| * @param UINT32** [out] imagePtr - pointer to the image in memory |
| * @param UINT32* [out] imageSize - size (in 32-bit words) of image |
| * |
| * This function examines the header of the microcode image library for the location |
| * and size of the specified image. |
| * |
| * @note THIS FUNCTION HAS BEEN DEPRECATED AND SHOULD NOT BE USED. |
| * It will be removed in a future release. |
| * See API header file IxNpeDl.h for more information. |
| * |
| * @pre |
| * |
| * @post |
| * |
| * @return |
| * - IX_SUCCESS if the operation was successful |
| * - IX_FAIL otherwise |
| */ |
| IX_STATUS |
| ixNpeDlImageMgrImageLocate (IxNpeDlImageId *imageId, |
| UINT32 **imagePtr, |
| UINT32 *imageSize); |
| |
| /** |
| * @fn IX_STATUS ixNpeDlImageMgrLatestImageExtract (IxNpeDlImageId *imageId) |
| * |
| * @brief Finds the most recent version of an image in the NPE image library. |
| * |
| * @param IxNpeDlImageId* [inout] imageId - the id of the image |
| * |
| * This function determines the most recent version of a specified image by its |
| * higest major release and minor revision numbers |
| * |
| * @note THIS FUNCTION HAS BEEN DEPRECATED AND SHOULD NOT BE USED. |
| * It will be removed in a future release. |
| * See API header file IxNpeDl.h for more information. |
| * |
| * @pre |
| * |
| * @post |
| * |
| * @return |
| * - IX_SUCCESS if the operation was successful |
| * - IX_FAIL otherwise |
| */ |
| IX_STATUS |
| ixNpeDlImageMgrLatestImageExtract (IxNpeDlImageId *imageId); |
| |
| /** |
| * @fn void ixNpeDlImageMgrStatsShow (void) |
| * |
| * @brief This function will display the statistics of the IxNpeDl ImageMgr |
| * module |
| * |
| * @return none |
| */ |
| void |
| ixNpeDlImageMgrStatsShow (void); |
| |
| |
| /** |
| * @fn void ixNpeDlImageMgrStatsReset (void) |
| * |
| * @brief This function will reset the statistics of the IxNpeDl ImageMgr |
| * module |
| * |
| * @return none |
| */ |
| void |
| ixNpeDlImageMgrStatsReset (void); |
| |
| |
| /** |
| * @fn IX_STATUS ixNpeDlImageMgrImageGet (UINT32 *imageLibrary, |
| UINT32 imageId, |
| UINT32 **imagePtr, |
| UINT32 *imageSize) |
| * |
| * @brief Finds a image block in the NPE microcode image library. |
| * |
| * @param UINT32* [in] imageLibrary - the image library to use |
| * @param UINT32 [in] imageId - the id of the image to locate |
| * @param UINT32** [out] imagePtr - pointer to the image in memory |
| * @param UINT32* [out] imageSize - size (in 32-bit words) of image |
| * |
| * This function examines the header of the specified microcode image library |
| * for the location and size of the specified image. It returns a pointer to |
| * the image in the <i>imagePtr</i> parameter. |
| * If no image library is specified (imageLibrary == NULL), then the default |
| * built-in image library will be used. |
| * |
| * @pre |
| * |
| * @post |
| * |
| * @return |
| * - IX_SUCCESS if the operation was successful |
| * - IX_FAIL otherwise |
| */ |
| IX_STATUS |
| ixNpeDlImageMgrImageFind (UINT32 *imageLibrary, |
| UINT32 imageId, |
| UINT32 **imagePtr, |
| UINT32 *imageSize); |
| |
| |
| #endif /* IXNPEDLIMAGEMGR_P_H */ |
| |
| /** |
| * @} defgroup IxNpeDlImageMgr_p |
| */ |