NXP - logo

AN13971
PN7220 – Android porting itọsọna
Ìṣí. 1.0 - 18 Kẹsán 2023
Akọsilẹ ohun elo

PN7220 Ibamu NFC Adarí

Alaye iwe

Alaye Akoonu
Awọn ọrọ-ọrọ PN7220, NCI, EMVCo, NFC Forum, Android, NFC
Áljẹbrà Iwe yii ṣe apejuwe bi o ṣe le gbejade PN7220 agbedemeji agbedemeji si Android.

NXP Semikondokito

Àtúnyẹwò itan
Àtúnyẹwò itan

Rev Ọjọ Apejuwe
v.1.0 20230818 Ẹya akọkọ

Ọrọ Iṣaaju

Iwe yii n pese awọn itọnisọna fun sisọpọ PN7220 NXP NCI ti o da lori NFC oludari sinu pẹpẹ Android kan lati inu irisi sọfitiwia.
O kọkọ ṣe alaye bi o ṣe le fi awakọ kernel ti a beere sori ẹrọ, ati lẹhinna ṣe apejuwe igbese-nipasẹ-igbesẹ bi o ṣe le ṣe akanṣe awọn orisun AOSP lati ṣafikun atilẹyin fun oludari PN7220 NFC. Nọmba 1 ṣe afihan faaji ti gbogbo akopọ NFC Android.

NXP PN7220 Olutọju NFC ti o ni ibamu - Iṣafihan 1

Olusin 1. Android NFC akopọ

PN7220 ti pin si ọkan-ogun ati awọn oju iṣẹlẹ agbalejo meji. Ni gbogbogbo, akopọ jẹ kanna fun agbalejo meji, a ṣafikun SMCU.

  • Awakọ NXP I2C jẹ module ekuro ti o pese iraye si awọn orisun ohun elo ti PN7220.
  • Ẹrọ HAL jẹ imuse ti Layer abstraction HW kan pato ti oludari NXP NFC.
  • LibNfc-nci jẹ ile-ikawe abinibi ti o pese iṣẹ ṣiṣe NFC.
  • NFC JNI jẹ ​​koodu lẹ pọ laarin Java ati awọn kilasi abinibi.
  • NFC ati EMVCo Framework jẹ module ilana ohun elo ti o pese iraye si NFC ati iṣẹ ṣiṣe EMVCo.

Ekuro iwakọ

Akopọ NFC Android nlo awakọ kernel nxpnfc lati ṣe ibasọrọ pẹlu PN7220. O wa nibi.

2.1 Driver alaye
Awakọ ekuro nxpnfc nfunni ni ibaraẹnisọrọ pẹlu PN7220 lori wiwo ti ara I2C kan.
Nigbati o ba gbe sinu ekuro, awakọ yii ṣe afihan wiwo si PN7220 nipasẹ ipade ẹrọ ti a npè ni /dev/ nxpnfc.

2.2 Ngba koodu orisun
Clone ibi ipamọ awakọ PN7220 sinu itọsọna ekuro, rọpo imuse ti o wa tẹlẹ:
$ rm -rf awakọ / nfc
$git oniye"https://github.com/NXPNFCLinux/nxpnfc.git“-b PN7220-awakọ awakọ/

Eyi pari pẹlu awọn awakọ folda / nfc ti o ni atẹle naa files:

  • README.md: alaye ibi ipamọ
  • Ṣe file: iwakọ akori Rii file
  • Kcon ọpọtọ: iwakọ iṣeto ni file
  • Iwe-aṣẹ: Awọn ofin iwe-aṣẹ awakọ
  • nfc folda ninu:
    – commoc. c: jeneriki iwakọ imuse
    – wọpọ. h: jeneriki iwakọ ni wiwo definition
    - i2c_drv.c: i2c pato iwakọ imuse
    - i2c_drv.h: i2c pato awakọ ni wiwo asọye
    – Ṣefile: ṣefile ti o wa ninu sisefile ti awakọ
    – Kbuild => kọ file
    – Kconfig => iṣeto awakọ file

2.3 Ilé awakọ
Pẹlu awakọ sinu ekuro ati ṣiṣe ki o fifuye lakoko bata ẹrọ jẹ ọpẹ si ẹrọ ẹrọ naa.
Lẹhin ti o ṣe imudojuiwọn itumọ igi ẹrọ, igi ẹrọ ti o ni ibatan si pẹpẹ gbọdọ jẹ tunkọ. NXP ni imọran lilo ẹya kernel 5.10, niwọn igba ti ẹya yii jẹ ifọwọsi pipe.

  1. Ṣe igbasilẹ ekuro naa
  2. Gba koodu orisun awakọ naa.
  3. Yi itumọ igi ẹrọ pada (kan pato si ẹrọ ti a nlo).
  4. Kọ awakọ.
    a. Nipasẹ ilana menuconfig, pẹlu awakọ ibi-afẹde ninu kikọ.

Lẹhin atunṣe ekuro pipe, awakọ yoo wa ninu aworan ekuro. A gbọdọ rii daju pe gbogbo awọn aworan ekuro tuntun ni a daakọ sinu kikọ AOSP.

AOSP aṣamubadọgba

NXP n pese awọn abulẹ lori oke koodu AOSP. Iyẹn tumọ si pe olumulo le kọkọ gba koodu AOSP kan ati lo awọn abulẹ lati NXP. Abala yii ṣe apejuwe bi o ṣe le ṣaṣeyọri eyi. AOSP lọwọlọwọ tag ti a nlo ni [1].

