@ -140,6 +140,14 @@ static UINT32 *IxNpeMicroCodeImageLibrary = (UINT32 *)CONFIG_IXP4XX_NPE_EXT_UCOD
static UINT32 * IxNpeMicroCodeImageLibrary = ( UINT32 * ) IxNpeMicrocode_array ;
# endif
static UINT32 * getIxNpeMicroCodeImageLibrary ( void )
{
char * s ;
if ( ( s = getenv ( " npe_ucode " ) ) ! = NULL )
return ( UINT32 * ) simple_strtoul ( s , NULL , 16 ) ;
else
return IxNpeMicroCodeImageLibrary ;
}
/*
* static function prototypes .
@ -218,9 +226,9 @@ ixNpeDlImageMgrImageListExtract (
IX_NPEDL_TRACE0 ( IX_NPEDL_FN_ENTRY_EXIT ,
" Entering ixNpeDlImageMgrImageListExtract \n " ) ;
header = ( IxNpeDlImageMgrImageLibraryHeader * ) IxNpeMicroCodeImageLibrary ;
header = ( IxNpeDlImageMgrImageLibraryHeader * ) get IxNpeMicroCodeImageLibrary( ) ;
if ( ixNpeDlImageMgrSignatureCheck ( IxNpeMicroCodeImageLibrary ) )
if ( ixNpeDlImageMgrSignatureCheck ( get IxNpeMicroCodeImageLibrary( ) ) )
{
/* for each image entry in the image header ... */
while ( header - > entry [ imageCount ] . eohMarker ! =
@ -291,9 +299,9 @@ ixNpeDlImageMgrImageLocate (
IX_NPEDL_TRACE0 ( IX_NPEDL_FN_ENTRY_EXIT ,
" Entering ixNpeDlImageMgrImageLocate \n " ) ;
header = ( IxNpeDlImageMgrImageLibraryHeader * ) IxNpeMicroCodeImageLibrary ;
header = ( IxNpeDlImageMgrImageLibraryHeader * ) get IxNpeMicroCodeImageLibrary( ) ;
if ( ixNpeDlImageMgrSignatureCheck ( IxNpeMicroCodeImageLibrary ) )
if ( ixNpeDlImageMgrSignatureCheck ( get IxNpeMicroCodeImageLibrary( ) ) )
{
/* for each image entry in the image library header ... */
while ( header - > entry [ imageCount ] . eohMarker ! =
@ -308,8 +316,9 @@ ixNpeDlImageMgrImageLocate (
* get pointer to the image in the image library using offset from
* 1 st word in image library
*/
UINT32 * tmp = getIxNpeMicroCodeImageLibrary ( ) ;
imageOffset = header - > entry [ imageCount ] . image . offset ;
* imagePtr = & IxNpeMicroCodeImageLibrary [ imageOffset ] ;
* imagePtr = & tmp [ imageOffset ] ;
/* get the image size */
* imageSize = header - > entry [ imageCount ] . image . size ;
status = IX_SUCCESS ;
@ -354,9 +363,9 @@ ixNpeDlImageMgrLatestImageExtract (IxNpeDlImageId *imageId)
IX_NPEDL_TRACE0 ( IX_NPEDL_FN_ENTRY_EXIT ,
" Entering ixNpeDlImageMgrLatestImageExtract \n " ) ;
header = ( IxNpeDlImageMgrImageLibraryHeader * ) IxNpeMicroCodeImageLibrary ;
header = ( IxNpeDlImageMgrImageLibraryHeader * ) get IxNpeMicroCodeImageLibrary( ) ;
if ( ixNpeDlImageMgrSignatureCheck ( IxNpeMicroCodeImageLibrary ) )
if ( ixNpeDlImageMgrSignatureCheck ( get IxNpeMicroCodeImageLibrary( ) ) )
{
/* for each image entry in the image library header ... */
while ( header - > entry [ imageCount ] . eohMarker ! =
@ -633,7 +642,7 @@ ixNpeDlImageMgrImageFind (
imageLibrary = ixNpeMicrocode_binaryArray ;
}
# else
imageLibrary = IxNpeMicroCodeImageLibrary ;
imageLibrary = get IxNpeMicroCodeImageLibrary( ) ;
# endif /* IX_NPEDL_READ_MICROCODE_FROM_FILE */
}