1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-03-13 14:46:06 +00:00

refactor(core): refactor rfal DSI to avoid conflicts with STM display serial interface [no changelog]

This commit is contained in:
kopecdav 2025-01-29 12:15:29 +01:00
parent 28b4f018a7
commit c0a552212d
5 changed files with 81 additions and 78 deletions

View File

@ -382,15 +382,16 @@ typedef union { /* PRQA S 0750 # MISRA 19.2 - Both members of the union will
/*! ISO-DEP device Info */
typedef struct {
uint8_t FWI; /*!< Frame Waiting Integer */
uint32_t FWT; /*!< Frame Waiting Time (1/fc) */
uint32_t dFWT; /*!< Delta Frame Waiting Time (1/fc) */
uint32_t SFGI; /*!< Start-up Frame Guard time Integer */
uint32_t SFGT; /*!< Start-up Frame Guard Time (ms) */
uint8_t FSxI; /*!< Frame Size Device/Card Integer (FSDI or FSCI) */
uint16_t FSx; /*!< Frame Size Device/Card (FSD or FSC) */
uint32_t MBL; /*!< Maximum Buffer Length (optional for NFC-B) */
rfalBitRate DSI; /*!< Bit Rate coding from Listener (PICC) to Poller (PCD) */
uint8_t FWI; /*!< Frame Waiting Integer */
uint32_t FWT; /*!< Frame Waiting Time (1/fc) */
uint32_t dFWT; /*!< Delta Frame Waiting Time (1/fc) */
uint32_t SFGI; /*!< Start-up Frame Guard time Integer */
uint32_t SFGT; /*!< Start-up Frame Guard Time (ms) */
uint8_t FSxI; /*!< Frame Size Device/Card Integer (FSDI or FSCI) */
uint16_t FSx; /*!< Frame Size Device/Card (FSD or FSC) */
uint32_t MBL; /*!< Maximum Buffer Length (optional for NFC-B) */
rfalBitRate
DSI_dep; /*!< Bit Rate coding from Listener (PICC) to Poller (PCD) */
rfalBitRate DRI; /*!< Bit Rate coding from Poller (PCD) to Listener (PICC) */
uint8_t DID; /*!< Device ID */
uint8_t NAD; /*!< Node ADdress */
@ -803,7 +804,7 @@ ReturnCode rfalIsoDepRATS(rfalIsoDepFSxI FSDI, uint8_t DID, rfalIsoDepAts *ats,
* \return RFAL_ERR_NONE : No error, PPS Response received
*****************************************************************************
*/
ReturnCode rfalIsoDepPPS(uint8_t DID, rfalBitRate DSI, rfalBitRate DRI,
ReturnCode rfalIsoDepPPS(uint8_t DID, rfalBitRate DSI_dep, rfalBitRate DRI,
rfalIsoDepPpsRes *ppsRes);
/*!
@ -838,7 +839,7 @@ ReturnCode rfalIsoDepPPS(uint8_t DID, rfalBitRate DSI, rfalBitRate DRI,
*****************************************************************************
*/
ReturnCode rfalIsoDepATTRIB(const uint8_t *nfcid0, uint8_t PARAM1,
rfalBitRate DSI, rfalBitRate DRI,
rfalBitRate DSI_dep, rfalBitRate DRI,
rfalIsoDepFSxI FSDI, uint8_t PARAM3, uint8_t DID,
const uint8_t *HLInfo, uint8_t HLInfoLen,
uint32_t fwt, rfalIsoDepAttribRes *attribRes,

View File

@ -406,16 +406,16 @@ typedef union { /* PRQA S 0750 # MISRA 19.2 - Both members of the union will
/*! NFC-DEP device Info */
typedef struct {
uint8_t GBLen; /*!< General Bytes length */
uint8_t WT; /*!< WT to be used (ignored in Listen Mode) */
uint32_t FWT; /*!< FWT to be used (1/fc)(ignored Listen Mode) */
uint32_t dFWT; /*!< Delta FWT to be used (1/fc) */
uint8_t LR; /*!< Length Reduction coding the max payload */
uint16_t FS; /*!< Frame Size */
rfalBitRate DSI; /*!< Bit Rate coding from Initiator to Target */
rfalBitRate DRI; /*!< Bit Rate coding from Target to Initiator */
uint8_t DID; /*!< Device ID (RFAL_NFCDEP_DID_NO if no DID) */
uint8_t NAD; /*!< Node ADdress (RFAL_NFCDEP_NAD_NO if no NAD)*/
uint8_t GBLen; /*!< General Bytes length */
uint8_t WT; /*!< WT to be used (ignored in Listen Mode) */
uint32_t FWT; /*!< FWT to be used (1/fc)(ignored Listen Mode) */
uint32_t dFWT; /*!< Delta FWT to be used (1/fc) */
uint8_t LR; /*!< Length Reduction coding the max payload */
uint16_t FS; /*!< Frame Size */
rfalBitRate DSI_dep; /*!< Bit Rate coding from Initiator to Target */
rfalBitRate DRI; /*!< Bit Rate coding from Target to Initiator */
uint8_t DID; /*!< Device ID (RFAL_NFCDEP_DID_NO if no DID) */
uint8_t NAD; /*!< Node ADdress (RFAL_NFCDEP_NAD_NO if no NAD)*/
} rfalNfcDepInfo;
/*! NFC-DEP Device structure */

View File

@ -273,7 +273,7 @@
#define RFAL_ISODEP_CMD_ATTRIB \
(0x1DU) /*!< ATTRIB command Digital 1.1 14.6.1 */
#define RFAL_ISODEP_ATTRIB_PARAM2_DSI_SHIFT \
(6U) /*!< ATTRIB PARAM2 DSI shift Digital 1.1 14.6.1 */
(6U) /*!< ATTRIB PARAM2 DSI_dep shift Digital 1.1 14.6.1 */
#define RFAL_ISODEP_ATTRIB_PARAM2_DRI_SHIFT \
(4U) /*!< ATTRIB PARAM2 DRI shift Digital 1.1 14.6.1 */
#define RFAL_ISODEP_ATTRIB_PARAM2_DXI_MASK \
@ -340,11 +340,11 @@
#define RFAL_ISODEP_PPS1_DRI_MASK \
(0x03U) /*!< PPS1 byte DRI mask bits */
#define RFAL_ISODEP_PPS1_DSI_MASK \
(0x0CU) /*!< PPS1 byte DSI mask bits */
(0x0CU) /*!< PPS1 byte DSI_dep mask bits */
#define RFAL_ISODEP_PPS1_DSI_SHIFT \
(2U) /*!< PPS1 byte DSI shift */
(2U) /*!< PPS1 byte DSI_dep shift */
#define RFAL_ISODEP_PPS1_DxI_MASK \
(0x03U) /*!< PPS1 byte DSI/DRS mask bits */
(0x03U) /*!< PPS1 byte DSI_dep/DRS mask bits */
/*! Delta Time for polling during Activation (ATS) : 20ms Digital 1.0 11.7.1.1 &
* A.7 */
@ -661,14 +661,14 @@ static uint32_t rfalIsoDepSFGI2SFGT(uint8_t sfgi);
static ReturnCode rfalIsoDepStartRATS(rfalIsoDepFSxI FSDI, uint8_t DID,
rfalIsoDepAts *ats, uint8_t *atsLen);
static ReturnCode rfalIsoDepGetRATSStatus(void);
static ReturnCode rfalIsoDepStartPPS(uint8_t DID, rfalBitRate DSI,
static ReturnCode rfalIsoDepStartPPS(uint8_t DID, rfalBitRate DSI_dep,
rfalBitRate DRI, rfalIsoDepPpsRes *ppsRes);
static ReturnCode rfalIsoDepGetPPSSTatus(void);
#endif /* RFAL_FEATURE_NFCA */
#if RFAL_FEATURE_NFCB
static ReturnCode rfalIsoDepStartATTRIB(const uint8_t *nfcid0, uint8_t PARAM1,
rfalBitRate DSI, rfalBitRate DRI,
rfalBitRate DSI_dep, rfalBitRate DRI,
rfalIsoDepFSxI FSDI, uint8_t PARAM3,
uint8_t DID, const uint8_t *HLInfo,
uint8_t HLInfoLen, uint32_t fwt,
@ -1522,7 +1522,7 @@ ReturnCode rfalIsoDepListenStartActivation(
actParam.isoDepDev->info.FSx = gIsoDep.fsx;
actParam.isoDepDev->info.FWT = gIsoDep.fwt;
actParam.isoDepDev->info.dFWT = 0;
actParam.isoDepDev->info.DSI = gIsoDep.txBR;
actParam.isoDepDev->info.DSI_dep = gIsoDep.txBR;
actParam.isoDepDev->info.DRI = gIsoDep.rxBR;
}
@ -1665,11 +1665,11 @@ ReturnCode rfalIsoDepListenGetActivationStatus(void) {
if (dri != RFAL_BR_KEEP) {
rfalSetBitRate(dsi, dri);
gIsoDep.txBR = dsi; /* DSI codes the divisor from PICC to PCD */
gIsoDep.txBR = dsi; /* DSI_dep codes the divisor from PICC to PCD */
gIsoDep.rxBR = dri; /* DRI codes the divisor from PCD to PICC */
if (gIsoDep.actvParam.isoDepDev != NULL) {
gIsoDep.actvParam.isoDepDev->info.DSI = dsi;
gIsoDep.actvParam.isoDepDev->info.DSI_dep = dsi;
gIsoDep.actvParam.isoDepDev->info.DRI = dri;
}
}
@ -2226,12 +2226,12 @@ ReturnCode rfalIsoDepRATS(rfalIsoDepFSxI FSDI, uint8_t DID, rfalIsoDepAts *ats,
}
/*******************************************************************************/
static ReturnCode rfalIsoDepStartPPS(uint8_t DID, rfalBitRate DSI,
static ReturnCode rfalIsoDepStartPPS(uint8_t DID, rfalBitRate DSI_dep,
rfalBitRate DRI,
rfalIsoDepPpsRes *ppsRes) {
rfalTransceiveContext ctx;
if ((ppsRes == NULL) || (DSI > RFAL_BR_848) || (DRI > RFAL_BR_848) ||
if ((ppsRes == NULL) || (DSI_dep > RFAL_BR_848) || (DRI > RFAL_BR_848) ||
((DID > RFAL_ISODEP_DID_MAX) && (DID != RFAL_ISODEP_NO_DID))) {
return RFAL_ERR_PARAM;
}
@ -2245,7 +2245,7 @@ static ReturnCode rfalIsoDepStartPPS(uint8_t DID, rfalBitRate DSI,
gIsoDep.actv.ppsReq.PPS0 = RFAL_ISODEP_PPS_PPS0_PPS1_PRESENT;
gIsoDep.actv.ppsReq.PPS1 =
(RFAL_ISODEP_PPS_PPS1 |
((((uint8_t)DSI << RFAL_ISODEP_PPS_PPS1_DSI_SHIFT) | (uint8_t)DRI) &
((((uint8_t)DSI_dep << RFAL_ISODEP_PPS_PPS1_DSI_SHIFT) | (uint8_t)DRI) &
RFAL_ISODEP_PPS_PPS1_DXI_MASK));
rfalCreateByteFlagsTxRxContext(
@ -2273,11 +2273,11 @@ static ReturnCode rfalIsoDepGetPPSSTatus(void) {
}
/*******************************************************************************/
ReturnCode rfalIsoDepPPS(uint8_t DID, rfalBitRate DSI, rfalBitRate DRI,
ReturnCode rfalIsoDepPPS(uint8_t DID, rfalBitRate DSI_dep, rfalBitRate DRI,
rfalIsoDepPpsRes *ppsRes) {
ReturnCode ret;
RFAL_EXIT_ON_ERR(ret, rfalIsoDepStartPPS(DID, DSI, DRI, ppsRes));
RFAL_EXIT_ON_ERR(ret, rfalIsoDepStartPPS(DID, DSI_dep, DRI, ppsRes));
rfalRunBlocking(ret, rfalIsoDepGetPPSSTatus());
return ret;
@ -2288,7 +2288,7 @@ ReturnCode rfalIsoDepPPS(uint8_t DID, rfalBitRate DSI, rfalBitRate DRI,
#if RFAL_FEATURE_NFCB
static ReturnCode rfalIsoDepStartATTRIB(const uint8_t *nfcid0, uint8_t PARAM1,
rfalBitRate DSI, rfalBitRate DRI,
rfalBitRate DSI_dep, rfalBitRate DRI,
rfalIsoDepFSxI FSDI, uint8_t PARAM3,
uint8_t DID, const uint8_t *HLInfo,
uint8_t HLInfoLen, uint32_t fwt,
@ -2296,8 +2296,8 @@ static ReturnCode rfalIsoDepStartATTRIB(const uint8_t *nfcid0, uint8_t PARAM1,
uint8_t *attribResLen) {
rfalTransceiveContext ctx;
if ((attribRes == NULL) || (attribResLen == NULL) || (DSI > RFAL_BR_848) ||
(DRI > RFAL_BR_848) ||
if ((attribRes == NULL) || (attribResLen == NULL) ||
(DSI_dep > RFAL_BR_848) || (DRI > RFAL_BR_848) ||
((DID > RFAL_ISODEP_DID_MAX) && (DID != RFAL_ISODEP_NO_DID))) {
return RFAL_ERR_NONE;
}
@ -2311,7 +2311,7 @@ static ReturnCode rfalIsoDepStartATTRIB(const uint8_t *nfcid0, uint8_t PARAM1,
gIsoDep.actv.attribReq.cmd = RFAL_ISODEP_CMD_ATTRIB;
gIsoDep.actv.attribReq.Param.PARAM1 = PARAM1;
gIsoDep.actv.attribReq.Param.PARAM2 =
(((((uint8_t)DSI << RFAL_ISODEP_ATTRIB_PARAM2_DSI_SHIFT) |
(((((uint8_t)DSI_dep << RFAL_ISODEP_ATTRIB_PARAM2_DSI_SHIFT) |
((uint8_t)DRI << RFAL_ISODEP_ATTRIB_PARAM2_DRI_SHIFT)) &
RFAL_ISODEP_ATTRIB_PARAM2_DXI_MASK) |
((uint8_t)FSDI & RFAL_ISODEP_ATTRIB_PARAM2_FSDI_MASK));
@ -2362,16 +2362,16 @@ static ReturnCode rfalIsoDepGetATTRIBStatus(void) {
/*******************************************************************************/
ReturnCode rfalIsoDepATTRIB(const uint8_t *nfcid0, uint8_t PARAM1,
rfalBitRate DSI, rfalBitRate DRI,
rfalBitRate DSI_dep, rfalBitRate DRI,
rfalIsoDepFSxI FSDI, uint8_t PARAM3, uint8_t DID,
const uint8_t *HLInfo, uint8_t HLInfoLen,
uint32_t fwt, rfalIsoDepAttribRes *attribRes,
uint8_t *attribResLen) {
ReturnCode ret;
RFAL_EXIT_ON_ERR(ret, rfalIsoDepStartATTRIB(nfcid0, PARAM1, DSI, DRI, FSDI,
PARAM3, DID, HLInfo, HLInfoLen,
fwt, attribRes, attribResLen));
RFAL_EXIT_ON_ERR(ret, rfalIsoDepStartATTRIB(
nfcid0, PARAM1, DSI_dep, DRI, FSDI, PARAM3, DID,
HLInfo, HLInfoLen, fwt, attribRes, attribResLen));
rfalRunBlocking(ret, rfalIsoDepGetATTRIBStatus());
return ret;
@ -2414,7 +2414,7 @@ ReturnCode rfalIsoDepPollAStartActivation(rfalIsoDepFSxI FSDI, uint8_t DID,
rfalIsoDepStartRATS(FSDI, DID, &rfalIsoDepDev->activation.A.Listener.ATS,
&rfalIsoDepDev->activation.A.Listener.ATSLen));
rfalIsoDepDev->info.DSI = maxBR;
rfalIsoDepDev->info.DSI_dep = maxBR;
gIsoDep.actvDev = rfalIsoDepDev;
gIsoDep.cntRRetrys = gIsoDep.maxRetriesRATS;
gIsoDep.state = ISODEP_ST_PCD_ACT_RATS;
@ -2476,8 +2476,8 @@ ReturnCode rfalIsoDepPollAGetActivationStatus(void) {
}
} else /* ATS received */
{
maxBR =
gIsoDep.actvDev->info.DSI; /* Retrieve requested max bitrate */
maxBR = gIsoDep.actvDev->info
.DSI_dep; /* Retrieve requested max bitrate */
/*******************************************************************************/
/* Process ATS Response */
@ -2485,7 +2485,7 @@ ReturnCode rfalIsoDepPollAGetActivationStatus(void) {
RFAL_ISODEP_FWI_DEFAULT; /* Default value EMVCo 2.6 5.7.2.6 */
gIsoDep.actvDev->info.SFGI = 0U;
gIsoDep.actvDev->info.MBL = 0U;
gIsoDep.actvDev->info.DSI = RFAL_BR_106;
gIsoDep.actvDev->info.DSI_dep = RFAL_BR_106;
gIsoDep.actvDev->info.DRI = RFAL_BR_106;
gIsoDep.actvDev->info.FSxI =
(uint8_t)RFAL_ISODEP_FSXI_32; /* FSC default value is 32 bytes
@ -2511,7 +2511,7 @@ ReturnCode rfalIsoDepPollAGetActivationStatus(void) {
rfalIsoDepCalcBitRate(maxBR,
((uint8_t *)&gIsoDep.actvDev->activation.A
.Listener.ATS)[msgIt++],
&gIsoDep.actvDev->info.DSI,
&gIsoDep.actvDev->info.DSI_dep,
&gIsoDep.actvDev->info.DRI);
}
@ -2577,13 +2577,13 @@ ReturnCode rfalIsoDepPollAGetActivationStatus(void) {
/*******************************************************************************/
/* If higher bit rates are supported by both devices, send PPS */
if ((gIsoDep.actvDev->info.DSI != RFAL_BR_106) ||
if ((gIsoDep.actvDev->info.DSI_dep != RFAL_BR_106) ||
(gIsoDep.actvDev->info.DRI != RFAL_BR_106)) {
/* Send PPS */ /* PRQA S 0310 1 # MISRA 11.3 - Intentional safe
cast to avoiding buffer duplication */
RFAL_EXIT_ON_ERR(
ret, rfalIsoDepStartPPS(gIsoDep.actvDev->info.DID,
gIsoDep.actvDev->info.DSI,
gIsoDep.actvDev->info.DSI_dep,
gIsoDep.actvDev->info.DRI,
(rfalIsoDepPpsRes *)&gIsoDep.ctrlBuf));
@ -2603,12 +2603,13 @@ ReturnCode rfalIsoDepPollAGetActivationStatus(void) {
if (ret != RFAL_ERR_BUSY) {
/* Check whether PPS has been acknowledge */
if (ret == RFAL_ERR_NONE) {
/* DSI code the divisor from PICC to PCD */
/* DSI_dep code the divisor from PICC to PCD */
/* DRI code the divisor from PCD to PICC */
rfalSetBitRate(gIsoDep.actvDev->info.DRI, gIsoDep.actvDev->info.DSI);
rfalSetBitRate(gIsoDep.actvDev->info.DRI,
gIsoDep.actvDev->info.DSI_dep);
} else {
/* If PPS has faled keep activation bit rate */
gIsoDep.actvDev->info.DSI = RFAL_BR_106;
gIsoDep.actvDev->info.DSI_dep = RFAL_BR_106;
gIsoDep.actvDev->info.DRI = RFAL_BR_106;
/* Ignore PPS response fail, proceed to data exchange */
@ -2723,7 +2724,7 @@ ReturnCode rfalIsoDepPollBStartActivation(rfalIsoDepFSxI FSDI, uint8_t DID,
/* Calculate max Bit Rate */
rfalIsoDepCalcBitRate(maxBR, nfcbDev->sensbRes.protInfo.BRC,
&rfalIsoDepDev->info.DSI, &rfalIsoDepDev->info.DRI);
&rfalIsoDepDev->info.DSI_dep, &rfalIsoDepDev->info.DRI);
/***************************************************************************/
/* Send ATTRIB Command */
@ -2735,7 +2736,7 @@ ReturnCode rfalIsoDepPollBStartActivation(rfalIsoDepFSxI FSDI, uint8_t DID,
RFAL_NFCB_SENSB_RES_ADC_ADV_FEATURE_MASK) != 0U)
? PARAM1
: RFAL_ISODEP_ATTRIB_REQ_PARAM1_DEFAULT),
rfalIsoDepDev->info.DSI, rfalIsoDepDev->info.DRI, FSDI,
rfalIsoDepDev->info.DSI_dep, rfalIsoDepDev->info.DRI, FSDI,
(gIsoDep.compMode == RFAL_COMPLIANCE_MODE_EMV)
? RFAL_NFCB_SENSB_RES_PROTO_ISO_MASK
: (nfcbDev->sensbRes.protInfo.FsciProType &
@ -2781,9 +2782,9 @@ ReturnCode rfalIsoDepPollBGetActivationStatus(void) {
(gIsoDep.actvDev->info.FSx * ((uint32_t)1U << (mbli - 1U)));
}
/* DSI code the divisor from PICC to PCD */
/* DSI_dep code the divisor from PICC to PCD */
/* DRI code the divisor from PCD to PICC */
rfalSetBitRate(gIsoDep.actvDev->info.DRI, gIsoDep.actvDev->info.DSI);
rfalSetBitRate(gIsoDep.actvDev->info.DRI, gIsoDep.actvDev->info.DSI_dep);
/* REMARK: SoF EoF TR0 and TR1 are not passed on to RF layer */
@ -2791,7 +2792,7 @@ ReturnCode rfalIsoDepPollBGetActivationStatus(void) {
rfalSetGT(rfalConvMsTo1fc(gIsoDep.actvDev->info.SFGT));
rfalFieldOnAndStartGT();
} else {
gIsoDep.actvDev->info.DSI = RFAL_BR_106;
gIsoDep.actvDev->info.DSI_dep = RFAL_BR_106;
gIsoDep.actvDev->info.DRI = RFAL_BR_106;
}
@ -2942,7 +2943,7 @@ ReturnCode rfalIsoDepPollHandleSParameters(rfalIsoDepDevice *rfalIsoDepDev,
RFAL_EXIT_ON_ERR(ret, rfalSetBitRate(txBR, rxBR));
rfalIsoDepDev->info.DRI = txBR;
rfalIsoDepDev->info.DSI = rxBR;
rfalIsoDepDev->info.DSI_dep = rxBR;
return RFAL_ERR_NONE;
}

View File

@ -2041,7 +2041,7 @@ static ReturnCode nfcipTargetHandleActivation(rfalNfcDepDevice *nfcDepDev,
/* Update Bitrate info */
/* PRQA S 4342 2 # MISRA 10.5 - Layout of enum rfalBitRate and definition
* of rfalNfcDepBRS2DSI guarantee no invalid enum values to be created */
nfcDepDev->info.DSI = (rfalBitRate)rfalNfcDepBRS2DSI(
nfcDepDev->info.DSI_dep = (rfalBitRate)rfalNfcDepBRS2DSI(
*outBRS); /* DSI codes the bit rate from Initiator to Target */
nfcDepDev->info.DRI = (rfalBitRate)rfalNfcDepBRS2DRI(
*outBRS); /* DRI codes the bit rate from Target to Initiator */
@ -2056,7 +2056,7 @@ static ReturnCode nfcipTargetHandleActivation(rfalNfcDepDevice *nfcDepDev,
rfalNfcDepLR2PP(gNfcip.cfg.lr);
}
rfalSetBitRate(RFAL_BR_KEEP, gNfcip.nfcDepDev->info.DSI);
rfalSetBitRate(RFAL_BR_KEEP, gNfcip.nfcDepDev->info.DSI_dep);
RFAL_EXIT_ON_ERR(
ret, nfcipTx(NFCIP_CMD_PSL_RES, txBuf, NULL, 0, 0, NFCIP_NO_FWT));
@ -2376,7 +2376,7 @@ ReturnCode rfalNfcDepInitiatorHandleActivation(rfalNfcDepAtrParam *param,
nfcDepDev->info.FWT = rfalNfcDepCalculateRWT(nfcDepDev->info.WT);
nfcDepDev->info.dFWT = RFAL_NFCDEP_WT_DELTA;
rfalGetBitRate(&nfcDepDev->info.DSI, &nfcDepDev->info.DRI);
rfalGetBitRate(&nfcDepDev->info.DSI_dep, &nfcDepDev->info.DRI);
/*******************************************************************************/
/* Check if a PSL needs to be sent */
@ -2384,7 +2384,7 @@ ReturnCode rfalNfcDepInitiatorHandleActivation(rfalNfcDepAtrParam *param,
sendPSL = false;
PSL_BRS = rfalNfcDepDx2BRS(
nfcDepDev->info
.DSI); /* Set current bit rate divisor on both directions */
.DSI_dep); /* Set current bit rate divisor on both directions */
PSL_FSL = nfcDepDev->info.LR; /* Set current Frame Size */
/* Activity 1.0 9.4.4.15 & 9.4.6.3 NFC-DEP Activation PSL
@ -2399,17 +2399,17 @@ ReturnCode rfalNfcDepInitiatorHandleActivation(rfalNfcDepAtrParam *param,
/*******************************************************************************/
/* Check Frame Size */
/*******************************************************************************/
if( gNfcip.cfg.lr < nfcDepDev->info.LR ) /* If our Length reduction is smaller */
if( gNfcip.cfg.lr < nfcDepDev->info.LR ) /* If our Length reduction is smaller */
{
sendPSL = true;
nfcDepDev->info.LR = RFAL_MIN( nfcDepDev->info.LR, gNfcip.cfg.lr );
gNfcip.cfg.lr = nfcDepDev->info.LR; /* Update nfcip LR to be used */
gNfcip.fsc = rfalNfcDepLR2FS( gNfcip.cfg.lr ); /* Update nfcip FSC to be used */
gNfcip.fsc = rfalNfcDepLR2FS( gNfcip.cfg.lr ); /* Update nfcip FSC to be used */
PSL_FSL = gNfcip.cfg.lr; /* Set LR to be sent */
nfcipLogI( " NFCIP(I) Frame Size differ, PSL new fsc: %d \r\n", gNfcip.fsc );
}
#endif
@ -2417,7 +2417,7 @@ ReturnCode rfalNfcDepInitiatorHandleActivation(rfalNfcDepAtrParam *param,
/*******************************************************************************/
/* Check Baud rates */
/*******************************************************************************/
if ((nfcDepDev->info.DSI != desiredBR) &&
if ((nfcDepDev->info.DSI_dep != desiredBR) &&
(desiredBR != RFAL_BR_KEEP)) /* if desired BR is different */
{
if (nfcipDxIsSupported(
@ -2443,10 +2443,10 @@ ReturnCode rfalNfcDepInitiatorHandleActivation(rfalNfcDepAtrParam *param,
RFAL_EXIT_ON_ERR(ret, rfalNfcDepPSL(PSL_BRS, PSL_FSL));
/* Check if bit rate has been changed */
if (nfcDepDev->info.DSI != desiredBR) {
if (nfcDepDev->info.DSI_dep != desiredBR) {
/* Check if device was in Passive NFC-A and went to higher bit rates, use
* NFC-F */
if ((nfcDepDev->info.DSI == RFAL_BR_106) &&
if ((nfcDepDev->info.DSI_dep == RFAL_BR_106) &&
(gNfcip.cfg.commMode == RFAL_NFCDEP_COMM_PASSIVE)) {
#if RFAL_FEATURE_NFCF
/* If Passive initialize NFC-F module */
@ -2458,10 +2458,10 @@ ReturnCode rfalNfcDepInitiatorHandleActivation(rfalNfcDepAtrParam *param,
nfcDepDev->info.DRI =
desiredBR; /* DSI Bit Rate coding from Initiator to Target */
nfcDepDev->info.DSI =
nfcDepDev->info.DSI_dep =
desiredBR; /* DRI Bit Rate coding from Target to Initiator */
rfalSetBitRate(nfcDepDev->info.DSI, nfcDepDev->info.DRI);
rfalSetBitRate(nfcDepDev->info.DSI_dep, nfcDepDev->info.DRI);
}
return RFAL_ERR_NONE; /* PSL has been sent */
@ -2560,7 +2560,8 @@ ReturnCode rfalNfcDepListenStartActivation(const rfalNfcDepTargetParam *param,
rxParam.nfcDepDev->info.FWT = NFCIP_NO_FWT;
rxParam.nfcDepDev->info.dFWT = NFCIP_NO_FWT;
rfalGetBitRate(&rxParam.nfcDepDev->info.DSI, &rxParam.nfcDepDev->info.DRI);
rfalGetBitRate(&rxParam.nfcDepDev->info.DSI_dep,
&rxParam.nfcDepDev->info.DRI);
/* Store Device Info location, updated upon a PSL */
gNfcip.nfcDepDev = rxParam.nfcDepDev;
@ -2632,14 +2633,14 @@ ReturnCode rfalNfcDepListenGetActivationStatus(void) {
if (gNfcip.cfg.commMode == RFAL_NFCDEP_COMM_ACTIVE) {
RFAL_EXIT_ON_ERR(err, rfalSetMode(RFAL_MODE_LISTEN_ACTIVE_P2P,
gNfcip.nfcDepDev->info.DRI,
gNfcip.nfcDepDev->info.DSI));
gNfcip.nfcDepDev->info.DSI_dep));
} else {
RFAL_EXIT_ON_ERR(
err, rfalSetMode(((RFAL_BR_106 == gNfcip.nfcDepDev->info.DRI)
? RFAL_MODE_LISTEN_NFCA
: RFAL_MODE_LISTEN_NFCF),
gNfcip.nfcDepDev->info.DRI,
gNfcip.nfcDepDev->info.DSI));
gNfcip.nfcDepDev->info.DSI_dep));
}
}
break;

View File

@ -2939,7 +2939,7 @@ static void rfalTransceiveRx(void) {
gRFAL.TxRx.status = RFAL_ERR_SYSTEM;
}
#if 0 /* Debug purposes */
#if 0 /* Debug purposes */
rfalLogD( "RFAL: curSt: %d Error: %d \r\n", gRFAL.TxRx.state, gRFAL.TxRx.status );
#endif