3.1 AOSP kọ

  1. A gbọdọ gba koodu orisun AOSP. Eyi ni a le ṣe pẹlu:
    $ repo init -u https://android.googlesource.com/platform/manifest-b Android-13.0.0_r3
    $ repo amuṣiṣẹpọ
    Akiyesi: Ohun elo repo gbọdọ wa ni fi sori ẹrọ lori eto naa. Tẹle awọn ilana [2].
  2. Nigba ti a ba ni koodu orisun, a le tẹ iwe ilana naa ki o si kọ ọ:
    $cd Android_AROOT
    $ orisun kọ / envsetup.sh
    $ọsan select_target #afojusun jẹ DH ti a fẹ lati lo fun example: db845c-userdebug $ ṣe -j
  3. Nigbati AOSP ti kọ ni aṣeyọri, a gbọdọ gba awọn abulẹ NXP. Eyi ni a le ṣe pẹlu:
    $git oniye"https://github.com/NXPNFCLinux/PN7220_Android13.git” ataja/nxp/
  4. Ni aaye yii, gbogbo wa nilo lati lo awọn abulẹ fun atilẹyin PN7220. A le lo awọn abulẹ nipa sisẹ iwe afọwọkọ install_NFC.sh.
    $chmod +x / olùtajà/nxp/nfc/install_NFC.sh #nigba miiran a nilo lati ṣafikun awọn ẹtọ ṣiṣe si iwe afọwọkọ
    $./ olùtajà/nxp/nfc/install_NFC.sh
    Akiyesi: Ṣayẹwo iṣẹjade lẹhin ṣiṣe install_NFC.sh. Ti o ba nilo, a gbọdọ ṣe diẹ ninu awọn ayipada pẹlu ọwọ.
  5. A tun le ṣafikun awọn alakomeji FW:
    $git oniye xxxxxxx
    $cp -r nfc-NXPNFCC_FW/InfraFW/pn7220/64-bit/libpn72xx_fw.so AROOT/vendor/nxp/pn7220/firmware/lib64/libpn72xx_fw.so
    $cp -r nfc-NXPNFCC_FW/InfraFW/pn7220/32-bit/libpn72xx_fw.so AROOT/vendor/nxp/pn7220/firmware/lib/libpn72xx_fw.so
  6. Ṣafikun NFC lati kọ
    Ninu ẹrọ naa.mk ṣefile (fun example, ẹrọ/brand/platform/device.mk), pẹlu kan pato Riifiles:
    $ (ipe-ọja-jogun, olùtajà/nxp/nfc/ẹrọ-nfc.mk)
    Ni awọn BoardConfig.mk ṣefile (fun example, ẹrọ / brand / Syeed / BoardConfig.mk), pẹlu kan pato ṣefile:
    -pẹlu ataja/nxp/nfc/BoardConfigNfc.mk
  7. Fifi DTA ohun elo
    $git oniye https://github.com/NXPNFCProject/NXPAndroidDTA.git $git isanwo NFC_DTA_v13.02_OpnSrc $patch -p1 AROOT_system_nfc-dta.patch
    $ cp -r nfc-dta /system/nfc-dta
    $/system/nfc-dta/$ mm -j
  8. Bayi a le kọ AOSP lẹẹkansi pẹlu gbogbo awọn ayipada ti a ṣe:
    $ cd ilana / mimọ
    $mm
    $cd.../...
    $cd ataja / nxp/frameworks
    $mm #lẹhin eyi, o yẹ ki a rii com.nxp.emvco.jar inu jade/target/product/xxxx/system/framwework/
    $cd.../.../...
    $cd hardware/nxp/nfc
    $mm
    $cd.../.../...
    $ṣe -j
    Bayi, a ni anfani lati filasi ogun ẹrọ wa pẹlu aworan Android ti o pẹlu awọn ẹya NFC.

3.2 Android NFC Apps ati Lib lori awọn ibi-afẹde
Ni apakan apakan yii, a ṣe apejuwe nibiti a ti ṣajọpọ pato files ti wa ni titari. Ti iyipada eyikeyi ba wa, a le rọpo eyi nikan file. Table 1 fihan gbogbo awọn ipo.
Tabili 1.  Akojọpọ files pẹlu afojusun ẹrọ

Ipo ise agbese Akojọ Files Ipo ni afojusun ẹrọ
"$ ANDROID_ROOT"/packages/apps/Nfc lib/NfcNci.apk
oat/libnfc_nci_jni.so
/system/app/NfcNci/
/eto/lib64/
"$ ANDROID_ROOT"/system/nfc libnfc_nci.so /eto/lib64/
"$ ANDROID_ROOT"/hardware/nxp/nfc nfc_nci_nxp_pn72xx.so
android.hardware.nfc_72xx@1.2-iṣẹ android.hardware.nfc_72xx@1.2-service.rc
android.hardware.nfc@1.0.so
android.hardware.nfc@1.1.so
android.hardware.nfc@1.2.so
/ ataja / lib64
/ olùtajà/bin/hw/
/ olùtajà/etc/init
eto/lib64/
eto/lib64/
eto/lib64/
"$ ANDROID_ROOT"/hardware/nxp/nfc olùtajà.nxp.nxpnfc@2.0.so /eto/lib64
"$ ANDROID_ROOT" / olùtajà/nxp/frameworks com.nxp.emvco.jar /system/framework
/ ataja / fireemu
"$ ANDROID_ROOT"/hardware/nxp/emvco emvco_poller.so
android.hardware.emvco-iṣẹ
android.hardware.emvco-iṣẹ.rc
android.hardware.emvco-V1-ndk.so
android.hardware.emvco-V2-ndk.so
/ ataja / lib64
/ olùtajà/bin/hw/
/ olùtajà/etc/init
eto/lib64/
eto/lib64/

3.3 Patch maapu

Gbogbo alemo gbọdọ wa ni lilo si ipo kan pato. Table 2 fihan awọn alemo orukọ ati awọn ipo ibi ti a gbọdọ waye o ati ki o kan Àkọsílẹ orukọ, eyi ti fihan wa ibi ti ni NFC akopọ (olusin 1) ti wa ni be.
Table 2. Patch ipo ni NFC Stack

