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;