artf223647-HAL-Perform-HCI-Initialization-re
diff --git a/halimpl/pn54x/hal/phNxpNciHal.c b/halimpl/pn54x/hal/phNxpNciHal.c
index eb45d15..029010d 100644
--- a/halimpl/pn54x/hal/phNxpNciHal.c
+++ b/halimpl/pn54x/hal/phNxpNciHal.c
@@ -1296,7 +1296,9 @@
{
retry_core_init:
config_access = FALSE;
- mGetCfg_info->isGetcfg = FALSE;
+ if(mGetCfg_info != NULL)
+ mGetCfg_info->isGetcfg = FALSE;
+
if(buffer != NULL)
{
free(buffer);
@@ -2070,18 +2072,19 @@
NXPLOG_NCIHAL_E("Resetting FW Dnld flag FAILED");
}
}
-#if(NFC_NXP_ESE == TRUE)
- status = phNxpNciHal_check_eSE_Session_Identity();
- if(status != NFCSTATUS_SUCCESS)
- {
- NXPLOG_NCIHAL_E("Session id/ SWP intf reset Failed");
- retry_core_init_cnt++;
- goto retry_core_init;
- }
-#endif
+
config_access = FALSE;
if(!((*p_core_init_rsp_params > 0) && (*p_core_init_rsp_params < 4)))
{
+#if(NFC_NXP_ESE == TRUE)
+ status = phNxpNciHal_check_eSE_Session_Identity();
+ if(status != NFCSTATUS_SUCCESS)
+ {
+ NXPLOG_NCIHAL_E("Session id/ SWP intf reset Failed");
+ retry_core_init_cnt++;
+ goto retry_core_init;
+ }
+#endif
status = phNxpNciHal_send_ext_cmd(sizeof(cmd_reset_nci),cmd_reset_nci);
if(status == NFCSTATUS_SUCCESS )
{
@@ -2116,12 +2119,13 @@
NXPLOG_NCIHAL_E("Send nfcee_pwrcntl cmd FAILED");
}
}
-#endif
+
if(pwr_link_required == TRUE)
{
phNxpNciHal_send_nfcee_pwr_cntl_cmd(POWER_ALWAYS_ON|LINK_ALWAYS_ON);
pwr_link_required = FALSE;
}
+#endif
if((*p_core_init_rsp_params > 0) && (*p_core_init_rsp_params < 4))
{
static phLibNfc_Message_t msg;
diff --git a/halimpl/pn54x/hal/phNxpNciHal.h b/halimpl/pn54x/hal/phNxpNciHal.h
index 5f47f80..53cb9da 100644
--- a/halimpl/pn54x/hal/phNxpNciHal.h
+++ b/halimpl/pn54x/hal/phNxpNciHal.h
@@ -138,6 +138,7 @@
EEPROM_ESE_SESSION_ID,
EEPROM_SWP1_INTF,
EEPROM_SWP1A_INTF,
+ EEPROM_SWP2_INTF
}phNxpNci_EEPROM_request_type_t;
typedef struct phNxpNci_EEPROM_info {
diff --git a/halimpl/pn54x/hal/phNxpNciHal_ext.c b/halimpl/pn54x/hal/phNxpNciHal_ext.c
index 14816db..163be3a 100644
--- a/halimpl/pn54x/hal/phNxpNciHal_ext.c
+++ b/halimpl/pn54x/hal/phNxpNciHal_ext.c
@@ -1260,6 +1260,12 @@
addr[0] = 0xA0;
addr[1] = 0xD4;
break;
+ case EEPROM_SWP2_INTF:
+ b_position = 0;
+ memIndex = 0x00;
+ addr[0] = 0xA0;
+ addr[1] = 0xED;
+ break;
default:
ALOGE("No valid request information found");
break;