Orukọ Àkọsílẹ Orukọ patch Ipo lati lo
NFC HAL ati EMVCo HAL AROOT_hardware_interfaces.patch hardware / atọkun /
NFC akopọ AROOT_hardware_nxp_nfc.patch hardware/nxp/nfc/
EMVCo L1 Data Exchange Layer = EMVCo Stack AROOT_hardware_nxp_emvco.patch hardware/nxp/emvco/
LibNfc-Nci AROOT_system_nfc.patch eto/nfc/
NFC JNI AROOT_packages_apps_Nfc.patch awọn idii/apps/nfc/
Iṣẹ NFC AROOT_packages_apps_Nfc.patch awọn idii/apps/nfc/
NFC Framework AROOT_frameworks_base.patch awọn ipilẹ / ipilẹ /
EMVCo Framework AROOT_vendor_nxp_frameworks.patch ataja/nxp/awọn ilana/

3.4 ìmọlẹ images
Awọn aworan ni a le rii ni /out/target/product/{selected_DH}. Lati filasi awọn aworan eto, a gbọdọ ṣiṣe awọn aṣẹ wọnyi (idanwo lori Dragonboard 845c).
$ adb atunbere bootloader
$ fastboot filasi bata bata_uefi.img
$ fastboot filasi olùtajà_boot vendor_boot.img
$ fastboot filasi Super super.img
$ fastboot flash userdata userdata.img
$ fastboot ọna kika:ext4 metadata $ fastboot atunbere

Lẹhin ti awọn aworan ti wa ni flashed, a gbọdọ ṣe diẹ ninu awọn MW nu-soke nipa a ṣiṣe awọn wọnyi ase (idanwo lori Dragonboard 845c).

$ adb duro-fun-ẹrọ
$ adb root
$ adb duro-fun-ẹrọ
$ adb atunṣe
$ adb shell rm -rf ataja/etc/init/android.hardware.nfc@1.1-service.rc
$ adb shell rm -rf ataja/etc/init/android.hardware.nfc@1.2-service.rc
$ adb titari Test_APK/EMVCoAidlHalComplianceTest/EMVCoAidlHalComplianceTestsystem/ati be be lo
$ adb ikarahun chmod 0777 /system/etc/EMVCoAidlHalComplianceTest
$ adb titari Test_APK/EMVCoAidlHalDesfireTest/EMVCoAidlHalDesfireTest eto/ati be be lo
$ adb ikarahun chmod 0777 /system/etc/EMVCoAidlHalDesfireTest
$ adb titari Test_APK/EMVCoModeSwitchApp/EMVCoModeSwitchApp.apk system/app/EMVCoModeSwitchApp/EMVCoModeSwitchApp.apk
$ adb ikarahun ìsiṣẹpọ
$ adb atunbere
$ adb duro-fun-ẹrọ

3.5 atunto files
Ni PN7220, a ni mẹrin ti o yatọ iṣeto ni files.

  1. libemvco-nxp.conf
  2. libnfc-nci.conf
  3. libnfc-nxp.conf
  4. libnfc-nxp-eeprom.conf

Akiyesi: San ifojusi pe iṣeto ni files pese ni example relate si NFC adarí demo ọkọ. Awọn wọnyi files gbọdọ gba ni ibamu si isọpọ ti a fojusi.
Gbogbo mẹrin files gbọdọ wa ni titari si ipo kan pato.

Table 3.  Awọn ipo ti iṣeto ni files

Orukọ iṣeto ni file Ipo ninu ẹrọ
libemvco-nxp.conf ataja/ati be be lo
libnfc-nci.conf ataja/ati be be lo
libnfc-nxp.conf eto / ati be be lo
libnfc-nxp-eeprom.conf ataja/ati be be lo

libnfc-nxp-eeprom.conf

Table 4. libnfc-nxp-eeprom.conf alaye

Oruko Alaye Iwọn aiyipada
NXP_SYS_CLK_
SRC_SEL
Eto aago orisun aṣayan iṣeto ni 0x01
NXP_SYS_CLK_
FREQ_SEL
Eto aago igbohunsafẹfẹ aṣayan iṣeto ni 0x08
NXP_ENABLE_
DISABLE_STANBY
Aṣayan lati mu ṣiṣẹ tabi mu ipo imurasilẹ ṣiṣẹ 0x00
NXP_ENABLE_
DISABLE_LPCD
Aṣayan lati mu ṣiṣẹ tabi mu LPCD ṣiṣẹ. 0x00

Akiyesi: Ti ko ba tunto aago, boya PLL tabi Xtal, lẹhinna akopọ MW tun gbiyanju ni lupu kan lati gba aago ati bẹrẹ ni aṣeyọri. libnfc-nci.conf

Table 5. libnfc-nci.conf alaye

Oruko Alaye Iwọn aiyipada
APPL_TRACE_LEVEL Awọn ipele wọle fun libnfc-nci 0xFF
PROTOCOL_TRACE_LEVEL Awọn ipele wọle fun libnfc-nci 0xFFFFFFFF
NFC_DEBUG_ENABLED NFC yokokoro siseto 0x01
NFA_STORAGE Ṣeto itọsọna ibi-afẹde fun NFC file ibi ipamọ /data/ataja/nfc
HOST_LISTEN_TECH_MASK Ṣe atunto ẹya gbigbọ ogun 0x07
NCI_HAL_MODULE NCI HAL Module orukọ nfc_nci.pn54x
POLLING_TECH_MASK Iṣeto ni awọn imọ-ẹrọ idibo 0x0F

Tabili 5. libnfc-nci.conf alaye...tesiwaju

Oruko Alaye Iwọn aiyipada
P2P_LISTEN_TECH_MASK P2P ko ni atilẹyin ni PN7220 0xC5
PRESERVE_STORAGE Jẹrisi akoonu ti gbogbo awọn ile itaja ti kii ṣe iyipada. 0x01
AID_MATCHING_MODE Pese awọn ọna oriṣiriṣi lati baramu AID naa 0x03
NFA_MAX_EE_SUPPORTED Nọmba atilẹyin EE ti o pọju 0x01
OFFHOST_AID_ROUTE_PWR_STATE Ṣeto OffHost AID ni atilẹyin ipo 0x3B

