Skip to content

Commit d0e49d6

Browse files
tunguyen4585decsny
authored andcommitted
s32: s32z: patch rtd 2.0.1 to work with zephyr
Remove 'u' suffix from macros so that they can be used with LISTIFY in shim drivers. Remove 'static inline' keywords from 'Netc_Eth_Ip_MSIX_Rx' function so that it can be used as an extern function outside of the file declaration. Clear the EOC flag before Adc_Sar_CheckAndCallEocNotification() is called to avoid the race condition that prevents the next end of conversion callback to be executed, when a conversion is started inside the previous end of conversion completed callback. OsIf_GetCounter shall be used to obtain current counter value before passing it to OsIf_GetElapsed. Fix build warnings Signed-off-by: Tu Nguyen Van <[email protected]>
1 parent 3c1e938 commit d0e49d6

File tree

6 files changed

+20
-15
lines changed

6 files changed

+20
-15
lines changed

s32/drivers/s32ze/Adc/src/Adc_Sar_Ip.c

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2057,6 +2057,12 @@ static inline void Adc_CheckAndCallAllChannelNotification(const uint32 Instance)
20572057
EocFlag = (*IMRAddr);
20582058
EocFlag &= (*ISRAddr);
20592059
EocFlag &= (ADC_ISR_EOC_MASK | ADC_ISR_JEOC_MASK);
2060+
2061+
/* Clear EOC Flag */
2062+
if (EocFlag != 0)
2063+
{
2064+
*ISRAddr = EocFlag;
2065+
}
20602066
#endif /* (STD_ON == ADC_SAR_IP_EOC_ENABLED) */
20612067

20622068
for (VectAdr = 0U; VectAdr < Adc_Sar_Ip_au8AdcGroupCount[Instance]; VectAdr++)
@@ -2077,13 +2083,6 @@ static inline void Adc_CheckAndCallAllChannelNotification(const uint32 Instance)
20772083
}
20782084
}
20792085

