diff options
-rwxr-xr-x | Android.mk | 5 | ||||
-rw-r--r-- | Linux_x86/phOsalNfc.c | 1 | ||||
-rw-r--r-- | inc/nfc_custom_config_example.h (renamed from inc/nfc_custom_config.h) | 37 | ||||
-rw-r--r-- | src/phFriNfc_OvrHal.c | 5 | ||||
-rw-r--r-- | src/phFriNfc_TopazDynamicMap.c | 5 | ||||
-rwxr-xr-x | src/phHal4Nfc_ADD.c | 15 | ||||
-rwxr-xr-x | src/phHciNfc_AdminMgmt.c | 1 |
7 files changed, 42 insertions, 27 deletions
@@ -107,6 +107,11 @@ LOCAL_SRC_FILES += Linux_x86/phDal4Nfc_messageQueueLib.c LOCAL_CFLAGS += -DNXP_MESSAGING -DANDROID -DNFC_TIMER_CONTEXT -fno-strict-aliasing +ifeq ($(TARGET_HAS_NFC_CUSTOM_CONFIG),true) +LOCAL_CFLAGS += -DNFC_CUSTOM_CONFIG_INCLUDE +LOCAL_CFLAGS += -I$(TARGET_OUT_HEADERS)/libnfc-nxp +endif + # Uncomment for Chipset command/responses # Or use "setprop debug.nfc.LOW_LEVEL_TRACES" at run-time # LOCAL_CFLAGS += -DLOW_LEVEL_TRACES diff --git a/Linux_x86/phOsalNfc.c b/Linux_x86/phOsalNfc.c index a158415..e906b0d 100644 --- a/Linux_x86/phOsalNfc.c +++ b/Linux_x86/phOsalNfc.c @@ -144,6 +144,7 @@ void phOsalNfc_RaiseException(phOsalNfc_ExceptionType_t eExceptionType, uint16_t { if(eExceptionType == phOsalNfc_e_UnrecovFirmwareErr) { + ALOGE("HCI Timeout - Exception raised - Force restart of NFC service"); phLibNfc_Mgt_Recovery(); abort(); } else { diff --git a/inc/nfc_custom_config.h b/inc/nfc_custom_config_example.h index 0b4455a..d400bcc 100644 --- a/inc/nfc_custom_config.h +++ b/inc/nfc_custom_config_example.h @@ -20,7 +20,7 @@ * \brief HAL Custom Configurations * * -* \note This is the configuration header file of the HAL 4.0. custom configurable +* \note This is the configuration header file of the HAL 4.0. custom configurable * parameters of the HAL 4.0 are provided in this file * * Project: NFC-FRI-1.1 / HAL4.0 @@ -39,7 +39,7 @@ /*@}*/ -/** +/** * \name Hal * * File: \ref nfc_custom_config.h @@ -60,15 +60,15 @@ /**< Default Session ID for Initialisation */ #define DEFAULT_SESSION "NXP-NFC2" -/** Resolution value for the timer, here the +/** Resolution value for the timer, here the timer resolution is 100 milliseconds */ #define TIMER_RESOLUTION 100U -/**< Defines connection time out value for LLC timer, +/**< Defines connection time out value for LLC timer, 500 is in milliseconds */ #define LINK_CONNECTION_TIMEOUT 500U -/**< Defines guard time out value for LLC timer, +/**< Defines guard time out value for LLC timer, 250 is in milliseconds */ #define LINK_GUARD_TIMEOUT 250U @@ -76,14 +76,14 @@ * Initialisation */ -/* PLEASE NOTE: This Macro should be only enabled if there is a SMART_MX +/* PLEASE NOTE: This Macro should be only enabled if there is a SMART_MX * Chip attached to the PN544. */ /* #define NXP_HAL_ENABLE_SMX */ -/* PLEASE NOTE: Kindly change the DEFAULT_SESSION Macro for each of the +/* PLEASE NOTE: Kindly change the DEFAULT_SESSION Macro for each of the * configuration change done for the below Macros */ @@ -108,12 +108,12 @@ #define NFC_DEV_HWCONF_DEFAULT 0xBCU -/**< TX LDO Configuration +/**< TX LDO Configuration 0x00 -> 00b 3.0 V, 0x01 -> 01b 3.0 V, 0x02 -> 10b 2.7 V, 0x03 -> 11b 3.3 V, - + */ #define NXP_DEFAULT_TX_LDO 0x00U @@ -134,17 +134,17 @@ #define NXP_UICC_BIT_RATE 0x08U /**< Indicates PN544 Power Modes Configuration for the NFC Device, - 0x00U -> PN544 stays in active bat mode + 0x00U -> PN544 stays in active bat mode (except when generating RF field) - 0x01U -> PN544 goes in standby when possible otherwise + 0x01U -> PN544 goes in standby when possible otherwise stays in active bat mode - 0x02U -> PN544 goes in idle mode as soon as it can + 0x02U -> PN544 goes in idle mode as soon as it can (otherwise it is in active bat except when generating RF field) - 0x03U -> PN544 goes in standby when possible otherwise goes in idle mode - as soon as it can (otherwise it is in active bat except when + 0x03U -> PN544 goes in standby when possible otherwise goes in idle mode + as soon as it can (otherwise it is in active bat except when generating RF field) */ - + #define NXP_SYSTEM_PWR_STATUS 0x01U @@ -169,10 +169,10 @@ /* Reset the Default values of Host Link Timers */ -/* Macro to Enable the Host Side Link Timeout Configuration +/* Macro to Enable the Host Side Link Timeout Configuration * 0x00 ----> Default Pre-defined Configuration; * 0x01 ----> Update only the Host Link Guard Timeout Configuration; - * 0x03 ----> Update Both the Host Link Guard Timeout + * 0x03 ----> Update Both the Host Link Guard Timeout and ACK Timeout Configuration; */ #define HOST_LINK_TIMEOUT 0x00U @@ -184,7 +184,7 @@ #define NXP_NFC_LINK_ACK_CFG_DEFAULT 0x0005U -/* Macro to Enable the Interface Character Timeout Configuration +/* Macro to Enable the Interface Character Timeout Configuration * 0x00 ----> Default Pre-defined Configuration; * 0x01 ----> Update the IFC Timeout Default Configuration; */ @@ -198,4 +198,3 @@ #endif /* NFC_CUSTOM_CONFIG_H */ - diff --git a/src/phFriNfc_OvrHal.c b/src/phFriNfc_OvrHal.c index 539210e..9efff94 100644 --- a/src/phFriNfc_OvrHal.c +++ b/src/phFriNfc_OvrHal.c @@ -323,7 +323,10 @@ static void phFriNfc_OvrHal_CB_Transceive(void *context, if(NULL != pRecvdata && OvrHal->TranceiveInfo.sRecvData.buffer != NULL && pRecvdata->buffer != NULL) { /* Work-around for the NFCIP Tranceive API */ - memcpy(OvrHal->TranceiveInfo.sRecvData.buffer, pRecvdata->buffer, pRecvdata->length); + if (OvrHal->TranceiveInfo.sRecvData.buffer != pRecvdata->buffer) + { + memcpy(OvrHal->TranceiveInfo.sRecvData.buffer, pRecvdata->buffer, pRecvdata->length); + } if (OvrHal->pndef_recv_length != NULL) { *OvrHal->pndef_recv_length = (uint16_t) pRecvdata->length; diff --git a/src/phFriNfc_TopazDynamicMap.c b/src/phFriNfc_TopazDynamicMap.c index 2aa29ea..e9d1529 100644 --- a/src/phFriNfc_TopazDynamicMap.c +++ b/src/phFriNfc_TopazDynamicMap.c @@ -199,6 +199,9 @@ so there are 4 segements in the card */ ((((block_no) + 1) == TOPAZ_STATIC_LOCK_FIRST_BLOCK_NO) ? \ (((block_no) + 1) + TOPAZ_STATIC_LOCK_BLOCK_AREAS) : \ ((block_no) + 1)) +/* Check topaz spec version number */ +#define TOPAZ_COMPARE_VERSION(device_ver, tag_ver) \ + ((device_ver & 0xF0) >= (tag_ver & 0xF0)) #ifdef FRINFC_READONLY_NDEF @@ -2368,7 +2371,7 @@ phFriNfc_Tpz_H_CheckCCBytesForWrite ( { check_index = (uint8_t)(check_index + 1); - if ((check_cc_rw[0] != ps_tpz_info->CCByteBuf[1]) || + if ((!TOPAZ_COMPARE_VERSION(check_cc_rw[0], ps_tpz_info->CCByteBuf[1])) || (check_cc_rw[1] != ps_tpz_info->CCByteBuf[2]) || (check_cc_rw[2] != ps_tpz_info->CCByteBuf[3])) { diff --git a/src/phHal4Nfc_ADD.c b/src/phHal4Nfc_ADD.c index 54dd1c1..9461e43 100755 --- a/src/phHal4Nfc_ADD.c +++ b/src/phHal4Nfc_ADD.c @@ -671,12 +671,15 @@ void phHal4Nfc_TargetDiscoveryComplete( if(phHal_eNfcIP1_Target == Hal4Ctxt->rem_dev_list[Count-1]->RemDevType) { - (void)memcpy( - (void *)Hal4Ctxt->rem_dev_list[0], - (void *)Hal4Ctxt->rem_dev_list[Count-1], - sizeof(phHal_sRemoteDevInformation_t) - ); - NfcIpDeviceCount = 1; + if (Count != 1) + { + (void)memcpy( + (void *)Hal4Ctxt->rem_dev_list[0], + (void *)Hal4Ctxt->rem_dev_list[Count-1], + sizeof(phHal_sRemoteDevInformation_t) + ); + } + NfcIpDeviceCount = 1; break; } } diff --git a/src/phHciNfc_AdminMgmt.c b/src/phHciNfc_AdminMgmt.c index ba8a023..312aa66 100755 --- a/src/phHciNfc_AdminMgmt.c +++ b/src/phHciNfc_AdminMgmt.c @@ -1006,6 +1006,7 @@ static pipe_id = hcp_message->payload[RESPONSE_PIPEID_OFFSET]; p_pipe_info = (phHciNfc_Pipe_Info_t *) phOsalNfc_GetMemory(sizeof(phHciNfc_Pipe_Info_t)); + memset(p_pipe_info, 0, sizeof(phHciNfc_Pipe_Info_t)); if(NULL != p_pipe_info) { /* The Source Host is the UICC Host */ |