libnfc-nxp.conf

Table 6. libnfc-nxp.conf alaye

Oruko Alaye Iwọn aiyipada
NXPLOG_EXTNS_LOGLEVEL Iṣeto ni fun extns gedu ipele 0x03
NXPLOG_NCIHAL_LOGLEVEL Iṣeto ni fun gbigba wọle ti HAL 0x03
NXPLOG_NCIX_LOGLEVEL Iṣeto ni fun gbigba wọle ti awọn apo-iwe NCI TX 0x03
NXPLOG_NCIR_LOGLEVEL Iṣeto ni fun gbigba wọle ti awọn apo-iwe NCI RX 0x03
NXPLOG_FWDNLD_LOGLEVEL Iṣeto ni fun gbigba wọle ti FW download iṣẹ 0x03
NXPLOG_TML_LOGLEVEL Iṣeto ni fun muu wọle ti TM 0x03
NXP_NFC_DEV_NODE NFC Device Node orukọ idev/rixpnfc”
MIFARE_READER_ENABLE Itẹsiwaju fun oluka NFC fun ṣiṣe MIFARE Epo01
NXP_FW_TYPE Firmware file iru Epo01
NXP_I2C_FRAGMENTATION_ GBE Tunto 12C Fragmentation 0x00
NFA_PROPRIETARY_CFG Ṣeto atunto ohun-ini Olutaja {05, FF, FF, 06, 81, 80, 70, FF, FF}
NXP_EXT_TVDD_CFG Ṣeto ipo iṣeto ni TVDD 0x02
NXP_EXT TVDD_CFG_1 Ṣe atunto awọn eto TVDD ni ibamu si ipo TVDD ti o yan Ṣayẹwo atunto file
NXP_EXT_TVDD_CFG_2 Ṣe atunto awọn eto TVDD ni ibamu si ipo TVDD ti o yan Ṣayẹwo atunto file
NXP_CORE_CONF Tunto awọn ẹya idiwon ti NFC oludari {20, 02, 07, 02, 21, 01, 01, 18, 01, 02}
NXP_CORE_CONF_EXTN Ṣe atunto awọn ẹya ohun-ini ti oludari NFC {00, 00, 00, 00}
NXP_SET_CONFIG_ALWAYS Firanṣẹ nigbagbogbo CORE_CONF ati CORE_CONF_EXTN (ko ṣe iṣeduro lati muu ṣiṣẹ.) Epo00
NXP_RF_CONF_BLK_1 Awọn eto RF Ṣayẹwo atunto file
ISO_DEP_MAX_TRANSCIEVE Setumo o pọju ISO-DEP tesiwaju APDU ipari OxFEFF
PRESENCE_CHECK_ALGORITHM Ṣeto algoridimu ti a lo fun ilana ayẹwo wiwa niwaju T4T 2
NXP_FLASH_CONFIG Imọlẹ Awọn atunto Aw 0x02

libemvco-nxp.conf

Table 7. libemvco-nxp.conf alaye

Oruko Alaye Iwọn aiyipada
NXP LOG EXTNS LOGLEVEL Iṣeto ni fun extns gedu ipele 0x03
NXP LOG NCIHAL LOGLEVEL Iṣeto ni fun gbigba wọle ti HAL 0x03
NXP LOG NCIX LOGLEVEL Iṣeto ni fun gbigba wọle ti awọn apo-iwe NCI TX 0x03
NXP LOG NCIR LOGLEVEL Iṣeto ni fun gbigba wọle ti awọn apo-iwe NCI RX 0x03
NXP LOG TML LOGLEVEL Iṣeto ni fun muu wọle ti TML 0x03
NXP_EMVCO_DEBUG_ENABLED Muu ṣiṣẹ n ṣatunṣe aṣiṣe 0x03
NXP EMVCO DEV NODE EMVCo Device Node orukọ "/dev/nxpnfc"
NXP PCD Eto Iṣeto ni lati ṣeto idaduro idibo laarin awọn ipele 2 (20, 02, 07, 01, A0, 64, 03, EC, 13, 06)
NXP SET CONFIG Aṣayan lati ṣeto aṣẹ atunto fun idi ti n ṣatunṣe aṣiṣe Ṣayẹwo atunto file
NXP Gba atunto Aṣayan lati gba aṣẹ atunto fun idi ti n ṣatunṣe aṣiṣe Ṣayẹwo atunto file

3.6 DTA ohun elo
Lati gba idanwo iwe-ẹri NFC Forum, a pese ohun elo idanwo ẹrọ kan. O ni awọn paati pupọ ni oriṣiriṣi awọn fẹlẹfẹlẹ Android, eyiti o gbọdọ kọ ati pẹlu aworan Android.
Lati Titari ohun elo DTA, a gbọdọ tẹle awọn igbesẹ atẹle:

  1. Daakọ gbogbo DTA files si ọkan ipo
    $cp -rf “jade/afojusun/ọja/hikey960/system/lib64/libosal.so” /DTA-PN7220
    $cp -rf “jade/afojusun/ọja/hikey960/system/lib64/libmwif.so” /DTA-PN7220
    $cp -rf “jade/afojusun/ọja/hikey960/system/lib64/libdta.so” /DTA-PN7220
    $cp -rf “jade/afojusun/ọja/hikey960/system/lib64/libdta_jni.so” /DTA-PN7220
    $cp -rf “jade/afojusun/ọja/hikey960/system/app/NxpDTA/NxpDTA.apk” /DTAPN7220
  2. Titari awọn alakomeji si ẹrọ bi isalẹ
    adb shell mkdir /system/app/NxpDTA/
    adb push libosal.so /system/lib64/
    adb push libdta.so /system/lib64/
    adb push libdta_jni.so /system/lib64/
    adb push libmwif.so /system/lib64/
    adb titari NxpDTA.apk /system/app/NxpDTA/

