⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ixnpedlnpemgrutils_p.h

📁 Uboot源码,非常通用的bootloader.适用于各种平台的Linux系统引导.
💻 H
字号:
/** * @file IxNpeDlNpeMgrUtils_p.h * * @author Intel Corporation * @date 18 February 2002 * @brief This file contains the private API for the NpeMgr 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 IxNpeDlNpeMgrUtils_p IxNpeDlNpeMgrUtils_p * * @brief The private API for the IxNpeDl NpeMgr Utils module *  * @{ */#ifndef IXNPEDLNPEMGRUTILS_P_H#define IXNPEDLNPEMGRUTILS_P_H/* * Put the user defined include files required. */#include "IxNpeDl.h"#include "IxOsalTypes.h"#include "IxNpeDlNpeMgrEcRegisters_p.h"/* * Function Prototypes *//** * @fn IX_STATUS ixNpeDlNpeMgrInsMemWrite (UINT32 npeBaseAddress,                                           UINT32 insMemAddress,			                   UINT32 insMemData,                                           BOOL verify) *  * @brief Writes a word to NPE Instruction memory * * @param UINT32 [in] npeBaseAddress - Base Address of NPE * @param UINT32 [in] insMemAddress  - NPE instruction memory address to write * @param UINT32 [in] insMemData     - data to write to instruction memory * @param BOOL   [in] verify         - if TRUE, verify the memory location is *                                     written successfully. *  * This function is used to write a single word of data to a location in NPE  * instruction memory.  If the <i>verify</i> option is ON, NpeDl will read back * from the memory location to verify that it was written successfully *  * @pre * * @post * * @return *    - IX_FAIL if verify is TRUE and the memory location was not written *      successfully *    - IX_SUCCESS otherwise */ IX_STATUSixNpeDlNpeMgrInsMemWrite (UINT32 npeBaseAddress, UINT32 insMemAddress,			  UINT32 insMemData, BOOL verify);/** * @fn IX_STATUS ixNpeDlNpeMgrDataMemWrite (UINT32 npeBaseAddress,                                            UINT32 dataMemAddress,	                                    UINT32 dataMemData,                                            BOOL verify) *  * @brief Writes a word to NPE Data memory * * @param UINT32 [in] npeBaseAddress - Base Address of NPE * @param UINT32 [in] dataMemAddress - NPE data memory address to write * @param UINT32 [in] dataMemData    - data to write to NPE data memory * @param BOOL   [in] verify         - if TRUE, verify the memory location is *                                     written successfully. *  * This function is used to write a single word of data to a location in NPE  * data memory.  If the <i>verify</i> option is ON, NpeDl will read back from * the memory location to verify that it was written successfully *  * @pre * * @post * * @return *    - IX_FAIL if verify is TRUE and the memory location was not written *      successfully *    - IX_SUCCESS otherwise */ IX_STATUSixNpeDlNpeMgrDataMemWrite (UINT32 npeBaseAddress, UINT32 dataMemAddress,			   UINT32 dataMemData, BOOL verify);/** * @fn void ixNpeDlNpeMgrExecAccRegWrite (UINT32 npeBaseAddress,                                          UINT32 regAddress,                                          UINT32 regData) *  * @brief Writes a word to an NPE Execution Access register * * @param UINT32 [in] npeBaseAddress - Base Address of NPE * @param UINT32 [in] regAddress     - NPE Execution Access register address * @param UINT32 [in] regData        - data to write to register *  * This function is used to write a single word of data to an NPE Execution * Access register. *  * @pre * * @post * * @return none */ voidixNpeDlNpeMgrExecAccRegWrite (UINT32 npeBaseAddress, UINT32 regAddress,			      UINT32 regData);/** * @fn UINT32 ixNpeDlNpeMgrExecAccRegRead (UINT32 npeBaseAddress,                                           UINT32 regAddress) *  * @brief Reads the contents of an NPE Execution Access register * * @param UINT32 [in] npeBaseAddress - Base Address of NPE * @param UINT32 [in] regAddress     - NPE Execution Access register address *  * This function is used to read the contents of an NPE Execution * Access register. *  * @pre * * @post * * @return The value read from the Execution Access register */ UINT32ixNpeDlNpeMgrExecAccRegRead (UINT32 npeBaseAddress, UINT32 regAddress);/** * @fn void ixNpeDlNpeMgrCommandIssue (UINT32 npeBaseAddress,                                       UINT32 command) *  * @brief Issues an NPE Execution Control command * * @param UINT32 [in] npeBaseAddress - Base Address of NPE * @param UINT32 [in] command        - Command to issue *  * This function is used to issue a stand-alone NPE Execution Control command * (e.g. command to Stop NPE execution) *  * @pre * * @post * * @return none */ voidixNpeDlNpeMgrCommandIssue (UINT32 npeBaseAddress, UINT32 command);/** * @fn void ixNpeDlNpeMgrDebugInstructionPreExec (UINT32 npeBaseAddress) *  * @brief Prepare to executes one or more NPE instructions in the Debug *        Execution Stack level. * * @param UINT32 [in] npeBaseAddress - Base Address of NPE *  * This function should be called once before a sequence of calls to  * ixNpeDlNpeMgrDebugInstructionExec(). *  * @pre * * @post *     - ixNpeDlNpeMgrDebugInstructionPostExec() should be called to restore *       registers values altered by this function * * @return none */ voidixNpeDlNpeMgrDebugInstructionPreExec (UINT32 npeBaseAddress);/** * @fn IX_STATUS ixNpeDlNpeMgrDebugInstructionExec (UINT32 npeBaseAddress,                                               UINT32 npeInstruction,                                               UINT32 ctxtNum,                                               UINT32 ldur) *  * @brief Executes a single instruction on the NPE at the Debug Execution Stack *        level * * @param UINT32 [in] npeBaseAddress - Base Address of NPE * @param UINT32 [in] npeInstruction - Value to write to INSTR (Instruction) *                                     register * @param UINT32 [in] ctxtNum        - context the instruction will be executed *                                     in and which context store it may access * @param UINT32 [in] ldur           - Long Immediate Duration, set to non-zero *                                     to use long-immediate mode instruction *  * This function is used to execute a single instruction in the NPE pipeline at * the debug Execution Context Stack level. It won't disturb the state of other * executing contexts.  Its useful for performing NPE operations, such as * writing to NPE Context Store registers and physical registers, that cannot * be carried out directly using the Configuration Bus registers. This function * will return TIMEOUT status if NPE not responding due to NPS is hang / halt. *  * @pre  *     - The NPE should be stopped and in a clean state *     - ixNpeDlNpeMgrDebugInstructionPreExec() should be called once before *       a sequential of 1 or more calls to this function * * @post *     - ixNpeDlNpeMgrDebugInstructionPostExec() should be called after  *       a sequence of calls to this function * * @return  *    - IX_NPEDL_CRITICAL_NPE_ERR if execution of instruction failed / timeout *    - IX_SUCCESS otherwise  */ IX_STATUSixNpeDlNpeMgrDebugInstructionExec (UINT32 npeBaseAddress,				   UINT32 npeInstruction,				   UINT32 ctxtNum, UINT32 ldur);/** * @fn void ixNpeDlNpeMgrDebugInstructionPostExec (UINT32 npeBaseAddress) *  * @brief Clean up after executing one or more NPE instructions in the *        Debug Stack Level * * @param UINT32 [in] npeBaseAddress - Base Address of NPE *  * This function should be called once following a sequence of calls to  * ixNpeDlNpeMgrDebugInstructionExec(). * * @pre  *    -  ixNpeDlNpeMgrDebugInstructionPreExec() was called earlier * * @post *    -  The Instruction Pipeline will cleared * * @return none */ voidixNpeDlNpeMgrDebugInstructionPostExec (UINT32 npeBaseAddress);/** * @fn IX_STATUS ixNpeDlNpeMgrPhysicalRegWrite (UINT32 npeBaseAddress,                                                UINT32 regAddr,                                                UINT32 regValue,					        BOOL verify) *  * @brief Write one of the 32* 32-bit physical registers in the NPE data  *        register file * * @param UINT32 [in] npeBaseAddress - Base Address of NPE * @param UINT32 [in] regAddr        - number of the physical register (0-31)* * @param UINT32 [in] regValue       - value to write to the physical register * @param BOOL   [in] verify         - if TRUE, verify the register is written *                                     successfully. *  * This function writes a physical register in the NPE data register file. * If the <i>verify</i> option is ON, NpeDl will read back the register to  * verify that it was written successfully * *Note that release 1.0 of this software supports 32 physical * registers, but 64 may be supported in future versions. *  * @pre *    - The NPE should be stopped and in a clean state *    - ixNpeDlNpeMgrDebugInstructionPreExec() should be called once before *      a sequential of 1 or more calls to this function * * @post *    - Contents of REGMAP Context Store register for Context 0 will be altered *    - ixNpeDlNpeMgrDebugInstructionPostExec() should be called after  *      a sequence of calls to this function * * @return *    - IX_FAIL if verify is TRUE and the Context Register was not written *      successfully *    - IX_SUCCESS if Context Register was written successfully *    - IX_NPEDL_CRITICAL_NPE_ERR if Context Register was not written  *      successfully due to timeout error where NPE is not responding */IX_STATUSixNpeDlNpeMgrPhysicalRegWrite (UINT32 npeBaseAddress, UINT32 regAddr,			       UINT32 regValue, BOOL verify);/** * @fn IX_STATUS ixNpeDlNpeMgrCtxtRegWrite (UINT32 npeBaseAddress,                                            UINT32 ctxtNum,                                            IxNpeDlCtxtRegNum ctxtReg,                                            UINT32 ctxtRegVal,                                            BOOL verify) *  * @brief Writes a value to a Context Store register on an NPE * * @param UINT32 [in] npeBaseAddress     - Base Address of NPE * @param UINT32 [in] ctxtNum            - context store to access * @param IxNpeDlCtxtRegNum [in] ctxtReg - which Context Store reg to write * @param UINT32 [in] ctxtRegVal         - value to write to the Context Store *                                         register * @param BOOL   [in] verify             - if TRUE, verify the register is *                                         written successfully. *  * This function writes the contents of a Context Store register in the NPE  * register file. If the <i>verify</i> option is ON, NpeDl will read back the * register to verify that it was written successfully *  * @pre *    - The NPE should be stopped and in a clean state *    - ixNpeDlNpeMgrDebugInstructionPreExec() should be called once before *      a sequential of 1 or more calls to this function * * @post *    - ixNpeDlNpeMgrDebugInstructionPostExec() should be called after  *      a sequence of calls to this function * * @return *    - IX_FAIL if verify is TRUE and the Context Register was not written *      successfully *    - IX_SUCCESS if Context Register was written successfully *    - IX_NPEDL_CRITICAL_NPE_ERR if Context Register was not written  *      successfully due to timeout error where NPE is not responding */IX_STATUSixNpeDlNpeMgrCtxtRegWrite (UINT32 npeBaseAddress, UINT32 ctxtNum,			   IxNpeDlCtxtRegNum ctxtReg, UINT32 ctxtRegVal,			   BOOL verify);/** * @fn void ixNpeDlNpeMgrUtilsStatsShow (void) * * @brief This function will display the statistics of the IxNpeDl NpeMgrUtils *        module * * @return none */voidixNpeDlNpeMgrUtilsStatsShow (void);/** * @fn void ixNpeDlNpeMgrUtilsStatsReset (void) * * @brief This function will reset the statistics of the IxNpeDl NpeMgrUtils *        module * * @return none */voidixNpeDlNpeMgrUtilsStatsReset (void);#endif  /* IXNPEDLNPEMGRUTILS_P_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -