761 lines
29 KiB
Plaintext
761 lines
29 KiB
Plaintext
/*----------------------------------------------------------------------------*/
|
|
/* Copyright 2013 - 2019, 2022 NXP */
|
|
/* */
|
|
/* NXP Confidential. This software is owned or controlled by NXP and may only */
|
|
/* be used strictly in accordance with the applicable license terms. */
|
|
/* By expressly accepting such terms or by downloading, installing, */
|
|
/* activating and/or otherwise using the software, you are agreeing that you */
|
|
/* have read, and that you agree to comply with and are bound by, such */
|
|
/* license terms. If you do not agree to be bound by the applicable license */
|
|
/* terms, then you may not retain, install, activate or otherwise use the */
|
|
/* software. */
|
|
/*----------------------------------------------------------------------------*/
|
|
|
|
/** \file
|
|
* Generic MIFARE Plus EVx contactless IC (Ev1, and future versions) contactless IC Application Component of Reader Library Framework.
|
|
* $Author: Rajendran Kumar (nxp99556) $
|
|
* $Revision: 5464 $ (v07.10.00)
|
|
* $Date: 2019-01-10 19:08:57 +0530 (Thu, 10 Jan 2019) $
|
|
*
|
|
* History:
|
|
* Kumar GVS: Generated 15. Apr 2013
|
|
*
|
|
*/
|
|
|
|
#include <phalMfpEVx.h>
|
|
#include <ph_RefDefs.h>
|
|
|
|
#ifdef NXPBUILD__PHAL_MFPEVX_SW
|
|
#include "Sw/phalMfpEVx_Sw.h"
|
|
#endif /* NXPBUILD__PHAL_MFPEVX_SW */
|
|
|
|
#ifdef NXPBUILD__PHAL_MFPEVX
|
|
|
|
/***************************************************************************************************************************************/
|
|
/* Mifare Plus EV1 Generic command for personalization. */
|
|
/***************************************************************************************************************************************/
|
|
phStatus_t phalMfpEVx_WritePerso(void * pDataParams, uint8_t bLayer4Comm, uint16_t wBlockNr, uint8_t bNumBlocks,
|
|
uint8_t * pValue)
|
|
{
|
|
phStatus_t PH_MEMLOC_REM status;
|
|
|
|
PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phalMfpEVx_WritePerso");
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(bLayer4Comm);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(wBlockNr);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(bNumBlocks);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(pValue);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
|
|
|
|
/* Verify the parameters. */
|
|
PH_ASSERT_NULL_DATA_PARAM(pDataParams, PH_COMP_AL_MFPEVX);
|
|
PH_ASSERT_NULL_PARAM(pValue, PH_COMP_AL_MFPEVX);
|
|
|
|
/* Log the information. */
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(bLayer4Comm), &bLayer4Comm);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wBlockNr), &wBlockNr);
|
|
PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(bNumBlocks), &bNumBlocks);
|
|
PH_LOG_HELPER_ADDPARAM_BUFFER(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(pValue), pValue, (bNumBlocks * 16U));
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
|
|
|
|
/* Component Code Validation */
|
|
if(PH_GET_COMPCODE(pDataParams) != PH_COMP_AL_MFPEVX)
|
|
{
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFPEVX);
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
/* Perform operation on active layer. */
|
|
switch(PH_GET_COMPID(pDataParams))
|
|
{
|
|
#ifdef NXPBUILD__PHAL_MFPEVX_SW
|
|
case PHAL_MFPEVX_SW_ID:
|
|
status = phalMfpEVx_Sw_WritePerso((phalMfpEVx_Sw_DataParams_t *) pDataParams, bLayer4Comm, wBlockNr, bNumBlocks, pValue);
|
|
break;
|
|
#endif /* NXPBUILD__PHAL_MFPEVX_SW */
|
|
|
|
default:
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFPEVX);
|
|
break;
|
|
}
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
phStatus_t phalMfpEVx_CommitPerso(void * pDataParams, uint8_t bOption, uint8_t bLayer4Comm)
|
|
{
|
|
phStatus_t PH_MEMLOC_REM status;
|
|
|
|
PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phalMfpEVx_CommitPerso");
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(bLayer4Comm);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(bOption);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
|
|
|
|
/* Verify the parameters. */
|
|
PH_ASSERT_NULL_DATA_PARAM(pDataParams, PH_COMP_AL_MFPEVX);
|
|
|
|
/* Log the information. */
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(bOption), &bOption);
|
|
PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(bLayer4Comm), &bLayer4Comm);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
|
|
|
|
/* Component Code Validation */
|
|
if(PH_GET_COMPCODE(pDataParams) != PH_COMP_AL_MFPEVX)
|
|
{
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFPEVX);
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
/* Perform operation on active layer. */
|
|
switch(PH_GET_COMPID(pDataParams))
|
|
{
|
|
#ifdef NXPBUILD__PHAL_MFPEVX_SW
|
|
case PHAL_MFPEVX_SW_ID:
|
|
status = phalMfpEVx_Sw_CommitPerso((phalMfpEVx_Sw_DataParams_t *) pDataParams, bOption, bLayer4Comm);
|
|
break;
|
|
#endif /* NXPBUILD__PHAL_MFPEVX_SW */
|
|
|
|
default:
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFPEVX);
|
|
break;
|
|
}
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
/***************************************************************************************************************************************/
|
|
/* Mifare Plus EV1 Generic command for authentication. */
|
|
/***************************************************************************************************************************************/
|
|
phStatus_t phalMfpEVx_AuthenticateMfc(void * pDataParams, uint8_t bBlockNo, uint8_t bKeyType, uint16_t wKeyNumber, uint16_t wKeyVersion,
|
|
uint8_t * pUid, uint8_t bUidLength)
|
|
{
|
|
phStatus_t PH_MEMLOC_REM status;
|
|
|
|
PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phalMfpEVx_AuthenticateMfc");
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(bBlockNo);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(bKeyType);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(wKeyNumber);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(wKeyVersion);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(pUid);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
|
|
|
|
/* Validate the parameters. */
|
|
PH_ASSERT_NULL_DATA_PARAM(pDataParams, PH_COMP_AL_MFPEVX);
|
|
PH_ASSERT_NULL_PARAM(pUid, PH_COMP_AL_MFPEVX);
|
|
|
|
/* Log the information. */
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(bBlockNo), &bBlockNo);
|
|
PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(bKeyType), &bKeyType);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wKeyNumber), &wKeyNumber);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wKeyVersion), &wKeyVersion);
|
|
PH_LOG_HELPER_ADDPARAM_BUFFER(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(pUid), pUid, bUidLength);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
|
|
|
|
/* Component Code Validation */
|
|
if(PH_GET_COMPCODE(pDataParams) != PH_COMP_AL_MFPEVX)
|
|
{
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFPEVX);
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
/* Perform operation on active layer. */
|
|
switch(PH_GET_COMPID(pDataParams))
|
|
{
|
|
#ifdef NXPBUILD__PHAL_MFPEVX_SW
|
|
case PHAL_MFPEVX_SW_ID:
|
|
status = phalMfpEVx_Sw_AuthenticateMfc((phalMfpEVx_Sw_DataParams_t *) pDataParams, bBlockNo, bKeyType, wKeyNumber, wKeyVersion, pUid, bUidLength);
|
|
break;
|
|
#endif /* NXPBUILD__PHAL_MFPEVX_SW */
|
|
|
|
default:
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFPEVX);
|
|
break;
|
|
}
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
/***************************************************************************************************************************************/
|
|
/* Mifare Plus EV1 Generic command for special operations. */
|
|
/***************************************************************************************************************************************/
|
|
phStatus_t phalMfpEVx_GetVersion(void * pDataParams, uint8_t * pVerInfo)
|
|
{
|
|
phStatus_t PH_MEMLOC_REM status;
|
|
uint8_t PH_MEMLOC_REM bVerLen = 0;
|
|
|
|
PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phalMfpEVx_GetVersion");
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(pVerInfo);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
|
|
|
|
/* Verify the parameters. */
|
|
PH_ASSERT_NULL_DATA_PARAM(pDataParams, PH_COMP_AL_MFPEVX);
|
|
PH_ASSERT_NULL_PARAM(pVerInfo, PH_COMP_AL_MFPEVX);
|
|
|
|
/* Log the information. */
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
|
|
|
|
/* Component Code Validation */
|
|
if(PH_GET_COMPCODE(pDataParams) != PH_COMP_AL_MFPEVX)
|
|
{
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFPEVX);
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
return status;
|
|
}
|
|
|
|
/* Perform operation on active layer. */
|
|
switch(PH_GET_COMPID(pDataParams))
|
|
{
|
|
#ifdef NXPBUILD__PHAL_MFPEVX_SW
|
|
case PHAL_MFPEVX_SW_ID:
|
|
status = phalMfpEVx_Sw_GetVersion((phalMfpEVx_Sw_DataParams_t *) pDataParams, pVerInfo, &bVerLen);
|
|
break;
|
|
#endif /* NXPBUILD__PHAL_MFPEVX_SW */
|
|
|
|
default:
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFPEVX);
|
|
break;
|
|
}
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_BUFFER(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(pVerInfo), pVerInfo, bVerLen);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
phStatus_t phalMfpEVx_ReadSign(void * pDataParams, uint8_t bLayer4Comm, uint8_t bAddr, uint8_t ** pSignature)
|
|
{
|
|
phStatus_t PH_MEMLOC_REM status = 0;
|
|
PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phalMfpEVx_ReadSign");
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(bAddr);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(pSignature);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
|
|
|
|
/* Validate the parameters. */
|
|
PH_ASSERT_NULL_DATA_PARAM(pDataParams, PH_COMP_AL_MFPEVX);
|
|
PH_ASSERT_NULL_PARAM(pSignature, PH_COMP_AL_MFPEVX);
|
|
|
|
/* Log the information. */
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(bAddr), &bAddr);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
|
|
|
|
/* Component Code Validation */
|
|
if(PH_GET_COMPCODE(pDataParams) != PH_COMP_AL_MFPEVX)
|
|
{
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFPEVX);
|
|
}
|
|
|
|
/* Perform operation on active layer. */
|
|
switch(PH_GET_COMPID(pDataParams))
|
|
{
|
|
#ifdef NXPBUILD__PHAL_MFPEVX_SW
|
|
case PHAL_MFPEVX_SW_ID:
|
|
status = phalMfpEVx_Sw_ReadSign((phalMfpEVx_Sw_DataParams_t *) pDataParams, bLayer4Comm, bAddr, pSignature);
|
|
break;
|
|
#endif /* NXPBUILD__PHAL_MFPEVX_SW */
|
|
|
|
default:
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFPEVX);
|
|
break;
|
|
}
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_BUFFER(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(pSignature), *pSignature, 56);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
phStatus_t phalMfpEVx_ResetAuth(void * pDataParams)
|
|
{
|
|
phStatus_t PH_MEMLOC_REM status;
|
|
|
|
PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phalMfpEVx_ResetAuth");
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
|
|
|
|
/* Validate the parameters. */
|
|
PH_ASSERT_NULL_DATA_PARAM(pDataParams, PH_COMP_AL_MFPEVX);
|
|
|
|
/* Log the information. */
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
|
|
|
|
/* Component Code Validation */
|
|
if(PH_GET_COMPCODE(pDataParams) != PH_COMP_AL_MFPEVX)
|
|
{
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFPEVX);
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
/* Perform operation on active layer. */
|
|
switch(PH_GET_COMPID(pDataParams))
|
|
{
|
|
#ifdef NXPBUILD__PHAL_MFPEVX_SW
|
|
case PHAL_MFPEVX_SW_ID:
|
|
status = phalMfpEVx_Sw_ResetAuth((phalMfpEVx_Sw_DataParams_t *) pDataParams);
|
|
break;
|
|
#endif /* NXPBUILD__PHAL_MFPEVX_SW */
|
|
|
|
default:
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFPEVX);
|
|
break;
|
|
}
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
phStatus_t phalMfpEVx_PersonalizeUid(void * pDataParams, uint8_t bUidType)
|
|
{
|
|
phStatus_t PH_MEMLOC_REM status;
|
|
|
|
PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phalMfpEVx_PersonalizeUid");
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(bUidType);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
|
|
|
|
/* Validate the parameters. */
|
|
PH_ASSERT_NULL_DATA_PARAM(pDataParams, PH_COMP_AL_MFPEVX);
|
|
|
|
/* Log the information. */
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(bUidType), &bUidType);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
|
|
|
|
/* Component Code Validation */
|
|
if(PH_GET_COMPCODE(pDataParams) != PH_COMP_AL_MFPEVX)
|
|
{
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFPEVX);
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
/* Perform operation on active layer. */
|
|
switch(PH_GET_COMPID(pDataParams))
|
|
{
|
|
#ifdef NXPBUILD__PHAL_MFPEVX_SW
|
|
case PHAL_MFPEVX_SW_ID:
|
|
status = phalMfpEVx_Sw_PersonalizeUid((phalMfpEVx_Sw_DataParams_t *) pDataParams, bUidType);
|
|
break;
|
|
#endif /* NXPBUILD__PHAL_MFPEVX_SW */
|
|
|
|
default:
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFPEVX);
|
|
break;
|
|
}
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
phStatus_t phalMfpEVx_SetConfigSL1(void * pDataParams, uint8_t bOption)
|
|
{
|
|
phStatus_t PH_MEMLOC_REM status;
|
|
|
|
PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "PhalMfpEv1_SetConfigSL1");
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(bOption);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
|
|
|
|
/* Validate the parameters. */
|
|
PH_ASSERT_NULL_DATA_PARAM(pDataParams, PH_COMP_AL_MFPEVX);
|
|
|
|
/* Log the information. */
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(bOption), &bOption);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
|
|
|
|
/* Component Code Validation */
|
|
if(PH_GET_COMPCODE(pDataParams) != PH_COMP_AL_MFPEVX)
|
|
{
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
return PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFPEVX);
|
|
}
|
|
|
|
/* Perform operation on active layer. */
|
|
switch(PH_GET_COMPID(pDataParams))
|
|
{
|
|
#ifdef NXPBUILD__PHAL_MFPEVX_SW
|
|
case PHAL_MFPEVX_SW_ID:
|
|
status = phalMfpEVx_Sw_SetConfigSL1((phalMfpEVx_Sw_DataParams_t *) pDataParams, bOption);
|
|
break;
|
|
#endif /* NXPBUILD__PHAL_MFPEVX_SW */
|
|
|
|
default:
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFPEVX);
|
|
break;
|
|
}
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
return status;
|
|
}
|
|
|
|
phStatus_t phalMfpEVx_ReadSL1TMBlock(void * pDataParams, uint16_t wBlockNr, uint8_t * pBlocks)
|
|
{
|
|
phStatus_t PH_MEMLOC_REM status;
|
|
|
|
PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phalMfpEVx_ReadSL1Tmac");
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(wBlockNr);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(pBlocks);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
|
|
|
|
/* Validate the parameters. */
|
|
PH_ASSERT_NULL_DATA_PARAM(pDataParams, PH_COMP_AL_MFPEVX);
|
|
PH_ASSERT_NULL_PARAM(pBlocks, PH_COMP_AL_MFPEVX);
|
|
|
|
/* Log the information. */
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wBlockNr), &wBlockNr);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
|
|
|
|
/* Component Code Validation */
|
|
if(PH_GET_COMPCODE(pDataParams) != PH_COMP_AL_MFPEVX)
|
|
{
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFPEVX);
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
/* Perform operation on active layer. */
|
|
switch(PH_GET_COMPID(pDataParams))
|
|
{
|
|
#ifdef NXPBUILD__PHAL_MFPEVX_SW
|
|
case PHAL_MFPEVX_SW_ID:
|
|
status = phalMfpEVx_Sw_ReadSL1TMBlock((phalMfpEVx_Sw_DataParams_t *) pDataParams, wBlockNr, pBlocks);
|
|
break;
|
|
#endif /* NXPBUILD__PHAL_MFPEVX_SW */
|
|
|
|
default:
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFPEVX);
|
|
break;
|
|
}
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
#ifdef NXPBUILD__PH_LOG
|
|
if((status & PH_ERR_MASK) == PH_ERR_SUCCESS)
|
|
{
|
|
PH_LOG_HELPER_ADDPARAM_BUFFER(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(pBlocks), pBlocks, 16);
|
|
}
|
|
#endif
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
phStatus_t phalMfpEVx_VCSupportLastISOL3(void * pDataParams, uint8_t * pIid, uint8_t * pPcdCapL3, uint8_t * pInfo)
|
|
{
|
|
phStatus_t PH_MEMLOC_REM status;
|
|
|
|
PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phalMfpEV1_VCSupportLastISOL3");
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(pIid);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(pPcdCapL3);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(pInfo);
|
|
|
|
/* Validate the parameters. */
|
|
PH_ASSERT_NULL_DATA_PARAM(pDataParams, PH_COMP_AL_MFPEVX);
|
|
|
|
/* Log the information. */
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_BUFFER(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(pIid), pIid, 16);
|
|
PH_LOG_HELPER_ADDPARAM_BUFFER(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(pPcdCapL3), pPcdCapL3, 4);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
|
|
|
|
/* Component Code Validation */
|
|
if(PH_GET_COMPCODE(pDataParams) != PH_COMP_AL_MFPEVX)
|
|
{
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
return PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFPEVX);
|
|
}
|
|
|
|
/* Perform operation on active layer. */
|
|
switch(PH_GET_COMPID(pDataParams))
|
|
{
|
|
#ifdef NXPBUILD__PHAL_MFPEVX_SW
|
|
case PHAL_MFPEVX_SW_ID:
|
|
status = phalMfpEVx_Sw_VCSupportLastISOL3((phalMfpEVx_Sw_DataParams_t *) pDataParams, pIid, pPcdCapL3, pInfo);
|
|
break;
|
|
#endif /* NXPBUILD__PHAL_MFPEVX_SW */
|
|
|
|
default:
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFPEVX);
|
|
break;
|
|
}
|
|
|
|
if(pInfo != NULL)
|
|
{
|
|
PH_LOG_HELPER_ADDPARAM_BUFFER(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(pInfo), pInfo, 1);
|
|
}
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
/***************************************************************************************************************************************/
|
|
/* Mifare Plus EV1 Generic command for utility operations. */
|
|
/***************************************************************************************************************************************/
|
|
phStatus_t phalMfpEVx_ResetSecMsgState(void * pDataParams)
|
|
{
|
|
phStatus_t PH_MEMLOC_REM status;
|
|
|
|
PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phalMfpEVx_ResetSecMsgState");
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
|
|
|
|
/* Validate the parameters. */
|
|
PH_ASSERT_NULL_DATA_PARAM(pDataParams, PH_COMP_AL_MFPEVX);
|
|
|
|
/* Log the information. */
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
|
|
|
|
/* Component Code Validation */
|
|
if(PH_GET_COMPCODE(pDataParams) != PH_COMP_AL_MFPEVX)
|
|
{
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFPEVX);
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
/* Perform operation on active layer. */
|
|
switch(PH_GET_COMPID(pDataParams))
|
|
{
|
|
#ifdef NXPBUILD__PHAL_MFPEVX_SW
|
|
case PHAL_MFPEVX_SW_ID:
|
|
status = phalMfpEVx_Sw_ResetSecMsgState((phalMfpEVx_Sw_DataParams_t *) pDataParams);
|
|
break;
|
|
#endif /* NXPBUILD__PHAL_MFPEVX_SW */
|
|
|
|
default:
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFPEVX);
|
|
break;
|
|
}
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
phStatus_t phalMfpEVx_SetConfig(void * pDataParams, uint16_t wOption, uint16_t wValue)
|
|
{
|
|
phStatus_t PH_MEMLOC_REM status;
|
|
|
|
PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phalMfpEVx_SetConfig");
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(wOption);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(wValue);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
|
|
|
|
/* Validate the parameters. */
|
|
PH_ASSERT_NULL_DATA_PARAM(pDataParams, PH_COMP_AL_MFPEVX);
|
|
|
|
/* Log the information. */
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wOption), &wOption);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wValue), &wValue);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
|
|
|
|
/* Component Code Validation */
|
|
if(PH_GET_COMPCODE(pDataParams) != PH_COMP_AL_MFPEVX)
|
|
{
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
return PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFPEVX);
|
|
}
|
|
|
|
/* Perform operation on active layer. */
|
|
switch(PH_GET_COMPID(pDataParams))
|
|
{
|
|
#ifdef NXPBUILD__PHAL_MFPEVX_SW
|
|
case PHAL_MFPEVX_SW_ID:
|
|
status = phalMfpEVx_Sw_SetConfig((phalMfpEVx_Sw_DataParams_t *) pDataParams, wOption, wValue);
|
|
break;
|
|
#endif /* NXPBUILD__PHAL_MFPEVX_SW */
|
|
|
|
default:
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFPEVX);
|
|
break;
|
|
}
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
phStatus_t phalMfpEVx_GetConfig(void * pDataParams, uint16_t wOption, uint16_t * pValue)
|
|
{
|
|
phStatus_t PH_MEMLOC_REM status;
|
|
|
|
PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phalMfpEVx_GetConfig");
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(wOption);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(pValue);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
|
|
|
|
/* Validate the parameters. */
|
|
PH_ASSERT_NULL_DATA_PARAM(pDataParams, PH_COMP_AL_MFPEVX);
|
|
PH_ASSERT_NULL_PARAM(pValue, PH_COMP_AL_MFPEVX);
|
|
|
|
/* Log the information. */
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wOption), &wOption);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
|
|
|
|
/* Component Code Validation */
|
|
if(PH_GET_COMPCODE(pDataParams) != PH_COMP_AL_MFPEVX)
|
|
{
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
return PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFPEVX);
|
|
}
|
|
|
|
/* Perform operation on active layer. */
|
|
switch(PH_GET_COMPID(pDataParams))
|
|
{
|
|
#ifdef NXPBUILD__PHAL_MFPEVX_SW
|
|
case PHAL_MFPEVX_SW_ID:
|
|
status = phalMfpEVx_Sw_GetConfig((phalMfpEVx_Sw_DataParams_t *) pDataParams, wOption, pValue);
|
|
break;
|
|
#endif /* NXPBUILD__PHAL_MFPEVX_SW */
|
|
|
|
default:
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFPEVX);
|
|
break;
|
|
}
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
#ifdef NXPBUILD__PH_LOG
|
|
if((status & PH_ERR_MASK) == PH_ERR_SUCCESS)
|
|
{
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(pValue), pValue);
|
|
}
|
|
#endif
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
phStatus_t phalMfpEVx_SetVCAParams(void * pDataParams, void * pAlVCADataParams)
|
|
{
|
|
phStatus_t PH_MEMLOC_REM status;
|
|
|
|
PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phalMfpEVx_SetVCAParams");
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
|
|
|
|
/* Validate the parameters. */
|
|
PH_ASSERT_NULL_DATA_PARAM(pDataParams, PH_COMP_AL_MFPEVX);
|
|
PH_ASSERT_NULL_PARAM(pAlVCADataParams, PH_COMP_AL_MFPEVX);
|
|
|
|
/* Log the information. */
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
|
|
|
|
/* Component Code Validation */
|
|
if(PH_GET_COMPCODE(pDataParams) != PH_COMP_AL_MFPEVX)
|
|
{
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFPEVX);
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
/* Perform operation on active layer. */
|
|
switch(PH_GET_COMPID(pDataParams))
|
|
{
|
|
#ifdef NXPBUILD__PHAL_MFPEVX_SW
|
|
case PHAL_MFPEVX_SW_ID:
|
|
status = phalMfpEVx_Sw_SetVCAParams((phalMfpEVx_Sw_DataParams_t *) pDataParams, pAlVCADataParams);
|
|
break;
|
|
#endif /* NXPBUILD__PHAL_MFPEVX_SW */
|
|
|
|
default:
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFPEVX);
|
|
break;
|
|
}
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
#endif /* NXPBUILD__PHAL_MFPEVX */
|