Lẹhin ikosan ibi-afẹde, ohun elo DTA yẹ ki o wa ni atokọ ti awọn ohun elo ti a fi sii. Ṣayẹwo UG fun alaye alaye bi o ṣe le lo ohun elo naa.

i.MX 8M Nano ibudo

Bi example, a fihan ohun ti porting to i.MX 8M Syeed wulẹ. Lati gba alaye diẹ sii, ṣayẹwo [3].

4.1 Hardware
Ni akoko, NXP ko pese igbimọ ohun ti nmu badọgba. Ṣayẹwo Tabili 8 lati wo bi o ṣe le so awọn igbimọ pọ pẹlu awọn onirin.

Table 8. PN7220 to i.MX 8M Nano awọn isopọ

PIN PN7220 i.MX 8M NANO
VEN J27-7 J003-40
IRQ J27-6 J003-37
SDA J27-3 J003-3
SCL J27-2 J003-5
MODE_Yipada J43-32 J003-38
GND J27-1 J003-39

4.2 Software
Awọn igbesẹ ti a ṣe apejuwe ni apakan yii ṣe alaye bi a ṣe le gbe PN7200 si i.MX 8M Nano Syeed. Awọn igbesẹ kanna pẹlu iyipada diẹ, o le ṣee lo lati gbe si eyikeyi DH miiran ti o nṣiṣẹ Android OS.
Akiyesi: Ni yi porting example, a nlo 13.0.0_1.0.0_Android_Source.
A le tun lo awọn abulẹ ti o ni ibatan si koodu AOSP. Ohun ti o gbọdọ yipada ni:

  1. Igi ẹrọ (ni i.MX 8M Nano, eyi ni AROOT_vendor_nxp-opensource_imx_kernel.patch)
  2. Patch ẹrọ kan pato (ni i.MX 8M Nano, eyi ni AROOT_device_nxp.patch)

Ni AROOT_vendor_nxp-opensource_imx_kernel.patch, a le rii bi awakọ ṣe wa pẹlu ati bii igi ẹrọ ṣe kọ. Eyi jẹ pato si gbogbo agbalejo ẹrọ nitori a gbọdọ ṣe abojuto iṣeto ni pin, ati pe eyi yatọ laarin awọn igbimọ. A tun gbọdọ ṣe abojuto iṣeto ni akojọ aṣayan.
Ni AROOT_device_nxp.patch, a wa pẹlu nfc sinu Kọ. Ni gbogbogbo, a rii daju pe gbogbo awọn iṣẹ ni o wa ni ọna ti o tọ, ati bẹbẹ lọ Nigbati o ba n wọle si ogun ẹrọ kan pato, mu alemo yii gẹgẹbi itọkasi ati pẹlu gbogbo awọn nkan inu.
Ohun afikun kan ti a ṣe ni gbigbe ni o wa ni ẹrọ-nfc.mk file:
A nilo lati sọ asọye awọn ila wọnyi:
# BOARD_SEPOLICY_DIRS += ataja/$(NXP_VENDOR_DIR)/nfc/sepolicy \
# ataja/$(NXP_VENDOR_DIR)/nfc/sepolicy/nfc
Idi fun eyi ni pe a wa pẹlu ipinya ninu ẹrọ-pato BoardConfig.mk file. Awọn igbesẹ lati kọ awọn aworan:
> Gba koodu AOSP fun i.MX8M Nano
> Kọ AOSP
> Gba awọn abulẹ NXP ([5])
> Waye gbogbo awọn abulẹ pẹlu install_nfc.sh
> cd ilana/ipilẹ
> mm
> cd.../..
> cd ataja/nxp/frameworks
> mm #lẹhin eyi, o yẹ ki a rii com.nxp.emvco.jar inu jade/target/product/ imx8mn/system/framwework/
> cd.../.../..
> cd hardware/nxp/nfc
> mm
> cd.../.../..
> ṣe
> Ṣe igbasilẹ awọn aworan ati lo ọpa uuu lati filasi i.MX8M Nano

Awọn kukuru

Table 9. Abbreviations

Adape Apejuwe
APDU ohun elo bèèrè data kuro
AOSP Android ìmọ orisun ise agbese
DH ogun ẹrọ
HAL hardware áljẹbrà Layer
FW famuwia
I2C inter-ese Circuit
LPCD kekere agbara erin kaadi
NCI NFC oludari ni wiwo
NFC sunmọ-oko ibaraẹnisọrọ
MW middleware
PLL alakoso-titii pa lupu
P2P ori-o-jori
RF igbohunsafẹfẹ redio
SDA tẹlentẹle data
SMCU ni aabo microcontroller
SW software

Awọn itọkasi

[1] AOSP r3 tag: https://android.googlesource.com/platform/manifest-b Android-13.0.0_r3
[2] Awọn irinṣẹ iṣakoso orisun: https://source.android.com/docs/setup/download
[3] i.MX: https://www.nxp.com/design/software/embedded-software/i-mx-software/android-os-for-i-mxapplications-processors:IMXANDROID
[4] Awakọ ekuro PN7220: https://github.com/NXPNFCLinux/nxpnfc/tree/PN7220-Driver
[5] PN7220 MW: https://github.com/NXPNFCLinux/PN7220_Android13

Akiyesi nipa koodu orisun ninu iwe-ipamọ naa

