From 044c7f4b67d539329172781984509a9a6e2ae06d Mon Sep 17 00:00:00 2001 From: Sebastiano Barezzi Date: Mon, 14 Mar 2022 17:58:08 +0100 Subject: [PATCH] sdm710-common: Build AOSP NFC HIDL Change-Id: I417f0f50f88cb50267bae014ae3948ef151a865e --- manifest.xml | 6 +- nfc/libnfc-nxp.conf | 508 ++++++++++++++++++++++++++++++++++++++++++ proprietary-files.txt | 3 + sdm710.mk | 13 ++ 4 files changed, 527 insertions(+), 3 deletions(-) create mode 100644 nfc/libnfc-nxp.conf diff --git a/manifest.xml b/manifest.xml index dfe888f..9f1c490 100644 --- a/manifest.xml +++ b/manifest.xml @@ -80,7 +80,7 @@ android.hardware.nfc hwbinder - @1.1::INfc/default + @1.2::INfc/default android.hardware.power @@ -172,9 +172,9 @@ @2.0::IPictureAdjustment/default - vendor.nxp.hardware.nfc + vendor.nxp.nxpnfc hwbinder - @1.0::INqNfc/default + @1.0::INxpNfc/default vendor.qti.data.factory diff --git a/nfc/libnfc-nxp.conf b/nfc/libnfc-nxp.conf new file mode 100644 index 0000000..efd7cb3 --- /dev/null +++ b/nfc/libnfc-nxp.conf @@ -0,0 +1,508 @@ +#============================================================================ +# File Name: libnfc-nxp.conf +# +# Description: +# NFC configuration management file +# +# Modification History: +# Revision 1.0 2017/01/04 20:50:20 xiaohua.wang@xiaomi.com +# Initial draft version for Xiaomi C1 P2 board +# +# Revision 1.1 2017/03/01 16:32:09 xiaohua.wang@xiaomi.com +# Upgrade NFCC firmware version to 11.1.E +# +# Revision 1.2 2017/06/30 23:45:41 xiaohua.wang@xiaomi.com +# Improved notification management of received NCI Mode Set +# +# Revision 1.3 firmware version to 11.1.13/14 +# Kevin.hu@nxp.com 2017/09/05 16:06:41 +#============================================================================= + +# FW_VERSION=ALMSL 11.1.13/14 +# DEVICE_MANUFACTURER=Xiaomi +# DEVICE_MODEL=E1 + +# This file is used by NFC NXP NCI HAL(external/libnfc-nci/halimpl/pn5x) +# and NFC Service Java Native Interface Extensions (packages/apps/Nfc/nci/jni/extns/pn5x) + +############################################################################### +# Application options +# Logging Levels +# NXPLOG_DEFAULT_LOGLEVEL 0x01 +# ANDROID_LOG_DEBUG 0x03 +# ANDROID_LOG_WARN 0x02 +# ANDROID_LOG_ERROR 0x01 +# ANDROID_LOG_SILENT 0x00 +# +NXPLOG_EXTNS_LOGLEVEL=0x03 +NXPLOG_NCIHAL_LOGLEVEL=0x03 +NXPLOG_NCIX_LOGLEVEL=0x03 +NXPLOG_NCIR_LOGLEVEL=0x03 +NXPLOG_FWDNLD_LOGLEVEL=0x03 +NXPLOG_TML_LOGLEVEL=0x03 + +############################################################################### +# Nfc Device Node name +NXP_NFC_DEV_NODE="/dev/nq-nci" + +############################################################################### +# Extension for Mifare reader enable +MIFARE_READER_ENABLE=0x01 + +############################################################################### +# Vzw Feature enable +VZW_FEATURE_ENABLE=0x01 + +############################################################################### +# File name for Firmware +NXP_FW_NAME="libpn553_fw.so" + +############################################################################### +# System clock source selection configuration +#define CLK_SRC_XTAL 1 +#define CLK_SRC_PLL 2 + +NXP_SYS_CLK_SRC_SEL=0x02 + +############################################################################### +# System clock frequency selection configuration +# define CLK_FREQ_13MHZ 1 +# define CLK_FREQ_19_2MHZ 2 +# define CLK_FREQ_24MHZ 3 +# define CLK_FREQ_26MHZ 4 +# define CLK_FREQ_38_4MHZ 5 +# define CLK_FREQ_52MHZ 6 + +NXP_SYS_CLK_FREQ_SEL=0x02 + +############################################################################### +# The timeout value to be used for clock request acknowledgment +# min value = 0x01 to max = 0x06 + +NXP_SYS_CLOCK_TO_CFG=0x06 + +############################################################################### +# NXP proprietary settings +NXP_ACT_PROP_EXTN={2F, 02, 00} + +############################################################################### +# NFC forum profile settings +NXP_NFC_PROFILE_EXTN={20, 02, 05, 01, A0, 44, 01, 00} + +############################################################################### +# NFCC Configuration Control +# Allow NFCC to manage RF Config 0x01 +# Don't allow NFCC to manage RF Config 0x00 +NXP_NFC_MERGE_RF_PARAMS={20, 02, 04, 01, 85, 01, 01} + +############################################################################### +# Standby enable settings +NXP_CORE_STANDBY={2F, 00, 01, 01} + +############################################################################### +# NXP TVDD configurations settings +# Allow NFCC to configure External TVDD, There are currently three +# configurations (1, 2 and 3) are supported, out of them only one can be +#supported. + +NXP_EXT_TVDD_CFG=0x02 + +# config1:SLALM, 3.3V for both RM and CM +NXP_EXT_TVDD_CFG_1={20, 02, 0F, 01, A0, 0E, 0B, 31, 01, 01, 31, 00, 00, 00, 01, 00, D0, 0C} + +#config2: use DCDC in CE, use Tx_Pwr_Req, set CFG2 mode, SLALM, +# monitoring 5V from DCDC, 3.3V for both RM and CM, DCDCWaitTime=4.2ms +NXP_EXT_TVDD_CFG_2={20, 02, 0F, 01, A0, 0E, 0B, 11, 01, C2, B2, 00, BA, 1E, 15, 00, D0, 0C} + +#config3: use DCDC in CE, use Tx_Pwr_Req, SLALM, monitoring 5V from DCDC, +# DCDCWaitTime=4.2ms +NXP_EXT_TVDD_CFG_3={20, 02, 0B, 02, A0, 66, 01, 01, A0, 0E, 03, 52, 40, 0A} + +NXP_RF_CONF_BLK_1={ + 20, 02, E7, 1B, + A0, 0D, 06, 06, 37, 08, 76, 00, 00, + A0, 0D, 03, 24, 03, 7D, + A0, 0D, 06, 02, 35, 00, 3E, 00, 00, + A0, 0D, 06, 04, 35, F4, 05, 70, 02, + A0, 0D, 06, C2, 35, 00, 3E, 00, 03, + A0, 0D, 06, 04, 42, F8, 40, FF, FF, + A0, 0D, 04, 32, 42, F8, 40, + A0, 0D, 04, 46, 42, 68, 40, + A0, 0D, 04, 56, 42, 78, 40, + A0, 0D, 04, 5C, 42, 80, 40, + A0, 0D, 04, CA, 42, 68, 40, + A0, 0D, 06, 06, 42, 00, 02, F6, F6, + A0, 0D, 06, 32, 4A, 53, 07, 00, 1B, + A0, 0D, 06, 46, 4A, 33, 07, 00, 07, + A0, 0D, 06, 56, 4A, 43, 07, 00, 07, + A0, 0D, 06, 5C, 4A, 11, 07, 01, 07, + A0, 0D, 06, 34, 44, 66, 08, 00, 00, + A0, 0D, 06, 48, 44, 65, 0A, 00, 00, + A0, 0D, 06, 58, 44, 55, 08, 00, 00, + A0, 0D, 06, 5E, 44, 55, 08, 00, 00, + A0, 0D, 06, CA, 44, 65, 0A, 00, 00, + A0, 0D, 06, 06, 44, 04, 04, C4, 00, + A0, 0D, 06, 34, 2D, DC, 20, 04, 00, + A0, 0D, 06, 48, 2D, 15, 34, 1F, 01, + A0, 0D, 06, 58, 2D, 0D, 48, 0C, 01, + A0, 0D, 06, 5E, 2D, 0D, 5A, 0C, 01, + A0, 0D, 06, CA, 2D, 15, 34, 1F, 01 +} + +# Enable DLMA +NXP_RF_CONF_BLK_2={ + 20, 02, D6, 01, A0, 34, D2, 23, 04, 18, 47, 40, 00, 00, 40, 01, 32, 00, 40, 01, 47, 00, 40, 01, 73, 00, 40, 01, A7, 00, 40, 01, F5, 00, 08, 01, 5C, 01, 48, 00, 00, 00, 08, 02, 00, 00, 08, 02, 00, 00, 08, 02, 00, 00, 08, 02, 00, 00, 08, 02, 00, 00, 08, 02, 00, 00, 48, 01, 00, 00, 08, 03, 00, 00, 08, 01, 00, 00, C8, 02, 00, 00, C8, 00, 00, 00, 88, 02, 00, 00, 48, 02, 00, 00, B8, 00, 00, 00, 68, 00, 00, 00, 18, 00, 00, 00, 08, 02, 00, 00, 00, 00, 00, 00, 00, 00, 47, 00, 00, 40, 01, 32, 00, 40, 01, 47, 00, 40, 01, 73, 00, 40, 01, A7, 00, 40, 01, F5, 00, 08, 01, 5C, 01, 48, 00, 00, 00, 08, 02, 00, 00, 08, 02, 00, 00, 08, 02, 00, 00, 08, 02, 00, 00, 08, 02, 00, 00, 08, 02, 00, 00, 48, 01, 00, 00, 08, 03, 00, 00, 08, 01, 00, 00, C8, 02, 00, 00, C8, 00, 00, 00, 88, 02, 00, 00, 48, 02, 00, 00, B8, 00, 00, 00, 68, 00, 00, 00, 18, 00, 00, 00, 08, 02, 00, 00, 00, 00 +} + +# Disable DPC +NXP_RF_CONF_BLK_3={ + 20, 02, 5B, 01, A0, 0B, 57, 11, 11, 90, 78, 0F, 4E, 00, 3D, 95, 00, 00, 3D, 9F, 00, 00, 50, 9F, 00, 00, 59, 9F, 00, 00, 5A, 9F, 00, 00, 64, 9F, 00, 00, 65, 9F, 00, 00, 6E, 9F, 00, 00, 72, 9F, 00, 00, 79, 9F, 00, 00, 7B, 9F, 00, 00, 84, 9F, 00, 00, 86, 9F, 00, 00, 8F, 9F, 00, 00, 91, 9F, 00, 00, 9A, 9F, 00, 00, A1, 9F, 00, 00, A7, 9F, 00, 00, B0, 1F, 00, 00, B9, 1F, 00, 00 +} + +# CE detector/phase +NXP_RF_CONF_BLK_4={ + 20, 02, 21, 04, + A0, 38, 04, 08, 08, 08, 00, + A0, 3A, 08, E1, 00, E1, 00, E1, 00, E1, 00, + A0, 0D, 06, 06, 16, 0E, 00, 1F, 00, + A0, B1, 02, A8, 02 +} +############################################################################### +# Set configuration optimization decision setting +# Enable = 0x01 +# Disable = 0x00 +NXP_SET_CONFIG_ALWAYS=0x01 + +############################################################################### +# Set configuration optimization decision setting +# Enable = 0x01 +# Disable = 0x00 +NXP_RF_UPDATE_REQ=0x01 + +############################################################################### +# Core configuration extensions +# A009 - Time-out before standby +# A0EC - Disable/Enable SWP1 interface +# A0ED - Disable/Enable SWP2 interface +# A05E - Send RID automatically in Jewel Reader mode +# A012 - NFCEE interface 2 configuration +# A040 - Low Power Card Detector Enable +# A041 - Low Power Card Detector Threshold +# A042 - Low Power Card Detector Sampling +# A043 - Low Power Card Detector Hybrid +# A0D5 - SWP/DWP desired baudrate +# A0D8 - Configure the number of Sliding Windows used on DWP +# A0DD - Retry on SWP2 interface +# A0F2 - SVDD_PWR_REQ enable +# A09F - Add ON/OFF guard time for SVDD power management(Step value ~1mSec) +# A096 - Notify all AIDs +# A037 - SE DWP system configuration +NXP_CORE_CONF_EXTN={20, 02, 6B, 14, + A0, 09, 02, 90, 01, + A0, EC, 01, 01, + A0, ED, 01, 03, + A0, 5E, 01, 01, + A0, 12, 01, 02, + A0, 40, 01, 01, + A0, 41, 01, 05, + A0, 43, 01, 04, + A0, 46, 02, BA, 27, + A0, 47, 02, BA, 27, + A0, 81, 01, 01, + A0, D5, 01, 0A, + A0, D8, 01, 02, + A0, DD, 01, 2D, + A0, F2, 01, 01, + A0, 9F, 02, 08, 08, + A0, 96, 01, 01, + A0, 37, 01, 35, + A0, 3F, 01, 01, + A0, 29, 17, 1A, 07, 00, 1D, 00, 02, 00, 1D, 00, 02, 00, 40, F6, F6, 00, 43, F6, F6, 38, 70, 00, 00, 00 + } +############################################################################### +# Core configuration rf field filter settings to enable set to 01 to disable set to 00 last bit +# NXP_CORE_RF_FIELD={ 20, 02, 05, 01, A0, 62, 01, 01} +# NXP_CORE_RF_FIELD={ 2F, 32, 01, 01} +############################################################################### +# To enable i2c fragmentation set i2c fragmentation enable 0x01 to disable set to 0x00 +NXP_I2C_FRAGMENTATION_ENABLED=0x00 + +############################################################################### +# Core configuration settings +NXP_CORE_CONF={ 20, 02, 2E, 0E, + 28, 01, 00, + 21, 01, 00, + 30, 01, 08, + 31, 01, 03, + 32, 01, 60, + 38, 01, 01, + 33, 04, 01, 02, 03, 04, + 54, 01, 06, + 50, 01, 02, + 5B, 01, 00, + 80, 01, 01, + 81, 01, 01, + 82, 01, 0E, + 18, 01, 01 + } + +############################################################################### +# Mifare Classic Key settings +# NXP_CORE_MFCKEY_SETTING={20, 02, 25,04, A0, 51, 06, A0, A1, A2, A3, A4, A5, +# A0, 52, 06, D3, F7, D3, F7, D3, F7, +# A0, 53, 06, FF, FF, FF, FF, FF, FF, +# A0, 54, 06, 00, 00, 00, 00, 00, 00} + +############################################################################### +# Default SE Options +# No secure element 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x04 +NXP_DEFAULT_SE=0x01 + +############################################################################### +# Enable SWP full power mode when phone is power off +NXP_SWP_FULL_PWR_ON=0x00 + +############################################################################### +#### Select the CHIP #### +# PN547C2 0x01 +# PN65T 0x02 +# PN548AD 0x03 +# PN66T 0x04 +# PN551 0x05 +# PN67T 0x06 +# PN553 0x07 +# PN80T 0x08 +NXP_NFC_CHIP=0x08 + +############################################################################### +# CE when Screen state is locked +# Disable 0x00 +# Enable 0x01 +NXP_CE_ROUTE_STRICT_DISABLE=0x01 + +# Timeout in secs to get NFCEE Discover notification +NXP_DEFAULT_NFCEE_DISC_TIMEOUT=20 + +NXP_DEFAULT_NFCEE_TIMEOUT=0x06 + +# Timeout in secs +NXP_SWP_RD_START_TIMEOUT=0x0A + +# Timeout in secs +NXP_SWP_RD_TAG_OP_TIMEOUT=0x01 + +############################################################################### + +# Set the default AID route Location : +# This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x04 +DEFAULT_AID_ROUTE=0x01 + +############################################################################### +# Set the Mifare Desfire route Location : +# This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x04 +DEFAULT_DESFIRE_ROUTE=0x01 + +############################################################################### +# Set the Mifare CLT route Location : +# This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x04 +DEFAULT_MIFARE_CLT_ROUTE=0x01 + +############################################################################### +# Set the Felica CLT route Location : +# This settings will be used when application does not set this parameter +# eSE 0x01 +# UICC 0x02 +# UICC2 0x04 +DEFAULT_FELICA_CLT_ROUTE=0x01 + +############################################################################### +# Set the default AID Power state : +# This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen Lock +# bit pos 4 = Screen Off +DEFAULT_AID_PWR_STATE=0x19 + +############################################################################### +# Set the Mifare Desfire Power state : +# This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen Lock +# bit pos 4 = Screen Off +DEFAULT_DESFIRE_PWR_STATE=0x1B + +############################################################################### +# Set the Mifare CLT Power state : +# This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen Lock +# bit pos 4 = Screen Off +DEFAULT_MIFARE_CLT_PWR_STATE=0x1B + +############################################################################### +# Set the Felica CLT Power state : +# This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen Lock +# bit pos 4 = Screen Off +DEFAULT_FELICA_CLT_PWR_STATE=0x1B + +############################################################################### +# AID Matching platform options +# AID_MATCHING_L 0x01 +# AID_MATCHING_K 0x02 +AID_MATCHING_PLATFORM=0x01 +############################################################################### +# P61 interface options +# NFC 0x01 +# SPI 0x02 +NXP_P61_LS_DEFAULT_INTERFACE=0x01 +############################################################################### +# P61 LTSM interface options +# NFC 0x01 +# SPI 0x02 +NXP_P61_LTSM_DEFAULT_INTERFACE=0x01 +############################################################################### +# CHINA_TIANJIN_RF_SETTING +# Enable 0x01 +# Disable 0x00 +NXP_CHINA_TIANJIN_RF_ENABLED=0x01 +############################################################################### +# SWP_SWITCH_TIMEOUT_SETTING +# Allowed range of swp timeout setting is 0x00 to 0x3C [0 - 60]. +# Timeout in milliseconds, for example +# No Timeout 0x00 +# 10 millisecond timeout 0x0A +NXP_SWP_SWITCH_TIMEOUT=0x0A +############################################################################### +# P61 interface options for JCOP Download +# NFC 0x01 +# SPI 0x02 +NXP_P61_JCOP_DEFAULT_INTERFACE=0x01 +############################################################################### +# P61 JCOP OS download options +# FRAMEWORK API BY APPLICATION 0x00 +# AT BOOT_TIME 0x01 +NXP_JCOPDL_AT_BOOT_ENABLE=0x00 + +############################################################################### +# Loader service version +# NFC service checks for LS version 2.0 or 2.1 +# LS2.0 0x20 +# LS2.1 0x21 +# LS2.2 0x22 +# AT NFC service intialization +NXP_LOADER_SERVICE_VERSION=0x21 +############################################################################### +# Timeout value in milliseconds for NFCC standby mode.The range is between 5000 msec to 20000 msec and zero is to disable. +NXP_NFCC_STANDBY_TIMEOUT=0 + +############################################################################### +# Dynamic RSSI feature enable +# Disable 0x00 +# Enable 0x01 +NXP_AGC_DEBUG_ENABLE=0x01 +############################################################################### +# Virtual Mode ESE and Wired Mode ongoing delay Wired Mode +# For Technology routing to ESE Technology Mask = 4 +# For ISO-DEP Protocol routing to ESE Mask = 2 +# It can also take TECH|PROTO = 6 +# To ignore the delay set mask to = 0 +NXP_ESE_WIRED_PRT_MASK=0x00 + +############################################################################### +# Virtual Mode UICC and Wired Mode ongoing delay Wired Mode +# For Technology routing to UICC Technology Mask = 4 +# For ISO-DEP Protocol routing to UICC set Mask = 2 +# For Select AID Routing to UICC set Mask = 1 +# It can also take values TECH|PROTO|SELECT_AID = 7 , 6 , 5 ,3 .To ignore delay set mask = 0 +NXP_UICC_WIRED_PRT_MASK=0x00 + +################################################################################ +# RF field true delay Wired Mode +# delay wired mode = 1 +# allow wired mode = 0 +NXP_WIRED_MODE_RF_FIELD_ENABLE=0x00 + +############################################################################### +# UICC mode supported +# Disable 0x00 +# Enable 0x01 +NXP_DUAL_UICC_ENABLE=0x00 +############################################################################### +# Config to allow adding aids +# NFC on/off is required after this config +# 1 = enabling adding aid to NFCC routing table. +# 0 = disabling adding aid to NFCC routing table. +NXP_ENABLE_ADD_AID=0x01 +############################################################################### +# JCOP-3.3 continuous process timeout in msec and value should be in Hexadecimal. +# JCOP CP TIMEOUT +NXP_CP_TIMEOUT={00, 77} +############################################################################### +# Enable/Disable checking default proto SE Id +# Disable 0x00 +# Enable 0x01 +NXP_CHECK_DEFAULT_PROTO_SE_ID=0x01 +############################################################################### +# NXP_CN_TRANSIT_BLK_NUM_CHECK_ENABLE +# Enable/Disable block number checks for china transit use case +# Enable 0x01 +# Disable 0x00 +NXP_CN_TRANSIT_BLK_NUM_CHECK_ENABLE=0x01 +############################################################################### +# Wired mode resume timeout vaule in wired mode resume feature enable +NXP_WIREDMODE_RESUME_TIMEOUT = 0x02 +############################################################################### +# Power to eSE is controlled by DH or PMU depending on following configurations +# define DH_PWR_CONTROL 1 +# define PMU_PWR_CONTROL 2 + +NXP_ESE_POWER_DH_CONTROL=1 + +############################################################################### +# NXP PMU Support configuration is sent if PMU_PWR_CONTROL is configured +# External PMU available in phone ON and phone OFF case if NXP_ESE_POWER_EXT_PMU=1 +# External PMU available only in phone ON case if NXP_ESE_POWER_EXT_PMU=2 + +NXP_ESE_POWER_EXT_PMU=2 + +############################################################################### +# Enable/Disable mifare desfire CE prio feature +# Disable 0x00 +# Enable 0x01 +NXP_MIFARE_DESFIRE_DISABLE=0x00 + +############################################################################### +# Whether to allow wired mode in desfire and mifare CLT +# Disable 0x00 +# Enable 0x01 +NXP_ALLOW_WIRED_IN_MIFARE_DESFIRE_CLT=0x00 + +############################################################################### +# Extended APDU length for ISO_DEP +ISO_DEP_MAX_TRANSCEIVE=0x0105 + diff --git a/proprietary-files.txt b/proprietary-files.txt index 0135f35..6eeeb2d 100644 --- a/proprietary-files.txt +++ b/proprietary-files.txt @@ -544,6 +544,9 @@ vendor/lib64/unnhal-acc-adreno.so vendor/lib64/unnhal-acc-common.so vendor/lib64/unnhal-acc-hvx.so +# NFC +vendor/lib/libpn553_fw.so + # OMX vendor/lib/libAlacSwDec.so vendor/lib/libApeSwDec.so diff --git a/sdm710.mk b/sdm710.mk index 141d07c..8581105 100644 --- a/sdm710.mk +++ b/sdm710.mk @@ -230,6 +230,19 @@ PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \ android.hardware.neuralnetworks@1.3.vendor +# NFC +PRODUCT_PACKAGES += \ + android.hardware.nfc@1.2-service \ + android.hardware.secure_element@1.2.vendor \ + com.android.nfc_extras \ + libchrome.vendor \ + NfcNci \ + SecureElement \ + Tag + +PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/nfc/libnfc-nxp.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-nxp.conf + # OMX PRODUCT_PACKAGES += \ libOmxAacEnc \