2080-
/* CPR_RTD_00664 */
2081-
#if (STD_ON == ADC_SAR_IP_EOC_ENABLED)
2082-
if (TRUE == CeocfrFlag)
2083-
{
2084-
*ISRAddr = EocFlag;
2085-
}
2086-
#endif /* (STD_ON == ADC_SAR_IP_EOC_ENABLED) */
20872086
#if (STD_ON == ADC_SAR_IP_WDG_ENABLED)
20882087
if (WtisrMask != 0U)
20892088
{

s32/drivers/s32ze/Can_CANEXCEL/src/CanEXCEL_Ip.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -452,6 +452,7 @@ static Canexcel_Ip_StatusType Canexcel_ResetController(uint8 instance)
452452
uint32 timeElapsed = 0U;
453453
uint32 uS2Ticks = OsIf_MicrosToTicks(CANEXCEL_IP_TIMEOUT_DURATION, CANEXCEL_IP_SERVICE_TIMEOUT_TYPE);
454454
Canexcel_Ip_StatusType returnResult = CANEXCEL_STATUS_SUCCESS;
455+
timeStart = OsIf_GetCounter(CANEXCEL_IP_SERVICE_TIMEOUT_TYPE);
455456

456457
/* Wait Hardware to became available after clock start */
457458
while ((CANEXCEL.EXL_SIC[instance]->SYSS & CANXL_SIC_SYSS_FRZACKF_MASK) == 0U)
@@ -817,22 +818,21 @@ Canexcel_Ip_StatusType Canexcel_Ip_TxDescriptor(uint8 instance, uint8 descNo, ui
817818
uint32 timeElapsed = 0U;
818819
Canexcel_Ip_StateType * state = Canexcel_Ip_apxState[instance];
819820
Canexcel_Ip_StatusType returnResult = CANEXCEL_STATUS_SUCCESS;
820-
821+
uint32 uS2Ticks = OsIf_MicrosToTicks(CANEXCEL_IP_TIMEOUT_DURATION, CANEXCEL_IP_SERVICE_TIMEOUT_TYPE);
821822
/* Ensure that the buffer given was already configured by Canexcel_Ip_ConfigXlTx/Canexcel_Ip_ConfigFdTx before start the transmission */
822823
if (0U == ((((Canexcel_TxMsgHeaderType *)txPtrList)->word2) & CANXL_TX_HEADER_MODE_MASK))
823824
{
824825
returnResult = CANEXCEL_STATUS_ERROR;
825826
}
826827
else
827828
{
828-
uint32 uS2Ticks = OsIf_MicrosToTicks(CANEXCEL_IP_TIMEOUT_DURATION, CANEXCEL_IP_SERVICE_TIMEOUT_TYPE);
829-
timeStart = OsIf_GetCounter(CANEXCEL_IP_SERVICE_TIMEOUT_TYPE);
830829
/* Set system lock Status */
831830
#if (CANEXCEL_IP_HAS_SYSLOCK01 == STD_ON)
832831
CANEXCEL.EXL_DESC_CTR[instance]->DSCMBCTRLAR[descNo].DCSYSLOCK = 1U;
833832
#else
834833
(void)CANEXCEL.EXL_DESC_CTR[instance]->DSCMBCTRLAR[descNo].DCSYSLOCK;
835834
#endif
835+
timeStart = OsIf_GetCounter(CANEXCEL_IP_SERVICE_TIMEOUT_TYPE);
836836
while (CANEXCEL_DESCNTSTATUS_LOCKED_HW == CanXL_GetDescControlStatus(CANEXCEL.EXL_DESC_CTR[instance], descNo))
837837
{
838838
timeElapsed += OsIf_GetElapsed(&timeStart, CANEXCEL_IP_SERVICE_TIMEOUT_TYPE);

s32/drivers/s32ze/Can_CANEXCEL/src/CanEXCEL_Ip_HwAccess.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,7 @@ Canexcel_Ip_StatusType CanXL_SoftReset(CANXL_SIC_Type * base)
237237
Canexcel_Ip_StatusType returnResult = CANEXCEL_STATUS_SUCCESS;
238238
uint32 uS2Ticks = OsIf_MicrosToTicks(CANEXCEL_IP_TIMEOUT_DURATION, CANEXCEL_IP_SERVICE_TIMEOUT_TYPE);
239239
base->SYSMC = CANXL_SIC_SYSMC_SOFRST_MASK;
240+
timeStart = OsIf_GetCounter(CANEXCEL_IP_SERVICE_TIMEOUT_TYPE);
240241
while ((base->SYSMC & CANXL_SIC_SYSMC_SOFRST_MASK) == CANXL_SIC_SYSMC_SOFRST_MASK)
241242
{
242243
timeElapsed += OsIf_GetElapsed(&timeStart, CANEXCEL_IP_SERVICE_TIMEOUT_TYPE);
@@ -275,7 +276,7 @@ void CanXL_ClearRAM(const CANEXCEL_StructType * CANXL, uint8 instance)
275276
}
276277
}
277278
/* Clear the filter bank check the size in device reg as CANXL_IP_FILTER_BANK_SIZE */
278-
volatile uint32 * ptr = &CANXL->EXL_FILTER[instance]->AFCFG0;
279+
volatile uint32 * ptr = (volatile uint32 *)&CANXL->EXL_FILTER[instance]->AFCFG0;
279280
for (idx = 0u; idx <= (uint16)(CANXL_IP_FILTER_BANK_SIZE/4U); idx++)
280281
{
281282
ptr[idx] = 0U;
@@ -358,6 +359,7 @@ Canexcel_Ip_StatusType CanXL_EnterFreezeMode(CANXL_SIC_Type * base)
358359
}
359360
if (CANEXCEL_STATUS_SUCCESS == returnResult)
360361
{
362+
timeElapsed = 0U;
361363
timeStart = OsIf_GetCounter(CANEXCEL_IP_SERVICE_TIMEOUT_TYPE);
362364
while (0U == (base->SYSS & CANXL_SIC_SYSS_FRZACKF_MASK))
363365
{
@@ -376,6 +378,7 @@ Canexcel_Ip_StatusType CanXL_EnterFreezeMode(CANXL_SIC_Type * base)
376378
SchM_Enter_Can_43_CANEXCEL_CAN_EXCLUSIVE_AREA_01();
377379
base->SYSMC |= CANXL_SIC_SYSMC_LPMREQ_MASK;
378380
SchM_Exit_Can_43_CANEXCEL_CAN_EXCLUSIVE_AREA_01();
381+
timeElapsed = 0U;
379382
timeStart = OsIf_GetCounter(CANEXCEL_IP_SERVICE_TIMEOUT_TYPE);
380383
while (0U == (base->SYSS & CANXL_SIC_SYSS_LPMACKF_MASK))
381384
{
@@ -432,6 +435,7 @@ Canexcel_Ip_StatusType CanXL_ExitFreezeMode(CANXL_SIC_Type * base)
432435
SchM_Enter_Can_43_CANEXCEL_CAN_EXCLUSIVE_AREA_02();
433436
base->SYSMC &= ~CANXL_SIC_SYSMC_FRZREQ_MASK;
434437
SchM_Exit_Can_43_CANEXCEL_CAN_EXCLUSIVE_AREA_02();
438+
timeElapsed = 0U;
435439
timeStart = OsIf_GetCounter(CANEXCEL_IP_SERVICE_TIMEOUT_TYPE);
436440
while (0U == (base->SYSS & CANXL_SIC_SYSS_FRZACKF_MASK))
437441
{
@@ -449,6 +453,8 @@ Canexcel_Ip_StatusType CanXL_ExitFreezeMode(CANXL_SIC_Type * base)
449453
SchM_Enter_Can_43_CANEXCEL_CAN_EXCLUSIVE_AREA_02();
450454
base->SYSMC |= CANXL_SIC_SYSMC_LPMREQ_MASK;
451455
SchM_Exit_Can_43_CANEXCEL_CAN_EXCLUSIVE_AREA_02();
456+
timeElapsed = 0U;
457+
timeStart = OsIf_GetCounter(CANEXCEL_IP_SERVICE_TIMEOUT_TYPE);
452458
while (0U == (base->SYSS & CANXL_SIC_SYSS_LPMACKF_MASK))
453459
{
454460
timeElapsed += OsIf_GetElapsed(&timeStart, CANEXCEL_IP_SERVICE_TIMEOUT_TYPE);

s32/drivers/s32ze/EthSwt_NETC/include/Netc_EthSwt_Ip_Types.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ extern "C"{
9393
==================================================================================================*/
9494

9595
#define NETC_ETHSWT_IP_NUMBER_OF_PSEUDO_PORT (1U) /*!< number of pseudoport */
96-
#define NETC_ETHSWT_IP_NUMBER_OF_PORTS (3U) /*!< number of ports */
96+
#define NETC_ETHSWT_IP_NUMBER_OF_PORTS 3 /*!< number of ports */
9797
#define NETC_ETHSWT_IP_NUMBER_OF_MAC_PORTS (2U) /*!< number of mac ports*/
9898
#define NETC_ETHSWT_IP_NUMBER_OF_VID_PER_PORT (255U) /*!< 3 number of vid per port */
9999

s32/drivers/s32ze/Eth_NETC/src/Netc_Eth_Ip_Irq.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ static inline void Netc_Eth_Ip_MSIX_Tx_CheckAllRings(const uint32 TxRingIntStatu
105105
*
106106
* @param CtrlIndex
107107
*/
108-
static inline void Netc_Eth_Ip_MSIX_Rx(uint8 CtrlIndex);
108+
void Netc_Eth_Ip_MSIX_Rx(uint8 CtrlIndex);
109109

110110
/**
111111
* @brief Local function used to process PSI Message Receive event
@@ -224,7 +224,7 @@ static inline void Netc_Eth_Ip_MSIX_Tx(uint8 CtrlIndex)
224224
/***************************************************************************
225225
* implements Netc_Eth_Ip_MSIX_Rx_Activity
226226
***************************************************************************/
227-
static inline void Netc_Eth_Ip_MSIX_Rx(uint8 CtrlIndex)
227+
void Netc_Eth_Ip_MSIX_Rx(uint8 CtrlIndex)
228228
{
229229
uint8 RingIndex;
230230
uint32 interruptStatus = netcSIsBase[CtrlIndex]->SIRXIDR0;

s32/drivers/s32ze/Mem_EXFLS/include/Qspi_Ip_Types.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ extern "C"{
121121
#define QSPI_IP_ERASE_TYPES (4U)
122122

123123
/*! @brief Number of AHB buffers in the device */
124-
#define QSPI_IP_AHB_BUFFERS (4U)
124+
#define QSPI_IP_AHB_BUFFERS 4
125125

126126
/*! Invalid index in virtual LUT, used for unsupported features */
127127
#define QSPI_IP_LUT_INVALID (uint16)0xFFFFU

0 commit comments

Comments
 (0)