Exampkoodu ti o han ninu iwe yii ni ẹtọ aṣẹ-lori atẹle ati iwe-aṣẹ Clause BSD-3:
Aṣẹ-lori-ara 2023 NXP Satunkọ ati lilo ni orisun ati awọn fọọmu alakomeji, pẹlu tabi laisi iyipada, jẹ idasilẹ ti a pese pe awọn ipo wọnyi ti pade:

  1. Awọn atunpinpin ti koodu orisun gbọdọ da akiyesi aṣẹ-lori oke loke, atokọ awọn ipo ati idawọle atẹle.
  2. Awọn atunpinpin ni fọọmu alakomeji gbọdọ tun ṣe akiyesi aṣẹ-lori loke, atokọ awọn ipo ati idawọle atẹle ninu iwe ati/tabi awọn ohun elo miiran gbọdọ wa ni ipese pẹlu pinpin.
  3. Bẹni orukọ ẹniti o ni aṣẹ lori ara tabi awọn orukọ ti awọn olupilẹṣẹ rẹ le ṣee lo lati ṣe atilẹyin tabi ṣe igbega awọn ọja ti o wa lati sọfitiwia yii laisi aṣẹ iwe-aṣẹ tẹlẹ ṣaaju.

SOFTWARE YI NI A NPESE LATI ỌWỌ awọn oludimu ati awọn oluranlọwọ “BẸẸNI” ATI awọn iṣeduro KIAKIA TABI TIN, PẸLU, SUGBON KO NI OPIN SI, Awọn ATILẸYIN ỌJA TI ỌLỌWỌ ATI IWỌRỌ FUN AGBẸRẸ. Ni iṣẹlẹ kankan yoo ni igbẹkẹle tabi awọn aladakọ wa fun eyikeyi taara, aiṣe-taara, apẹẹrẹ, deede ti awọn ohun elo tabi awọn iṣẹ ti aropo LILO, DATA, TABI ERE; NI imọran ti seese ti iru bibajẹ.

Alaye ofin

8.1 Awọn asọye
Akọpamọ - Ipo yiyan lori iwe kan tọkasi pe akoonu naa tun wa labẹ atunlo inuview ati ki o koko ọrọ si lodo alakosile, eyi ti o le ja si ni awọn iyipada tabi awọn afikun. NXP Semiconductors ko fun eyikeyi awọn aṣoju tabi awọn atilẹyin ọja bi deede tabi pipe alaye ti o wa ninu ẹya iyaworan ti iwe kan ati pe ko ni layabiliti fun awọn abajade ti lilo iru alaye.

