summaryrefslogtreecommitdiffstats
path: root/halimpl/bcm2079x/hal
diff options
context:
space:
mode:
authorEvan Chu <evanchu@broadcom.com>2013-11-13 15:30:16 -0500
committerMartijn Coenen <maco@google.com>2014-05-19 13:28:24 -0700
commita24be4f06674b2707b57904deaa0dff5a95823bd (patch)
tree827ab876d14aef121f4bfa398f5a538a0bdd1221 /halimpl/bcm2079x/hal
parente9629bad30a9f478b336ab46b8e6e02f7f87af46 (diff)
downloadandroid_hardware_broadcom_nfc-a24be4f06674b2707b57904deaa0dff5a95823bd.tar.gz
android_hardware_broadcom_nfc-a24be4f06674b2707b57904deaa0dff5a95823bd.tar.bz2
android_hardware_broadcom_nfc-a24be4f06674b2707b57904deaa0dff5a95823bd.zip
Upgrade stack to NFA_PI_1.03.66+
Take code from NFCA_MI_430.10.00.07. Additional changes include: * Adjust copyright. * Clean up stack and HAL diagnostic tracing. * Fix ce_t4t_data_cback() in src/nfc/tags/ce_t4t.c in order to let HCE payment to work. * Reduce compilation warnings. Change-Id: I7b174229029d4a4955ff7750623e78c9a8c856f6
Diffstat (limited to 'halimpl/bcm2079x/hal')
-rw-r--r--halimpl/bcm2079x/hal/hal/nfc_hal_dm.c38
-rw-r--r--halimpl/bcm2079x/hal/hal/nfc_hal_dm_cfg.c8
-rw-r--r--halimpl/bcm2079x/hal/hal/nfc_hal_hci.c266
-rw-r--r--halimpl/bcm2079x/hal/hal/nfc_hal_hci_ci.c3
-rw-r--r--halimpl/bcm2079x/hal/hal/nfc_hal_main.c11
-rw-r--r--halimpl/bcm2079x/hal/hal/nfc_hal_nci.c20
-rw-r--r--halimpl/bcm2079x/hal/hal/nfc_hal_prm.c12
7 files changed, 236 insertions, 122 deletions
diff --git a/halimpl/bcm2079x/hal/hal/nfc_hal_dm.c b/halimpl/bcm2079x/hal/hal/nfc_hal_dm.c
index 46ef04b..ad02144 100644
--- a/halimpl/bcm2079x/hal/hal/nfc_hal_dm.c
+++ b/halimpl/bcm2079x/hal/hal/nfc_hal_dm.c
@@ -73,18 +73,6 @@ const UINT8 nfc_hal_dm_get_patch_version_cmd [NCI_MSG_HDR_SIZE] =
};
#define NCI_PATCH_INFO_VERSION_LEN 16 /* Length of patch version string in PATCH_INFO */
-/* Version string for BCM20791B3 */
-const UINT8 NFC_HAL_DM_BCM20791B3_STR[] = "20791B3";
-#define NFC_HAL_DM_BCM20791B3_STR_LEN (sizeof (NFC_HAL_DM_BCM20791B3_STR)-1)
-
-/* Version string for BCM20791B4 */
-const UINT8 NFC_HAL_DM_BCM20791B4_STR[] = "20791B4";
-#define NFC_HAL_DM_BCM20791B4_STR_LEN (sizeof (NFC_HAL_DM_BCM20791B4_STR)-1)
-
-/* Version string for BCM43341B0 */
-const UINT8 NFC_HAL_DM_BCM43341B0_STR[] = "43341B0";
-#define NFC_HAL_DM_BCM43341B0_STR_LEN (sizeof (NFC_HAL_DM_BCM43341B0_STR)-1)
-
/*****************************************************************************
** Extern function prototypes
*****************************************************************************/
@@ -576,25 +564,7 @@ void nfc_hal_dm_proc_msg_during_init (NFC_HDR *p_msg)
STREAM_TO_ARRAY (chipverstr, p, chipverlen);
- if ((chipverlen == NFC_HAL_DM_BCM20791B3_STR_LEN) && (memcmp (NFC_HAL_DM_BCM20791B3_STR, chipverstr, NFC_HAL_DM_BCM20791B3_STR_LEN) == 0))
- {
- /* BCM2079B3 FW - eSE restarted for patch download */
- nfc_hal_cb.hci_cb.hci_fw_workaround = TRUE;
- nfc_hal_cb.hci_cb.hci_fw_validate_netwk_cmd = TRUE;
- }
- else if ( ((chipverlen == NFC_HAL_DM_BCM20791B4_STR_LEN) && (memcmp (NFC_HAL_DM_BCM20791B4_STR, chipverstr, NFC_HAL_DM_BCM20791B4_STR_LEN) == 0))
- ||((chipverlen == NFC_HAL_DM_BCM43341B0_STR_LEN) && (memcmp (NFC_HAL_DM_BCM43341B0_STR, chipverstr, NFC_HAL_DM_BCM43341B0_STR_LEN) == 0)) )
- {
- /* BCM43341B0/BCM2079B4 FW - eSE restarted for patch download */
- nfc_hal_cb.hci_cb.hci_fw_workaround = TRUE;
- nfc_hal_cb.hci_cb.hci_fw_validate_netwk_cmd = FALSE;
- }
- else
- {
- /* BCM2079B5 FW - eSE not be restarted for patch download from UICC */
- nfc_hal_cb.hci_cb.hci_fw_workaround = FALSE;
- nfc_hal_cb.hci_cb.hci_fw_validate_netwk_cmd = FALSE;
- }
+ nfc_hal_hci_handle_build_info (chipverlen, chipverstr);
/* if NFCC needs to set Xtal frequency before getting patch version */
if (nfc_hal_dm_get_xtal_index (nfc_hal_cb.dev_cb.brcm_hw_id, &xtal_freq) < NFC_HAL_XTAL_INDEX_MAX)
@@ -988,7 +958,6 @@ void nfc_hal_dm_shutting_down_nfcc (void)
}
nfc_hal_cb.ncit_cb.nci_wait_rsp = NFC_HAL_WAIT_RSP_NONE;
- nfc_hal_cb.hci_cb.hcp_conn_id = 0;
nfc_hal_cb.dev_cb.power_mode = NFC_HAL_POWER_MODE_FULL;
nfc_hal_cb.dev_cb.snooze_mode = NFC_HAL_LP_SNOOZE_MODE_NONE;
@@ -997,7 +966,10 @@ void nfc_hal_dm_shutting_down_nfcc (void)
nfc_hal_main_stop_quick_timer (&nfc_hal_cb.ncit_cb.nci_wait_rsp_timer);
nfc_hal_main_stop_quick_timer (&nfc_hal_cb.dev_cb.lp_timer);
nfc_hal_main_stop_quick_timer (&nfc_hal_cb.prm.timer);
+#if (defined(NFC_HAL_HCI_INCLUDED) && (NFC_HAL_HCI_INCLUDED == TRUE))
+ nfc_hal_cb.hci_cb.hcp_conn_id = 0;
nfc_hal_main_stop_quick_timer (&nfc_hal_cb.hci_cb.hci_timer);
+#endif
nfc_hal_main_stop_quick_timer (&nfc_hal_cb.timer);
}
@@ -1019,7 +991,9 @@ void nfc_hal_dm_init (void)
nfc_hal_cb.ncit_cb.nci_wait_rsp_timer.p_cback = nfc_hal_nci_cmd_timeout_cback;
+#if (defined(NFC_HAL_HCI_INCLUDED) && (NFC_HAL_HCI_INCLUDED == TRUE))
nfc_hal_cb.hci_cb.hci_timer.p_cback = nfc_hal_hci_timeout_cback;
+#endif
nfc_hal_cb.pre_discover_done = FALSE;
diff --git a/halimpl/bcm2079x/hal/hal/nfc_hal_dm_cfg.c b/halimpl/bcm2079x/hal/hal/nfc_hal_dm_cfg.c
index defc610..420a538 100644
--- a/halimpl/bcm2079x/hal/hal/nfc_hal_dm_cfg.c
+++ b/halimpl/bcm2079x/hal/hal/nfc_hal_dm_cfg.c
@@ -148,10 +148,14 @@ tNFC_HAL_CFG nfc_hal_cfg =
** then set it to short to optimize bootup time because NFCC cannot send RESET NTF.
** Otherwise, it depends on NVM type and size of patchram.
*/
- (UINT16) NFC_HAL_NFCC_ENABLE_TIMEOUT, /* max time to wait for RESET NTF after setting Xtal frequency
+ (UINT16) NFC_HAL_NFCC_ENABLE_TIMEOUT /* max time to wait for RESET NTF after setting Xtal frequency
** It depends on NVM type and size of patchram.
*/
- (HAL_NFC_HCI_UICC0_HOST | HAL_NFC_HCI_UICC1_HOST) /* Set bit(s) for supported UICC(s) */
+#if (defined(NFC_HAL_HCI_INCLUDED) && (NFC_HAL_HCI_INCLUDED == TRUE))
+ ,
+ TRUE, /* set nfc_hal_first_boot to TRUE, if platform enables NFC for the first time after bootup */
+ (HAL_NFC_HCI_UICC0_HOST | HAL_NFC_HCI_UICC1_HOST | HAL_NFC_HCI_UICC2_HOST) /* Set bit(s) for supported UICC(s) */
+#endif
};
tNFC_HAL_CFG *p_nfc_hal_cfg= (tNFC_HAL_CFG *) &nfc_hal_cfg;
diff --git a/halimpl/bcm2079x/hal/hal/nfc_hal_hci.c b/halimpl/bcm2079x/hal/hal/nfc_hal_hci.c
index 0a754d1..6b573d5 100644
--- a/halimpl/bcm2079x/hal/hal/nfc_hal_hci.c
+++ b/halimpl/bcm2079x/hal/hal/nfc_hal_hci.c
@@ -23,13 +23,17 @@
*
******************************************************************************/
#include "gki.h"
+#include "nfc_hal_target.h"
#include "nfc_hal_api.h"
#include "nfc_hal_int.h"
+
+#if (defined(NFC_HAL_HCI_INCLUDED) && (NFC_HAL_HCI_INCLUDED == TRUE))
+
#include "nfc_hal_nv_ci.h"
#include "nfc_hal_nv_co.h"
#include <string.h>
-#include "nfc_hal_nv_co.h"
+
#ifndef NFC_HAL_HCI_NV_READ_TIMEOUT
#define NFC_HAL_HCI_NV_READ_TIMEOUT 1000
@@ -46,6 +50,21 @@
#define NFC_HAL_HCI_PIPE_VALID_MASK 0x80
+#define NFC_HAL_HCI_FIRST_BOOT_SESSION_ID_0_VAL 0xFF
+#define NFC_HAL_HCI_NEXT_BOOT_SESSION_ID_0_VAL 0xFE
+
+/* Version string for BCM20791B3 */
+const UINT8 NFC_HAL_DM_BCM20791B3_STR[] = "20791B3";
+#define NFC_HAL_DM_BCM20791B3_STR_LEN (sizeof (NFC_HAL_DM_BCM20791B3_STR)-1)
+
+/* Version string for BCM20791B4 */
+const UINT8 NFC_HAL_DM_BCM20791B4_STR[] = "20791B4";
+#define NFC_HAL_DM_BCM20791B4_STR_LEN (sizeof (NFC_HAL_DM_BCM20791B4_STR)-1)
+
+/* Version string for BCM43341B0 */
+const UINT8 NFC_HAL_DM_BCM43341B0_STR[] = "43341B0";
+#define NFC_HAL_DM_BCM43341B0_STR_LEN (sizeof (NFC_HAL_DM_BCM43341B0_STR)-1)
+
extern tNFC_HAL_CFG *p_nfc_hal_cfg;
/****************************************************************************
** Internal function prototypes
@@ -72,10 +91,10 @@ void nfc_hal_hci_evt_hdlr (tNFC_HAL_HCI_EVENT_DATA *p_evt_data)
switch (p_evt_data->hdr.event)
{
case NFC_HAL_HCI_RSP_NV_READ_EVT:
- if ( (nfc_hal_cb.hci_cb.p_hci_netwk_info_buf && (p_evt_data->nv_read.block == HC_F3_NV_BLOCK || p_evt_data->nv_read.block == HC_F4_NV_BLOCK))
+ if ( (nfc_hal_cb.hci_cb.p_hci_netwk_info_buf && (p_evt_data->nv_read.block == HC_F3_NV_BLOCK || p_evt_data->nv_read.block == HC_F4_NV_BLOCK || p_evt_data->nv_read.block == HC_F5_NV_BLOCK))
||(nfc_hal_cb.hci_cb.p_hci_netwk_dh_info_buf && p_evt_data->nv_read.block == HC_F2_NV_BLOCK) )
{
- nfc_hal_hci_handle_nv_read (p_evt_data->nv_read.block, p_evt_data->nv_read.status, p_evt_data->nv_read.size);
+ nfc_hal_hci_handle_nv_read (p_evt_data->nv_read.block, p_evt_data->nv_read.status, p_evt_data->nv_read.size);
}
else
{
@@ -131,7 +150,8 @@ void nfc_hal_hci_enable (void)
}
if ( (p_nfc_hal_cfg->nfc_hal_hci_uicc_support & HAL_NFC_HCI_UICC0_HOST)
- ||((p_nfc_hal_cfg->nfc_hal_hci_uicc_support & HAL_NFC_HCI_UICC1_HOST) && ((!nfc_hal_cb.hci_cb.hci_fw_workaround) || (nfc_hal_cb.nvm_cb.nvm_type == NCI_SPD_NVM_TYPE_EEPROM))) )
+ ||((p_nfc_hal_cfg->nfc_hal_hci_uicc_support & HAL_NFC_HCI_UICC1_HOST) && ((!nfc_hal_cb.hci_cb.hci_fw_workaround) || (nfc_hal_cb.nvm_cb.nvm_type == NCI_SPD_NVM_TYPE_EEPROM)))
+ ||(p_nfc_hal_cfg->nfc_hal_hci_uicc_support & HAL_NFC_HCI_UICC2_HOST) )
{
if ((p_hci_netwk_cmd = (UINT8 *) GKI_getbuf (NCI_MSG_HDR_SIZE + NFC_HAL_HCI_NETWK_INFO_SIZE)) == NULL)
{
@@ -165,6 +185,40 @@ void nfc_hal_hci_enable (void)
/*******************************************************************************
**
+** Function nfc_hal_hci_handle_build_info
+**
+** Description handle build info evt
+**
+** Returns void
+**
+*******************************************************************************/
+void nfc_hal_hci_handle_build_info (UINT8 chipverlen, UINT8 *p_chipverstr)
+{
+ HAL_TRACE_DEBUG0 ("nfc_hal_hci_handle_build_info ()");
+
+ if ((chipverlen == NFC_HAL_DM_BCM20791B3_STR_LEN) && (memcmp (NFC_HAL_DM_BCM20791B3_STR, p_chipverstr, NFC_HAL_DM_BCM20791B3_STR_LEN) == 0))
+ {
+ /* BCM2079B3 FW - eSE restarted for patch download */
+ nfc_hal_cb.hci_cb.hci_fw_workaround = TRUE;
+ nfc_hal_cb.hci_cb.hci_fw_validate_netwk_cmd = TRUE;
+ }
+ else if ( ((chipverlen == NFC_HAL_DM_BCM20791B4_STR_LEN) && (memcmp (NFC_HAL_DM_BCM20791B4_STR, p_chipverstr, NFC_HAL_DM_BCM20791B4_STR_LEN) == 0))
+ ||((chipverlen == NFC_HAL_DM_BCM43341B0_STR_LEN) && (memcmp (NFC_HAL_DM_BCM43341B0_STR, p_chipverstr, NFC_HAL_DM_BCM43341B0_STR_LEN) == 0)) )
+ {
+ /* BCM43341B0/BCM2079B4 FW - eSE restarted for patch download */
+ nfc_hal_cb.hci_cb.hci_fw_workaround = TRUE;
+ nfc_hal_cb.hci_cb.hci_fw_validate_netwk_cmd = FALSE;
+ }
+ else
+ {
+ /* BCM2079B5 FW - eSE not be restarted for patch download from UICC */
+ nfc_hal_cb.hci_cb.hci_fw_workaround = FALSE;
+ nfc_hal_cb.hci_cb.hci_fw_validate_netwk_cmd = FALSE;
+ }
+}
+
+/*******************************************************************************
+**
** Function nfc_hal_hci_handle_hci_netwk_info
**
** Description Handler function for HCI Network Notification
@@ -176,8 +230,9 @@ void nfc_hal_hci_handle_hci_netwk_info (UINT8 *p_data)
{
UINT8 *p = p_data;
UINT16 data_len;
- UINT8 target_handle;
- UINT8 hci_netwk_cmd[1 + NFC_HAL_HCI_SESSION_ID_LEN];
+ UINT8 target_handle = 0;
+ UINT8 hci_netwk_cmd[1 + NFC_HAL_HCI_SESSION_ID_LEN];
+ UINT8 block = 0;
HAL_TRACE_DEBUG0 ("nfc_hal_hci_handle_hci_netwk_info ()");
@@ -188,46 +243,46 @@ void nfc_hal_hci_handle_hci_netwk_info (UINT8 *p_data)
target_handle = *(UINT8 *) p;
if (target_handle == NFC_HAL_HCI_DH_TARGET_HANDLE)
+ {
+ /* Correct the session id assigned by DH */
+ *(p+1) = nfc_hal_cb.hci_cb.dh_session_id[0];
nfc_hal_nv_co_write (p, data_len, HC_F2_NV_BLOCK);
+ return;
+ }
- else if (target_handle == NFC_HAL_HCI_UICC0_TARGET_HANDLE)
+ if (target_handle == NFC_HAL_HCI_UICC0_TARGET_HANDLE)
{
- if ( (!nfc_hal_cb.hci_cb.hci_fw_validate_netwk_cmd)
- ||(p[NFC_HAL_HCI_NETWK_CMD_TYPE_A_CE_PIPE_INFO_OFFSET] & NFC_HAL_HCI_PIPE_VALID_MASK)
- ||(p[NFC_HAL_HCI_NETWK_CMD_TYPE_B_CE_PIPE_INFO_OFFSET] & NFC_HAL_HCI_PIPE_VALID_MASK)
- ||(p[NFC_HAL_HCI_NETWK_CMD_TYPE_BP_CE_PIPE_INFO_OFFSET] & NFC_HAL_HCI_PIPE_VALID_MASK)
- ||(p[NFC_HAL_HCI_NETWK_CMD_TYPE_F_CE_PIPE_INFO_OFFSET] & NFC_HAL_HCI_PIPE_VALID_MASK) )
- {
- /* HCI Network notification received for UICC 0, Update nv data */
- nfc_hal_nv_co_write (p, data_len,HC_F3_NV_BLOCK);
- }
- else
- {
- HAL_TRACE_DEBUG1 ("nfc_hal_hci_handle_hci_netwk_info(): Type A Card Emulation invalid, Reset nv file: 0x%02x", p[NFC_HAL_HCI_NETWK_CMD_TYPE_A_CE_PIPE_INFO_OFFSET]);
- hci_netwk_cmd[0] = NFC_HAL_HCI_UICC0_TARGET_HANDLE;
- memset (&hci_netwk_cmd[1], 0xFF, NFC_HAL_HCI_SESSION_ID_LEN);
- nfc_hal_nv_co_write (hci_netwk_cmd, 1, HC_F3_NV_BLOCK);
- }
+ block = HC_F3_NV_BLOCK;
}
else if (target_handle == NFC_HAL_HCI_UICC1_TARGET_HANDLE)
{
- if ( (!nfc_hal_cb.hci_cb.hci_fw_validate_netwk_cmd)
- ||(p[NFC_HAL_HCI_NETWK_CMD_TYPE_A_CE_PIPE_INFO_OFFSET] & NFC_HAL_HCI_PIPE_VALID_MASK)
- ||(p[NFC_HAL_HCI_NETWK_CMD_TYPE_B_CE_PIPE_INFO_OFFSET] & NFC_HAL_HCI_PIPE_VALID_MASK)
- ||(p[NFC_HAL_HCI_NETWK_CMD_TYPE_BP_CE_PIPE_INFO_OFFSET] & NFC_HAL_HCI_PIPE_VALID_MASK)
- ||(p[NFC_HAL_HCI_NETWK_CMD_TYPE_F_CE_PIPE_INFO_OFFSET] & NFC_HAL_HCI_PIPE_VALID_MASK) )
- {
- /* HCI Network notification received for UICC 1, Update nv data */
- nfc_hal_nv_co_write (p, data_len,HC_F4_NV_BLOCK);
- }
- else
- {
- HAL_TRACE_DEBUG1 ("nfc_hal_hci_handle_hci_netwk_info(): Type A Card Emulation invalid, Reset nv file: 0x%02x", p[NFC_HAL_HCI_NETWK_CMD_TYPE_A_CE_PIPE_INFO_OFFSET]);
- hci_netwk_cmd[0] = NFC_HAL_HCI_UICC1_TARGET_HANDLE;
- /* Reset Session ID */
- memset (&hci_netwk_cmd[1], 0xFF, NFC_HAL_HCI_SESSION_ID_LEN);
- nfc_hal_nv_co_write (hci_netwk_cmd, 1, HC_F4_NV_BLOCK);
- }
+ block = HC_F4_NV_BLOCK;
+ }
+ else if (target_handle == NFC_HAL_HCI_UICC2_TARGET_HANDLE)
+ {
+ block = HC_F5_NV_BLOCK;
+ }
+ else
+ {
+ HAL_TRACE_DEBUG1 ("nfc_hal_hci_handle_hci_netwk_info(): Invalid Target handle: 0x%02x", target_handle);
+ return;
+ }
+
+ if ( (!nfc_hal_cb.hci_cb.hci_fw_validate_netwk_cmd)
+ ||(p[NFC_HAL_HCI_NETWK_CMD_TYPE_A_CE_PIPE_INFO_OFFSET] & NFC_HAL_HCI_PIPE_VALID_MASK)
+ ||(p[NFC_HAL_HCI_NETWK_CMD_TYPE_B_CE_PIPE_INFO_OFFSET] & NFC_HAL_HCI_PIPE_VALID_MASK)
+ ||(p[NFC_HAL_HCI_NETWK_CMD_TYPE_BP_CE_PIPE_INFO_OFFSET] & NFC_HAL_HCI_PIPE_VALID_MASK)
+ ||(p[NFC_HAL_HCI_NETWK_CMD_TYPE_F_CE_PIPE_INFO_OFFSET] & NFC_HAL_HCI_PIPE_VALID_MASK) )
+ {
+ /* HCI Network notification received for UICC0/UICC1/UICC2, Update nv data */
+ nfc_hal_nv_co_write (p, data_len, block);
+ }
+ else
+ {
+ HAL_TRACE_DEBUG1 ("nfc_hal_hci_handle_hci_netwk_info(): Type A Card Emulation invalid, Reset nv file: 0x%02x", p[NFC_HAL_HCI_NETWK_CMD_TYPE_A_CE_PIPE_INFO_OFFSET]);
+ hci_netwk_cmd[0] = target_handle;
+ memset (&hci_netwk_cmd[1], 0xFF, NFC_HAL_HCI_SESSION_ID_LEN);
+ nfc_hal_nv_co_write (hci_netwk_cmd, 1, block);
}
}
@@ -298,13 +353,6 @@ BOOLEAN nfc_hal_hci_handle_hcp_pkt_to_hc (UINT8 *p_data)
HAL_TRACE_DEBUG0 ("nfc_hal_hci_handle_hcp_pkt_to_hc ()");
- if ( (!nfc_hal_cb.hci_cb.hci_fw_workaround)
- ||(nfc_hal_cb.nvm_cb.nvm_type != NCI_SPD_NVM_TYPE_UICC) )
- {
- /* Do nothing, just forward the stack hcp packet to host controller */
- return FALSE;
- }
-
chaining_bit = ((*p_data) >> 0x07) & 0x01;
pipe = (*p_data++) & 0x7F;
@@ -316,21 +364,46 @@ BOOLEAN nfc_hal_hci_handle_hcp_pkt_to_hc (UINT8 *p_data)
if (type == NFC_HAL_HCI_COMMAND_TYPE)
{
inst = (*p_data++ & 0x3F);
- if (inst == NFC_HAL_HCI_ANY_SET_PARAMETER)
+ if (inst == NFC_HAL_HCI_ANY_GET_PARAMETER)
{
index = *(p_data++);
- if (index == NFC_HAL_HCI_WHITELIST_INDEX)
+ if (index == NFC_HAL_HCI_SESSION_IDENTITY_INDEX)
{
- /* Set flag to fake ADM_NOTIFY_ALL_PIPE_CLEARED cmd to nfc task after
- * response from host controller to set whitelist cmd
+ /* Set flag to modify session id[0] on response
+ * from host controller to set session id cmd
*/
- nfc_hal_cb.hci_cb.clear_all_pipes_to_uicc1 = TRUE;
+ nfc_hal_cb.hci_cb.update_session_id = TRUE;
+ }
+ }
+ else if (inst == NFC_HAL_HCI_ANY_SET_PARAMETER)
+ {
+ index = *(p_data++);
+ if (index == NFC_HAL_HCI_WHITELIST_INDEX)
+ {
+ if ( (nfc_hal_cb.hci_cb.hci_fw_workaround)
+ &&(nfc_hal_cb.nvm_cb.nvm_type == NCI_SPD_NVM_TYPE_UICC) )
+ {
+ /* Set flag to fake ADM_NOTIFY_ALL_PIPE_CLEARED cmd to nfc task after
+ * response from host controller to set whitelist cmd
+ */
+ nfc_hal_cb.hci_cb.clear_all_pipes_to_uicc1 = TRUE;
+ }
+ }
+ else if (index == NFC_HAL_HCI_SESSION_IDENTITY_INDEX)
+ {
+ nfc_hal_cb.hci_cb.dh_session_id[0] = *p_data;
+ if (p_nfc_hal_cfg->nfc_hal_first_boot)
+ *p_data = NFC_HAL_HCI_FIRST_BOOT_SESSION_ID_0_VAL;
+ else
+ *p_data = NFC_HAL_HCI_NEXT_BOOT_SESSION_ID_0_VAL;
}
}
}
else if (type == NFC_HAL_HCI_RESPONSE_TYPE)
{
- if (nfc_hal_cb.hci_cb.clear_all_pipes_to_uicc1)
+ if ( (nfc_hal_cb.hci_cb.hci_fw_workaround)
+ &&(nfc_hal_cb.nvm_cb.nvm_type == NCI_SPD_NVM_TYPE_UICC)
+ &&(nfc_hal_cb.hci_cb.clear_all_pipes_to_uicc1) )
{
/* Got response to the fake ADM_NOTIFY_ALL_PIPE_CLEARED cmd sent by HAL to nfc task */
nfc_hal_cb.hci_cb.clear_all_pipes_to_uicc1 = FALSE;
@@ -360,12 +433,10 @@ void nfc_hal_hci_handle_hcp_pkt_from_hc (UINT8 *p_data)
UINT8 inst;
UINT8 hci_netwk_cmd[1 + NFC_HAL_HCI_SESSION_ID_LEN];
UINT8 source_host;
+ UINT8 block = 0;
HAL_TRACE_DEBUG0 ("nfc_hal_hci_handle_hcp_pkt_from_hc ()");
- if (!nfc_hal_cb.hci_cb.hci_fw_workaround)
- return;
-
chaining_bit = ((*p_data) >> 0x07) & 0x01;
pipe = (*p_data++) & 0x7F;
@@ -376,35 +447,54 @@ void nfc_hal_hci_handle_hcp_pkt_from_hc (UINT8 *p_data)
if (type == NFC_HAL_HCI_COMMAND_TYPE)
{
+ if (!nfc_hal_cb.hci_cb.hci_fw_workaround)
+ return;
+
inst = (*p_data++ & 0x3F);
if (inst == NFC_HAL_HCI_ADM_NOTIFY_ALL_PIPE_CLEARED)
{
-
STREAM_TO_UINT8 (source_host, p_data);
HAL_TRACE_DEBUG1 ("nfc_hal_hci_handle_hcp_pkt_from_hc (): Received ADM_NOTIFY_ALL_PIPE_CLEARED command for UICC: 0x%02x", source_host);
if (source_host == NFC_HAL_HCI_HOST_ID_UICC0)
{
+ block = HC_F3_NV_BLOCK;
hci_netwk_cmd[0] = NFC_HAL_HCI_UICC0_TARGET_HANDLE;
- /* Reset Session ID */
- memset (&hci_netwk_cmd[1], 0xFF, NFC_HAL_HCI_SESSION_ID_LEN);
- nfc_hal_nv_co_write (hci_netwk_cmd, 1, HC_F3_NV_BLOCK);
- HAL_TRACE_DEBUG1 ("nfc_hal_hci_handle_hcp_pkt_from_hc (): Sent command to reset nv file for block: 0x%02x", HC_F3_NV_BLOCK);
}
else if (source_host == NFC_HAL_HCI_HOST_ID_UICC1)
{
+ block = HC_F4_NV_BLOCK;
hci_netwk_cmd[0] = NFC_HAL_HCI_UICC1_TARGET_HANDLE;
+ }
+ else if (source_host == NFC_HAL_HCI_HOST_ID_UICC2)
+ {
+ block = HC_F5_NV_BLOCK;
+ hci_netwk_cmd[0] = NFC_HAL_HCI_UICC2_TARGET_HANDLE;
+ }
+
+ if (source_host >= NFC_HAL_HCI_HOST_ID_UICC0)
+ {
/* Reset Session ID */
memset (&hci_netwk_cmd[1], 0xFF, NFC_HAL_HCI_SESSION_ID_LEN);
- nfc_hal_nv_co_write (hci_netwk_cmd, 1, HC_F4_NV_BLOCK);
- HAL_TRACE_DEBUG1 ("nfc_hal_hci_handle_hcp_pkt_from_hc (): Sent command to reset nv file for block: 0x%02x", HC_F4_NV_BLOCK);
+ nfc_hal_nv_co_write (hci_netwk_cmd, 1, block);
+ HAL_TRACE_DEBUG1 ("nfc_hal_hci_handle_hcp_pkt_from_hc (): Sent command to reset nv file for block: 0x%02x", block);
}
}
}
else if (type == NFC_HAL_HCI_RESPONSE_TYPE)
{
- if (nfc_hal_cb.hci_cb.clear_all_pipes_to_uicc1)
+ if (nfc_hal_cb.hci_cb.update_session_id)
+ {
+ nfc_hal_cb.hci_cb.update_session_id = FALSE;
+ inst = (*p_data++ & 0x3F);
+ if (inst == NFC_HAL_HCI_ANY_OK)
+ {
+ /* Correct the session id assigned by DH */
+ *p_data = nfc_hal_cb.hci_cb.dh_session_id[0];
+ }
+ }
+ else if (nfc_hal_cb.hci_cb.clear_all_pipes_to_uicc1)
{
/* NVM Type is UICC and got response from host controller
* to Set whitelist command. Now fake ADM_NOTIFY_ALL_PIPE_CLEARED cmd to
@@ -439,6 +529,7 @@ void nfc_hal_hci_handle_nv_read (UINT8 block, tHAL_NFC_STATUS status, UINT16 siz
{
case HC_F3_NV_BLOCK:
case HC_F4_NV_BLOCK:
+ case HC_F5_NV_BLOCK:
if ( (status != HAL_NFC_STATUS_OK)
||(size > NFC_HAL_HCI_NETWK_INFO_SIZE)
||(size < NFC_HAL_HCI_MIN_NETWK_INFO_SIZE)
@@ -446,7 +537,13 @@ void nfc_hal_hci_handle_nv_read (UINT8 block, tHAL_NFC_STATUS status, UINT16 siz
{
HAL_TRACE_DEBUG1 ("nfc_hal_hci_handle_nv_read: Invalid data from nv memory, Set DEFAULT Configuration for block:0x%02x", block);
memset (nfc_hal_cb.hci_cb.p_hci_netwk_info_buf, 0, NFC_HAL_HCI_NETWK_INFO_SIZE);
- nfc_hal_cb.hci_cb.p_hci_netwk_info_buf[0] = (block == HC_F3_NV_BLOCK) ? NFC_HAL_HCI_UICC0_TARGET_HANDLE : NFC_HAL_HCI_UICC1_TARGET_HANDLE;
+ if (block == HC_F3_NV_BLOCK)
+ nfc_hal_cb.hci_cb.p_hci_netwk_info_buf[0] = NFC_HAL_HCI_UICC0_TARGET_HANDLE;
+ else if (block == HC_F4_NV_BLOCK)
+ nfc_hal_cb.hci_cb.p_hci_netwk_info_buf[0] = NFC_HAL_HCI_UICC1_TARGET_HANDLE;
+ else
+ nfc_hal_cb.hci_cb.p_hci_netwk_info_buf[0] = NFC_HAL_HCI_UICC2_TARGET_HANDLE;
+
memset (&nfc_hal_cb.hci_cb.p_hci_netwk_info_buf[1], 0xFF, NFC_HAL_HCI_SESSION_ID_LEN);
size = NFC_HAL_HCI_NETWK_INFO_SIZE;
}
@@ -455,15 +552,21 @@ void nfc_hal_hci_handle_nv_read (UINT8 block, tHAL_NFC_STATUS status, UINT16 siz
break;
case HC_F2_NV_BLOCK:
+ nfc_hal_cb.hci_cb.dh_session_id[0] = nfc_hal_cb.hci_cb.p_hci_netwk_dh_info_buf[1];
+ if (p_nfc_hal_cfg->nfc_hal_first_boot)
+ nfc_hal_cb.hci_cb.p_hci_netwk_dh_info_buf[1] = NFC_HAL_HCI_FIRST_BOOT_SESSION_ID_0_VAL;
+ else
+ nfc_hal_cb.hci_cb.p_hci_netwk_dh_info_buf[1] = NFC_HAL_HCI_NEXT_BOOT_SESSION_ID_0_VAL;
if ( (status != HAL_NFC_STATUS_OK)
||(size > NFC_HAL_HCI_DH_NETWK_INFO_SIZE)
||(size < NFC_HAL_HCI_MIN_DH_NETWK_INFO_SIZE) )
{
HAL_TRACE_DEBUG1 ("nfc_hal_hci_handle_nv_read: Invalid data from nv memory, Set DEFAULT Configuration for block:0x%02x", block);
- memset (nfc_hal_cb.hci_cb.p_hci_netwk_dh_info_buf, 0, NFC_HAL_HCI_DH_NETWK_INFO_SIZE);
nfc_hal_cb.hci_cb.p_hci_netwk_dh_info_buf[0] = NFC_HAL_HCI_DH_TARGET_HANDLE;
- memset (&nfc_hal_cb.hci_cb.p_hci_netwk_dh_info_buf[1], 0xFF, NFC_HAL_HCI_SESSION_ID_LEN);
+ nfc_hal_cb.hci_cb.dh_session_id[0] = 0xFF;
+ memset (&nfc_hal_cb.hci_cb.p_hci_netwk_dh_info_buf[2], 0xFF, (NFC_HAL_HCI_SESSION_ID_LEN - 1));
+ memset ((nfc_hal_cb.hci_cb.p_hci_netwk_dh_info_buf + NFC_HAL_HCI_SESSION_ID_LEN + 1), 0, (NFC_HAL_HCI_DH_NETWK_INFO_SIZE - NFC_HAL_HCI_SESSION_ID_LEN - 1));
size = NFC_HAL_HCI_DH_NETWK_INFO_SIZE;
p_hci_netwk_info = (UINT8 *) nfc_hal_cb.hci_cb.p_hci_netwk_dh_info_buf - NCI_MSG_HDR_SIZE;
}
@@ -486,15 +589,15 @@ void nfc_hal_hci_handle_nv_read (UINT8 block, tHAL_NFC_STATUS status, UINT16 siz
return;
}
- p = p_hci_netwk_info;
- /* Send HCI Network ntf command using nv data */
- NCI_MSG_BLD_HDR0 (p, NCI_MT_CMD, NCI_GID_PROP);
- NCI_MSG_BLD_HDR1 (p, NCI_MSG_HCI_NETWK);
- UINT8_TO_STREAM (p, (UINT8) size);
+ p = p_hci_netwk_info;
+ /* Send HCI Network ntf command using nv data */
+ NCI_MSG_BLD_HDR0 (p, NCI_MT_CMD, NCI_GID_PROP);
+ NCI_MSG_BLD_HDR1 (p, NCI_MSG_HCI_NETWK);
+ UINT8_TO_STREAM (p, (UINT8) size);
- nfc_hal_dm_send_nci_cmd (p_hci_netwk_info, (UINT16) (NCI_MSG_HDR_SIZE + size), nfc_hal_hci_vsc_cback);
+ nfc_hal_dm_send_nci_cmd (p_hci_netwk_info, (UINT16) (NCI_MSG_HDR_SIZE + size), nfc_hal_hci_vsc_cback);
- nfc_hal_cb.hci_cb.hci_netwk_config_block = block;
+ nfc_hal_cb.hci_cb.hci_netwk_config_block = block;
}
/*******************************************************************************
@@ -606,6 +709,18 @@ void nfc_hal_hci_set_next_hci_netwk_config (UINT8 block)
HAL_TRACE_DEBUG2 ("nfc_hal_hci_set_next_hci_netwk_config (): Skip send F4 HCI NETWK CMD for UICC Mask: 0x%02x & NVM Type: 0x%02x", p_nfc_hal_cfg->nfc_hal_hci_uicc_support, nfc_hal_cb.nvm_cb.nvm_type);
case HC_F4_NV_BLOCK:
+ if ( (p_nfc_hal_cfg->nfc_hal_hci_uicc_support & HAL_NFC_HCI_UICC2_HOST)
+ &&(nfc_hal_cb.hci_cb.p_hci_netwk_info_buf) )
+ {
+ /* Send command to read nvram data for 0xF5 */
+ memset (nfc_hal_cb.hci_cb.p_hci_netwk_info_buf, 0, NFC_HAL_HCI_NETWK_INFO_SIZE);
+ nfc_hal_nv_co_read ((UINT8 *) nfc_hal_cb.hci_cb.p_hci_netwk_info_buf, NFC_HAL_HCI_NETWK_INFO_SIZE, HC_F5_NV_BLOCK);
+ nfc_hal_main_start_quick_timer (&nfc_hal_cb.hci_cb.hci_timer, NFC_HAL_HCI_VSC_TIMEOUT_EVT, NFC_HAL_HCI_NV_READ_TIMEOUT);
+ break;
+ }
+ HAL_TRACE_DEBUG2 ("nfc_hal_hci_set_next_hci_netwk_config (): Skip send F5 HCI NETWK CMD for UICC Mask: 0x%02x & NVM Type: 0x%02x", p_nfc_hal_cfg->nfc_hal_hci_uicc_support, nfc_hal_cb.nvm_cb.nvm_type);
+
+ case HC_F5_NV_BLOCK:
if ((p_hci_netwk_cmd = (UINT8 *) GKI_getbuf (NCI_MSG_HDR_SIZE + NFC_HAL_HCI_DH_NETWK_INFO_SIZE)) == NULL)
{
HAL_TRACE_ERROR0 ("nfc_hal_hci_set_next_hci_netwk_config: unable to allocate buffer for reading hci network info from nvram");
@@ -665,6 +780,7 @@ static void nfc_hal_hci_vsc_cback (tNFC_HAL_NCI_EVT event, UINT16 data_len, UINT
{
case HC_F3_NV_BLOCK:
case HC_F4_NV_BLOCK:
+ case HC_F5_NV_BLOCK:
case HC_F2_NV_BLOCK:
nfc_hal_hci_set_next_hci_netwk_config (nfc_hal_cb.hci_cb.hci_netwk_config_block);
break;
@@ -697,3 +813,5 @@ void nfc_hal_hci_timeout_cback (void *p_tle)
}
}
+#endif
+
diff --git a/halimpl/bcm2079x/hal/hal/nfc_hal_hci_ci.c b/halimpl/bcm2079x/hal/hal/nfc_hal_hci_ci.c
index 4ec5f5d..49236f9 100644
--- a/halimpl/bcm2079x/hal/hal/nfc_hal_hci_ci.c
+++ b/halimpl/bcm2079x/hal/hal/nfc_hal_hci_ci.c
@@ -26,6 +26,8 @@
#include "gki.h"
#include "nfc_hal_api.h"
#include "nfc_hal_int.h"
+
+#if (defined(NFC_HAL_HCI_INCLUDED) && (NFC_HAL_HCI_INCLUDED == TRUE))
#include "nfc_hal_nv_ci.h"
#include "nfc_hal_nv_co.h"
@@ -88,3 +90,4 @@ void nfc_hal_nv_ci_write (tNFC_HAL_NV_CO_STATUS status)
}
}
+#endif
diff --git a/halimpl/bcm2079x/hal/hal/nfc_hal_main.c b/halimpl/bcm2079x/hal/hal/nfc_hal_main.c
index 10be44d..d7fc5d5 100644
--- a/halimpl/bcm2079x/hal/hal/nfc_hal_main.c
+++ b/halimpl/bcm2079x/hal/hal/nfc_hal_main.c
@@ -502,9 +502,12 @@ static void nfc_hal_send_credit_ntf_for_cid (UINT8 cid)
*******************************************************************************/
static void nfc_hal_main_send_message (NFC_HDR *p_msg)
{
- UINT8 *ps, *pp, cid, pbf;
- UINT16 len = p_msg->len;
+#if (defined(NFC_HAL_HCI_INCLUDED) && (NFC_HAL_HCI_INCLUDED == TRUE))
+ UINT8 cid, pbf;
UINT16 data_len;
+#endif
+ UINT8 *ps, *pp;
+ UINT16 len = p_msg->len;
#ifdef DISP_NCI
UINT8 delta;
#endif
@@ -530,6 +533,8 @@ static void nfc_hal_main_send_message (NFC_HDR *p_msg)
delta = p_msg->len - len;
DISP_NCI (ps + delta, (UINT16) (p_msg->len - delta), FALSE);
#endif
+
+#if (defined(NFC_HAL_HCI_INCLUDED) && (NFC_HAL_HCI_INCLUDED == TRUE))
if (nfc_hal_cb.hci_cb.hcp_conn_id)
{
NCI_DATA_PRS_HDR(pp, pbf, cid, data_len);
@@ -545,6 +550,8 @@ static void nfc_hal_main_send_message (NFC_HDR *p_msg)
}
}
+#endif
+
/* check low power mode state */
if (nfc_hal_dm_power_mode_execute (NFC_HAL_LP_TX_DATA_EVT))
{
diff --git a/halimpl/bcm2079x/hal/hal/nfc_hal_nci.c b/halimpl/bcm2079x/hal/hal/nfc_hal_nci.c
index 21d0458..f3547d3 100644
--- a/halimpl/bcm2079x/hal/hal/nfc_hal_nci.c
+++ b/halimpl/bcm2079x/hal/hal/nfc_hal_nci.c
@@ -316,7 +316,8 @@ static BOOLEAN nfc_hal_nci_receive_bt_msg (tNFC_HAL_NCIT_CB *p_cb, UINT8 byte)
p_cb->rcv_len = byte;
/* Verify that buffer is big enough to fit message */
- if ((sizeof (NFC_HDR) + HCIE_PREAMBLE_SIZE + byte) > GKI_get_buf_size (p_cb->p_rcv_msg))
+ if ((p_cb->p_rcv_msg) &&
+ ((sizeof (NFC_HDR) + HCIE_PREAMBLE_SIZE + byte) > GKI_get_buf_size (p_cb->p_rcv_msg)) )
{
/* Message cannot fit into buffer */
GKI_freebuf (p_cb->p_rcv_msg);
@@ -523,10 +524,13 @@ BOOLEAN nfc_hal_nci_receive_msg (UINT8 byte)
*******************************************************************************/
BOOLEAN nfc_hal_nci_preproc_rx_nci_msg (NFC_HDR *p_msg)
{
- UINT8 *p, *pp, cid;
+ UINT8 *p, *pp;
UINT8 mt, pbf, gid, op_code;
UINT8 payload_len;
+#if (defined(NFC_HAL_HCI_INCLUDED) && (NFC_HAL_HCI_INCLUDED == TRUE))
+ UINT8 cid;
UINT16 data_len;
+#endif
HAL_TRACE_DEBUG0 ("nfc_hal_nci_preproc_rx_nci_msg()");
@@ -545,6 +549,7 @@ BOOLEAN nfc_hal_nci_preproc_rx_nci_msg (NFC_HDR *p_msg)
NCI_MSG_PRS_HDR1 (p, op_code);
payload_len = *p++;
+#if (defined(NFC_HAL_HCI_INCLUDED) && (NFC_HAL_HCI_INCLUDED == TRUE))
if (mt == NCI_MT_DATA)
{
if (nfc_hal_cb.hci_cb.hcp_conn_id)
@@ -568,7 +573,9 @@ BOOLEAN nfc_hal_nci_preproc_rx_nci_msg (NFC_HDR *p_msg)
}
}
}
- else if (gid == NCI_GID_RF_MANAGE)
+ else
+#endif
+ if (gid == NCI_GID_RF_MANAGE)
{
if (mt == NCI_MT_NTF)
{
@@ -587,6 +594,7 @@ BOOLEAN nfc_hal_nci_preproc_rx_nci_msg (NFC_HDR *p_msg)
}
}
}
+#if (defined(NFC_HAL_HCI_INCLUDED) && (NFC_HAL_HCI_INCLUDED == TRUE))
else if (gid == NCI_GID_CORE)
{
if (mt == NCI_MT_RSP)
@@ -604,6 +612,7 @@ BOOLEAN nfc_hal_nci_preproc_rx_nci_msg (NFC_HDR *p_msg)
}
}
}
+#endif
}
if (nfc_hal_cb.dev_cb.power_mode == NFC_HAL_POWER_MODE_FULL)
@@ -649,6 +658,7 @@ void nfc_hal_nci_add_nfc_pkt_type (NFC_HDR *p_msg)
}
}
+#if (defined(NFC_HAL_HCI_INCLUDED) && (NFC_HAL_HCI_INCLUDED == TRUE))
/*******************************************************************************
**
** Function nci_brcm_check_cmd_create_hcp_connection
@@ -698,6 +708,8 @@ static void nci_brcm_check_cmd_create_hcp_connection (NFC_HDR *p_msg)
}
}
+#endif
+
/*******************************************************************************
**
** Function nfc_hal_nci_send_cmd
@@ -718,9 +730,11 @@ void nfc_hal_nci_send_cmd (NFC_HDR *p_buf)
UINT8 nci_ctrl_size = nfc_hal_cb.ncit_cb.nci_ctrl_size;
UINT8 delta = 0;
+#if (defined(NFC_HAL_HCI_INCLUDED) && (NFC_HAL_HCI_INCLUDED == TRUE))
if ( (nfc_hal_cb.hci_cb.hcp_conn_id == 0)
&&(nfc_hal_cb.nvm_cb.nvm_type != NCI_SPD_NVM_TYPE_NONE) )
nci_brcm_check_cmd_create_hcp_connection ((NFC_HDR*) p_buf);
+#endif
/* check low power mode state */
continue_to_process = nfc_hal_dm_power_mode_execute (NFC_HAL_LP_TX_DATA_EVT);
diff --git a/halimpl/bcm2079x/hal/hal/nfc_hal_prm.c b/halimpl/bcm2079x/hal/hal/nfc_hal_prm.c
index ee9cea7..7c22a79 100644
--- a/halimpl/bcm2079x/hal/hal/nfc_hal_prm.c
+++ b/halimpl/bcm2079x/hal/hal/nfc_hal_prm.c
@@ -380,7 +380,7 @@ void nfc_hal_prm_spd_check_version (void)
/*********************************************************************
* Version check of patchfile against NVM
- ********************************************************************
+ *********************************************************************/
/* Download the patchfile if no patches in NVM */
if ((nfc_hal_cb.nvm_cb.project_id == 0) || !(nfc_hal_cb.nvm_cb.flags & NFC_HAL_NVM_FLAGS_PATCH_PRESENT))
{
@@ -402,7 +402,7 @@ void nfc_hal_prm_spd_check_version (void)
/* Skip download if version of patchfile is equal to version in NVM */
/* and patches of the power modes are the same as the good patches in NVM */
else if ( (nfc_hal_cb.nvm_cb.ver_major == patchfile_ver_major)
- &&(nfc_hal_cb.nvm_cb.ver_minor == patchfile_ver_minor)
+ &&(nfc_hal_cb.nvm_cb.ver_minor == patchfile_ver_minor)
&&((nvm_patch_present_mask | patchfile_patch_present_mask) == nvm_patch_present_mask) ) /* if the NVM patch include all the patched in file */
{
HAL_TRACE_DEBUG2 ("Patch download skipped. NVM patch (version %i.%i) is the same than the patchfile ",
@@ -598,15 +598,9 @@ void nfc_hal_prm_nci_command_complete_cback (tNFC_HAL_NCI_EVT event, UINT16 data
if (nfc_hal_cb.prm.flags & NFC_HAL_PRM_FLAGS_SIGNATURE_SENT)
{
/* Wait for authentication complete (SECURE_PATCH_DOWNLOAD NTF), including time to commit to NVM (for BCM43341B0) */
- int auth_delay = NFC_HAL_PRM_SPD_TOUT;
- if (!(nfc_hal_cb.prm.flags & NFC_HAL_PRM_FLAGS_BCM20791B3))
- {
- /* XXX maco only wait 30 seconds for B4+ revisions to avoid watchdog timeouts */
- auth_delay = NFC_HAL_PRM_COMMIT_DELAY;
- }
nfc_hal_cb.prm.state = NFC_HAL_PRM_ST_SPD_AUTHENTICATING;
nfc_hal_main_start_quick_timer (&nfc_hal_cb.prm.timer, 0x00,
- (auth_delay * QUICK_TIMER_TICKS_PER_SEC) / 1000);
+ (NFC_HAL_PRM_COMMIT_DELAY * QUICK_TIMER_TICKS_PER_SEC) / 1000);
return;
}
/* Download next segment */