8.2 Awọn AlAIgBA
Atilẹyin ọja to lopin ati layabiliti - Alaye ti o wa ninu iwe yii jẹ deede ati igbẹkẹle. Sibẹsibẹ, NXP Semiconductors ko fun eyikeyi awọn aṣoju tabi awọn atilẹyin ọja, ti a fihan tabi mimọ, nipa deede tabi pipe iru alaye ati pe kii yoo ni layabiliti fun awọn abajade ti lilo iru alaye. NXP Semiconductors ko gba ojuse fun akoonu inu iwe yii ti o ba pese nipasẹ orisun alaye ni ita ti NXP Semiconductor.
Ko si iṣẹlẹ ti NXP Semiconductors yoo ṣe oniduro fun eyikeyi aiṣe-taara, isẹlẹ, ijiya, pataki tabi awọn bibajẹ ti o wulo (pẹlu – laisi aropin awọn ere ti o padanu, awọn ifowopamọ ti o sọnu, idalọwọduro iṣowo, awọn idiyele ti o ni ibatan si yiyọkuro tabi rirọpo awọn ọja eyikeyi tabi awọn idiyele atunṣe) boya tabi Kii ṣe iru awọn bibajẹ bẹ da lori ijiya (pẹlu aifiyesi), atilẹyin ọja, irufin adehun tabi ilana ofin eyikeyi miiran.
Laibikita eyikeyi awọn ibajẹ ti alabara le fa fun eyikeyi idi eyikeyi, apapọ NXP Semiconductor ati layabiliti akopọ si alabara fun awọn ọja ti a ṣalaye ninu rẹ yoo ni opin ni ibamu pẹlu Awọn ofin ati ipo ti titaja iṣowo ti NXP Semiconductor.
Ọtun lati ṣe awọn ayipada - NXP Semiconductors ni ẹtọ lati ṣe awọn ayipada si alaye ti a tẹjade ninu iwe yii, pẹlu laisi awọn pato aropin ati awọn apejuwe ọja, nigbakugba ati laisi akiyesi. Iwe yi rọpo ati rọpo gbogbo alaye ti a pese ṣaaju ki o to tẹjade nibi.
Imudara fun lilo Awọn ọja Semiconductor NXP ko ṣe apẹrẹ, ni aṣẹ tabi atilẹyin ọja lati dara fun lilo ninu atilẹyin igbesi aye, pataki-aye tabi awọn eto aabo-pataki tabi ohun elo, tabi ni awọn ohun elo nibiti ikuna tabi aiṣedeede ti ọja NXP Semiconductor ọja le ni idi yẹ lati ja si ipalara ti ara ẹni, iku tabi ohun-ini nla tabi ibajẹ ayika. NXP Semiconductors ati awọn olupese rẹ ko gba layabiliti fun ifisi ati/tabi lilo awọn ọja Semiconductor NXP ni iru ẹrọ tabi awọn ohun elo ati nitorinaa iru ifisi ati/tabi lilo wa ni eewu alabara.
Awọn ohun elo - Awọn ohun elo ti o ṣapejuwe ninu rẹ fun eyikeyi awọn ọja wọnyi wa fun awọn idi alapejuwe nikan. NXP Semiconductors ko ṣe aṣoju tabi atilẹyin ọja pe iru awọn ohun elo yoo dara fun lilo pàtó laisi idanwo siwaju tabi iyipada. Awọn alabara ni iduro fun apẹrẹ ati iṣẹ awọn ohun elo wọn ati awọn ọja nipa lilo awọn ọja Semiconductor NXP, ati NXP Semiconductor ko gba layabiliti fun eyikeyi iranlọwọ pẹlu awọn ohun elo tabi apẹrẹ ọja alabara. O jẹ ojuṣe alabara nikan lati pinnu boya ọja Semiconductor NXP dara ati pe o yẹ fun awọn ohun elo alabara ati awọn ọja ti a gbero, bakanna fun ohun elo ti a gbero ati lilo awọn alabara ẹgbẹ kẹta ti alabara. Awọn alabara yẹ ki o pese apẹrẹ ti o yẹ ati awọn aabo iṣiṣẹ lati dinku awọn eewu ti o nii ṣe pẹlu awọn ohun elo ati awọn ọja wọn.
NXP Semiconductors ko gba eyikeyi layabiliti ti o ni ibatan si eyikeyi aiyipada, ibajẹ, awọn idiyele tabi iṣoro eyiti o da lori eyikeyi ailera tabi aiyipada ninu awọn ohun elo alabara tabi awọn ọja, tabi ohun elo tabi lilo nipasẹ awọn alabara ẹgbẹ kẹta ti alabara. Onibara jẹ iduro fun ṣiṣe gbogbo awọn idanwo pataki fun awọn ohun elo alabara ati awọn ọja nipa lilo awọn ọja Semiconductor NXP lati yago fun aiyipada awọn ohun elo ati awọn ọja tabi ohun elo tabi lilo nipasẹ alabara ẹgbẹ kẹta ti alabara. NXP ko gba gbese eyikeyi ni ọwọ yii.
Ofin ati ipo ti owo tita Awọn ọja Semiconductor NXP ni a ta labẹ awọn ofin gbogbogbo ati awọn ipo ti titaja iṣowo, bi a ti tẹjade ni http://www.nxp.com/profile/terms, ayafi ti bibẹkọ ti gba ni a wulo kọ olukuluku adehun. Ni ọran ti adehun ẹni kọọkan ba pari awọn ofin ati ipo ti adehun oniwun yoo lo. NXP Semikondokito nipa bayi ni awọn nkan taara si lilo awọn ofin gbogbogbo ti alabara pẹlu iyi si rira awọn ọja Semiconductor NXP nipasẹ alabara.
Iṣakoso okeere - Iwe-ipamọ yii ati awọn nkan (awọn) ti a ṣalaye ninu rẹ le jẹ koko-ọrọ si awọn ilana iṣakoso okeere. Si ilẹ okeere le nilo aṣẹ ṣaaju lati ọdọ awọn alaṣẹ to peye.
Ibamu fun lilo ninu awọn ọja ti ko ni oye ọkọ ayọkẹlẹ - Ayafi ti iwe-ipamọ yii ba sọ ni gbangba pe ọja NXP Semiconductor pato yii jẹ oṣiṣẹ adaṣe, ọja naa ko dara fun lilo adaṣe. Ko jẹ oṣiṣẹ tabi idanwo ni ibamu pẹlu idanwo adaṣe tabi awọn ibeere ohun elo. NXP Semiconductors gba ko si gbese fun ifisi ati/tabi lilo awọn ọja ti kii ṣe adaṣe ni ohun elo adaṣe tabi awọn ohun elo.
Ni iṣẹlẹ ti alabara nlo ọja naa fun apẹrẹ-inu ati lilo ninu awọn ohun elo adaṣe si awọn pato adaṣe ati awọn iṣedede, alabara (a) yoo lo ọja laisi atilẹyin ọja Semiconductor NXP fun iru awọn ohun elo adaṣe, lilo ati awọn pato, ati ( b) nigbakugba ti alabara ba lo ọja naa fun awọn ohun elo ọkọ ayọkẹlẹ ti o kọja awọn pato NXP Semiconductors iru lilo yoo jẹ nikan ni eewu ti ara alabara, ati (c) alabara ni kikun ṣe idalẹbi awọn Semiconductor NXP fun eyikeyi layabiliti, awọn ibajẹ tabi awọn ẹtọ ọja ti o kuna ti o waye lati apẹrẹ alabara ati lilo ti ọja fun awọn ohun elo adaṣe kọja atilẹyin ọja boṣewa NXP Semiconductor ati awọn pato ọja NXP Semiconductor.
Awọn ọja igbelewọn - Ọja yii ti pese lori “bi o ti ri” ati “pẹlu gbogbo awọn aṣiṣe” ipilẹ fun awọn idi igbelewọn nikan. NXP Semiconductors, awọn alafaramo rẹ ati awọn olupese wọn ni gbangba sọ gbogbo awọn atilẹyin ọja, boya kiakia, mimọ tabi ofin, pẹlu ṣugbọn kii ṣe opin si awọn atilẹyin ọja ti a ko sọ di mimọ, iṣowo ati amọdaju fun idi kan. Gbogbo eewu bi si didara, tabi dide lati lilo tabi iṣẹ, ọja yii wa pẹlu alabara.
Ko si iṣẹlẹ ti NXP Semiconductors, awọn alafaramo rẹ tabi awọn olupese wọn jẹ oniduro si alabara fun eyikeyi pataki, aiṣe-taara, abajade, ijiya tabi awọn bibajẹ lairotẹlẹ (pẹlu laisi awọn bibajẹ aropin fun isonu iṣowo, idalọwọduro iṣowo, ipadanu lilo, pipadanu data tabi alaye , ati bii) dide ni lilo tabi ailagbara lati lo ọja naa, boya tabi rara
da lori ijiya (pẹlu aibikita), layabiliti ti o muna, irufin adehun, irufin atilẹyin ọja tabi ilana miiran, paapaa ti o ba gba imọran si iṣeeṣe iru awọn bibajẹ. Laibikita eyikeyi awọn ibajẹ ti alabara le fa fun eyikeyi idi eyikeyi (pẹlu laisi aropin, gbogbo awọn ibajẹ ti o tọka si loke ati gbogbo awọn bibajẹ taara tabi gbogbogbo), gbogbo layabiliti ti NXP Semiconductors, awọn alabaṣiṣẹpọ rẹ ati awọn olupese wọn ati atunṣe iyasọtọ ti alabara fun gbogbo awọn ti o ti sọ tẹlẹ. ni opin si awọn bibajẹ gangan ti o jẹ nipasẹ alabara ti o da lori igbẹkẹle ti o tọ titi de iye ti o tobi julọ ti iye ti o san gangan nipasẹ alabara fun ọja tabi dọla marun (US$5.00). Awọn idiwọn ti o ti sọ tẹlẹ, awọn iyọkuro ati awọn aibikita yoo waye si iye ti o pọ julọ ti a gba laaye nipasẹ ofin iwulo, paapaa ti atunṣe eyikeyi ba kuna fun idi pataki rẹ.
Awọn itumọ - Ẹya ti kii ṣe Gẹẹsi (tumọ) ti iwe kan, pẹlu alaye ofin ninu iwe yẹn, jẹ fun itọkasi nikan. Ẹ̀yà Gẹ̀ẹ́sì náà yóò gbilẹ̀ ní irú ìyàtọ̀ èyíkéyìí láàárín àwọn ìtúmọ̀ àti èdè Gẹ̀ẹ́sì.
Aabo - Onibara loye pe gbogbo awọn ọja NXP le jẹ koko ọrọ si awọn ailagbara ti a ko mọ tabi o le ṣe atilẹyin awọn iṣedede aabo ti iṣeto tabi awọn pato pẹlu awọn idiwọn ti a mọ. Onibara jẹ iduro fun apẹrẹ ati iṣẹ ti awọn ohun elo ati awọn ọja jakejado awọn igbesi aye wọn lati dinku ipa ti awọn ailagbara wọnyi lori awọn ohun elo alabara ati awọn ọja. Ojuse alabara tun fa si ṣiṣi ati/tabi awọn imọ-ẹrọ ohun-ini ti o ni atilẹyin nipasẹ awọn ọja NXP fun lilo ninu awọn ohun elo alabara. NXP ko gba gbese fun eyikeyi ailagbara. Onibara yẹ ki o ṣayẹwo awọn imudojuiwọn aabo nigbagbogbo lati NXP ati tẹle ni deede. Onibara yoo yan awọn ọja pẹlu awọn ẹya aabo ti o dara julọ pade awọn ofin, awọn ilana, ati awọn iṣedede ti ohun elo ti a pinnu ati ṣe awọn ipinnu apẹrẹ ti o ga julọ nipa awọn ọja rẹ ati pe o jẹ iduro nikan fun ibamu pẹlu gbogbo ofin, ilana, ati awọn ibeere ti o ni ibatan aabo nipa awọn ọja rẹ, laibikita awọn ọja rẹ. eyikeyi alaye tabi atilẹyin ti o le wa nipasẹ NXP.
NXP ni Ẹgbẹ Idahun Iṣẹlẹ Aabo Aabo (PSIRT) (ti o le de ọdọ ni PSIRT@nxp.com) ti o ṣakoso iwadii, ijabọ, ati itusilẹ ojutu si awọn ailagbara aabo ti awọn ọja NXP.
NXP BV – NXP BV kii ṣe ile-iṣẹ ti n ṣiṣẹ ati pe ko kaakiri tabi ta awọn ọja.

8.3 awọn iwe-aṣẹ
Rira ti NXP ICs pẹlu imọ-ẹrọ NFC - Rira ti NXP Semiconductors IC ti o ni ibamu pẹlu ọkan ninu awọn iṣedede Ibaraẹnisọrọ aaye Nitosi (NFC) ISO/IEC 18092 ati ISO/IEC 21481 ko ṣe afihan iwe-aṣẹ ti o tumọ labẹ eyikeyi itọsi ẹtọ ti o ṣẹ nipasẹ imuse ti eyikeyi ninu awon awọn ajohunše. Rira ti NXP Semiconductors IC ko pẹlu iwe-aṣẹ si eyikeyi itọsi NXP (tabi ẹtọ IP miiran) ti o bo awọn akojọpọ ti awọn ọja wọnyẹn pẹlu awọn ọja miiran, boya hardware tabi sọfitiwia.

8.4 Awọn aami-iṣowo
Akiyesi: Gbogbo awọn ami iyasọtọ ti a tọka si, awọn orukọ ọja, awọn orukọ iṣẹ, ati aami-iṣowo jẹ ohun-ini ti awọn oniwun wọn.
NXP — ami ọrọ ati aami jẹ aami-išowo ti NXP BV
EdgeVerse - jẹ aami-iṣowo ti NXP BV
i.MX — jẹ aami-iṣowo ti NXP BV
I2C-bus — logo jẹ aami-iṣowo ti NXP BV
Oracle ati Java — jẹ aami-išowo ti a forukọsilẹ ti Oracle ati/tabi awọn alafaramo rẹ.

Jọwọ ṣe akiyesi pe awọn akiyesi pataki nipa iwe-ipamọ yii ati ọja (awọn) ti a ṣalaye ninu rẹ, ti wa ninu apakan 'Alaye ofin'.

NXP - logo© 2023 NXP BV
Fun alaye diẹ sii, jọwọ ṣabẹwo: http://www.nxp.com
Gbogbo awọn ẹtọ wa ni ipamọ.
Ọjọ idasilẹ: Oṣu Kẹsan 18, 2023
Idanimọ iwe: AN13971

AN13971
Akọsilẹ ohun elo
Gbogbo alaye ti a pese ninu iwe yii jẹ koko-ọrọ si awọn aibikita ofin.
Ìṣí. 1.0 - 18 Kẹsán 2023
© 2023 NXP BV Gbogbo ẹtọ wa ni ipamọ.

Awọn iwe aṣẹ / Awọn orisun

NXP PN7220 Ibamu NFC Adarí [pdf] Itọsọna olumulo
PN7220 Olutọju NFC ti o ni ibamu, PN7220, Adari NFC ti o ni ibamu, Adari NFC, Adari

Awọn itọkasi

Fi ọrọìwòye

Adirẹsi imeeli rẹ kii yoo ṣe atẹjade. Awọn aaye ti a beere ti wa ni samisi *