183#ifdef HAL_ETH_MODULE_ENABLED 
  197#define ETH_MACCR_MASK          0xFFFB7F7CU 
  198#define ETH_MACECR_MASK         0x3F077FFFU 
  199#define ETH_MACFFR_MASK         0x800007FFU 
  200#define ETH_MACWTR_MASK         0x0000010FU 
  201#define ETH_MACTFCR_MASK        0xFFFF00F2U 
  202#define ETH_MACRFCR_MASK        0x00000003U 
  203#define ETH_MTLTQOMR_MASK       0x00000072U 
  204#define ETH_MTLRQOMR_MASK       0x0000007BU 
  206#define ETH_DMAMR_MASK          0x00007802U 
  207#define ETH_DMASBMR_MASK        0x0000D001U 
  208#define ETH_DMACCR_MASK         0x00013FFFU 
  209#define ETH_DMACTCR_MASK        0x003F1010U 
  210#define ETH_DMACRCR_MASK        0x803F0000U 
  211#define ETH_MACPMTCSR_MASK      (ETH_MACPMTCSR_PD | ETH_MACPMTCSR_WFE | \ 
  212                                 ETH_MACPMTCSR_MPE | ETH_MACPMTCSR_GU) 
 
  215#define ETH_SWRESET_TIMEOUT     500U 
  216#define ETH_MDIO_BUS_TIMEOUT    1000U 
  218#define ETH_DMARXDESC_ERRORS_MASK ((uint32_t)(ETH_DMARXDESC_DBE | ETH_DMARXDESC_RE | \ 
  219                                              ETH_DMARXDESC_OE  | ETH_DMARXDESC_RWT |\ 
  220                                              ETH_DMARXDESC_LC | ETH_DMARXDESC_CE |\ 
  221                                              ETH_DMARXDESC_DE | ETH_DMARXDESC_IPV4HCE)) 
 
  223#define ETH_MAC_US_TICK         1000000U 
  225#define ETH_MACTSCR_MASK        0x0087FF2FU 
  227#define ETH_PTPTSHR_VALUE       0xFFFFFFFFU 
  228#define ETH_PTPTSLR_VALUE       0xBB9ACA00U 
  231#define ETH_MACMIIAR_CR_MASK    0xFFFFFFE3U 
  234#define ETH_REG_WRITE_DELAY     0x00000001U 
  237#define ETH_MACCR_CLEAR_MASK    0xFD20810FU 
  240#define ETH_MACFCR_CLEAR_MASK   0x0000FF41U 
  243#define ETH_DMAOMR_CLEAR_MASK   0xF8DE3F23U 
  246#define ETH_MAC_ADDR_HBASE      (uint32_t)(ETH_MAC_BASE + 0x40U)   
  247#define ETH_MAC_ADDR_LBASE      (uint32_t)(ETH_MAC_BASE + 0x44U)   
  250#define  ETH_DMARXDESC_FRAMELENGTHSHIFT            16U 
  260#define INCR_TX_DESC_INDEX(inx, offset) do {\ 
  262                                             if ((inx) >= (uint32_t)ETH_TX_DESC_CNT){\ 
  263                                             (inx) = ((inx) - (uint32_t)ETH_TX_DESC_CNT);}\ 
 
  267#define INCR_RX_DESC_INDEX(inx, offset) do {\ 
  269                                             if ((inx) >= (uint32_t)ETH_RX_DESC_CNT){\ 
  270                                             (inx) = ((inx) - (uint32_t)ETH_RX_DESC_CNT);}\ 
 
  290#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1) 
  348#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1) 
  350    ETH_InitCallbacksToDefault(heth);
 
  352    if (heth->MspInitCallback == NULL)
 
  358    heth->MspInitCallback(heth);
 
  369  SYSCFG->PMC &= ~(SYSCFG_PMC_MII_RMII_SEL);
 
  377  SET_BIT(heth->
Instance->DMABMR, ETH_DMABMR_SR);
 
  383  while (READ_BIT(heth->
Instance->DMABMR, ETH_DMABMR_SR) > 0U)
 
  411  SET_BIT(heth->
Instance->MACIMR, ETH_MACIMR_TSTIM | ETH_MACIMR_PMTIM);
 
  414  SET_BIT(heth->
Instance->MMCRIMR, ETH_MMCRIMR_RGUFM | ETH_MMCRIMR_RFAEM | \
 
  418  SET_BIT(heth->
Instance->MMCTIMR, ETH_MMCTIMR_TGFM | ETH_MMCTIMR_TGFMSCM | \
 
 
  438#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1) 
  440  if (heth->MspDeInitCallback == NULL)
 
  445  heth->MspDeInitCallback(heth);
 
 
  490#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1) 
  508                                           pETH_CallbackTypeDef pCallback)
 
  512  if (pCallback == NULL)
 
  515    heth->
ErrorCode |= HAL_ETH_ERROR_INVALID_CALLBACK;
 
  523      case HAL_ETH_TX_COMPLETE_CB_ID :
 
  524        heth->TxCpltCallback = pCallback;
 
  527      case HAL_ETH_RX_COMPLETE_CB_ID :
 
  528        heth->RxCpltCallback = pCallback;
 
  531      case HAL_ETH_ERROR_CB_ID :
 
  532        heth->ErrorCallback = pCallback;
 
  535      case HAL_ETH_PMT_CB_ID :
 
  536        heth->PMTCallback = pCallback;
 
  540      case HAL_ETH_WAKEUP_CB_ID :
 
  541        heth->WakeUpCallback = pCallback;
 
  544      case HAL_ETH_MSPINIT_CB_ID :
 
  545        heth->MspInitCallback = pCallback;
 
  548      case HAL_ETH_MSPDEINIT_CB_ID :
 
  549        heth->MspDeInitCallback = pCallback;
 
  554        heth->
ErrorCode |= HAL_ETH_ERROR_INVALID_CALLBACK;
 
  564      case HAL_ETH_MSPINIT_CB_ID :
 
  565        heth->MspInitCallback = pCallback;
 
  568      case HAL_ETH_MSPDEINIT_CB_ID :
 
  569        heth->MspDeInitCallback = pCallback;
 
  574        heth->
ErrorCode |= HAL_ETH_ERROR_INVALID_CALLBACK;
 
  583    heth->
ErrorCode |= HAL_ETH_ERROR_INVALID_CALLBACK;
 
  614      case HAL_ETH_TX_COMPLETE_CB_ID :
 
  618      case HAL_ETH_RX_COMPLETE_CB_ID :
 
  622      case HAL_ETH_ERROR_CB_ID :
 
  626      case HAL_ETH_PMT_CB_ID :
 
  631      case HAL_ETH_WAKEUP_CB_ID :
 
  635      case HAL_ETH_MSPINIT_CB_ID :
 
  639      case HAL_ETH_MSPDEINIT_CB_ID :
 
  645        heth->
ErrorCode |= HAL_ETH_ERROR_INVALID_CALLBACK;
 
  655      case HAL_ETH_MSPINIT_CB_ID :
 
  659      case HAL_ETH_MSPDEINIT_CB_ID :
 
  665        heth->
ErrorCode |= HAL_ETH_ERROR_INVALID_CALLBACK;
 
  674    heth->
ErrorCode |= HAL_ETH_ERROR_INVALID_CALLBACK;
 
  723    SET_BIT(heth->
Instance->MACCR, ETH_MACCR_TE);
 
  732    SET_BIT(heth->
Instance->MACCR, ETH_MACCR_RE);
 
  744    SET_BIT(heth->
Instance->DMAOMR, ETH_DMAOMR_ST);
 
  747    SET_BIT(heth->
Instance->DMAOMR, ETH_DMAOMR_SR);
 
 
  789    SET_BIT(heth->
Instance->DMAOMR, ETH_DMAOMR_ST);
 
  792    SET_BIT(heth->
Instance->DMAOMR, ETH_DMAOMR_SR);
 
  799    SET_BIT(heth->
Instance->MACCR, ETH_MACCR_TE);
 
  808    SET_BIT(heth->
Instance->MACCR, ETH_MACCR_RE);
 
  816                                   ETH_DMAIER_FBEIE | ETH_DMAIER_AISE | ETH_DMAIER_RBUIE));
 
 
  843    CLEAR_BIT(heth->
Instance->DMAOMR, ETH_DMAOMR_ST);
 
  846    CLEAR_BIT(heth->
Instance->DMAOMR, ETH_DMAOMR_SR);
 
  849    CLEAR_BIT(heth->
Instance->MACCR, ETH_MACCR_RE);
 
  861    CLEAR_BIT(heth->
Instance->MACCR, ETH_MACCR_TE);
 
 
  898                                    ETH_DMAIER_FBEIE | ETH_DMAIER_AISE | ETH_DMAIER_RBUIE));
 
  901    CLEAR_BIT(heth->
Instance->DMAOMR, ETH_DMAOMR_ST);
 
  904    CLEAR_BIT(heth->
Instance->DMAOMR, ETH_DMAOMR_SR);
 
  907    CLEAR_BIT(heth->
Instance->MACCR, ETH_MACCR_RE);
 
  920    CLEAR_BIT(heth->
Instance->MACCR, ETH_MACCR_TE);
 
  929    for (descindex = 0; descindex < (uint32_t)
ETH_RX_DESC_CNT; descindex++)
 
 
  961  if (pTxConfig == NULL)
 
  994      if ((heth->
Instance->DMASR & ETH_DMASR_FBES) != (uint32_t)RESET)
 
 1005        if (((
HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
 
 
 1033  if (pTxConfig == NULL)
 
 1059    if (((heth->
Instance)->DMASR & ETH_DMASR_TBUS) != (uint32_t)RESET)
 
 1062      (heth->
Instance)->DMASR = ETH_DMASR_TBUS;
 
 
 1087  uint32_t desccnt = 0U;
 
 1088  uint32_t desccntmax;
 
 1089  uint32_t bufflength;
 
 1090  uint8_t rxdataready = 0U;
 
 1092  if (pAppBuff == NULL)
 
 1109         && (rxdataready == 0U))
 
 1142#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1) 
 1149                             (uint8_t *)dmarxdesc->
BackupAddr0, (uint16_t) bufflength);
 
 1174  if (rxdataready == 1U)
 
 
 1202  uint8_t *buff = NULL;
 
 1203  uint8_t allocStatus = 1U;
 
 1209  while ((desccount > 0U) && (allocStatus != 0U))
 
 1215#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1) 
 1228        WRITE_REG(dmarxdesc->
BackupAddr0, (uint32_t)buff);
 
 1229        WRITE_REG(dmarxdesc->
DESC2, (uint32_t)buff);
 
 1233    if (allocStatus != 0U)
 
 
 1280  if (rxAllocateCallback == NULL)
 
 
 1349  if (rxLinkCallback == NULL)
 
 
 1399  if (txFreeCallback == NULL)
 
 
 1450  uint8_t pktTxStatus = 1U;
 
 1452#ifdef HAL_ETH_USE_PTP 
 1457  while ((numOfBuf != 0U) && (pktTxStatus != 0U))
 
 1474#ifdef HAL_ETH_USE_PTP 
 1489#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1) 
 1491#ifdef HAL_ETH_USE_PTP 
 1502#ifdef HAL_ETH_USE_PTP 
 
 1531#ifdef HAL_ETH_USE_PTP 
 1543  ETH_TimeTypeDef time;
 
 1545  if (ptpconfig == NULL)
 
 1550  tmpTSCR = ptpconfig->Timestamp |
 
 1551            ((uint32_t)ptpconfig->TimestampUpdate << ETH_PTPTSCR_TSFCU_Pos) |
 
 1552            ((uint32_t)ptpconfig->TimestampAll << ETH_PTPTSCR_TSSARFE_Pos) |
 
 1553            ((uint32_t)ptpconfig->TimestampRolloverMode << ETH_PTPTSCR_TSSSR_Pos) |
 
 1554            ((uint32_t)ptpconfig->TimestampV2 << ETH_PTPTSCR_TSPTPPSV2E_Pos) |
 
 1555            ((uint32_t)ptpconfig->TimestampEthernet << ETH_PTPTSCR_TSSPTPOEFE_Pos) |
 
 1556            ((uint32_t)ptpconfig->TimestampIPv6 << ETH_PTPTSCR_TSSIPV6FE_Pos) |
 
 1557            ((uint32_t)ptpconfig->TimestampIPv4 << ETH_PTPTSCR_TSSIPV4FE_Pos) |
 
 1558            ((uint32_t)ptpconfig->TimestampEvent << ETH_PTPTSCR_TSSEME_Pos) |
 
 1559            ((uint32_t)ptpconfig->TimestampMaster << ETH_PTPTSCR_TSSMRME_Pos) |
 
 1560            ((uint32_t)ptpconfig->TimestampFilter << ETH_PTPTSCR_TSPFFMAE_Pos) |
 
 1561            ((uint32_t)ptpconfig->TimestampClockType << ETH_PTPTSCR_TSCNT_Pos);
 
 1567  SET_BIT(heth->
Instance->PTPTSCR, ETH_PTPTSCR_TSE);
 
 1568  WRITE_REG(heth->
Instance->PTPSSIR, ptpconfig->TimestampSubsecondInc);
 
 1569  WRITE_REG(heth->
Instance->PTPTSAR, ptpconfig->TimestampAddend);
 
 1572  if (ptpconfig->TimestampAddendUpdate == ENABLE)
 
 1574    SET_BIT(heth->
Instance->PTPTSCR, ETH_PTPTSCR_TSARU);
 
 1575    while ((heth->
Instance->PTPTSCR & ETH_PTPTSCR_TSARU) != 0)
 
 1582  SET_BIT(heth->
Instance->PTPTSCR, ETH_PTPTSCR_TSSTI);
 
 1588  time.Seconds = heth->
Instance->PTPTSHR;
 
 1590  time.NanoSeconds = heth->
Instance->PTPTSLR;
 
 1592  HAL_ETH_PTP_SetTime(heth, &time);
 
 1608  if (ptpconfig == NULL)
 
 1612  ptpconfig->Timestamp = READ_BIT(heth->
Instance->PTPTSCR, ETH_PTPTSCR_TSE);
 
 1613  ptpconfig->TimestampUpdate = ((READ_BIT(heth->
Instance->PTPTSCR,
 
 1614                                          ETH_PTPTSCR_TSFCU) >> ETH_PTPTSCR_TSFCU_Pos) > 0U) ? ENABLE : DISABLE;
 
 1615  ptpconfig->TimestampAll = ((READ_BIT(heth->
Instance->PTPTSCR,
 
 1616                                       ETH_PTPTSCR_TSSARFE) >> ETH_PTPTSCR_TSSARFE_Pos) > 0U) ? ENABLE : DISABLE;
 
 1617  ptpconfig->TimestampRolloverMode = ((READ_BIT(heth->
Instance->PTPTSCR,
 
 1618                                                ETH_PTPTSCR_TSSSR) >> ETH_PTPTSCR_TSSSR_Pos) > 0U)
 
 1620  ptpconfig->TimestampV2 = ((READ_BIT(heth->
Instance->PTPTSCR,
 
 1621                                      ETH_PTPTSCR_TSPTPPSV2E) >> ETH_PTPTSCR_TSPTPPSV2E_Pos) > 0U) ? ENABLE : DISABLE;
 
 1622  ptpconfig->TimestampEthernet = ((READ_BIT(heth->
Instance->PTPTSCR,
 
 1623                                            ETH_PTPTSCR_TSSPTPOEFE) >> ETH_PTPTSCR_TSSPTPOEFE_Pos) > 0U)
 
 1625  ptpconfig->TimestampIPv6 = ((READ_BIT(heth->
Instance->PTPTSCR,
 
 1626                                        ETH_PTPTSCR_TSSIPV6FE) >> ETH_PTPTSCR_TSSIPV6FE_Pos) > 0U) ? ENABLE : DISABLE;
 
 1627  ptpconfig->TimestampIPv4 = ((READ_BIT(heth->
Instance->PTPTSCR,
 
 1628                                        ETH_PTPTSCR_TSSIPV4FE) >> ETH_PTPTSCR_TSSIPV4FE_Pos) > 0U) ? ENABLE : DISABLE;
 
 1629  ptpconfig->TimestampEvent = ((READ_BIT(heth->
Instance->PTPTSCR,
 
 1630                                         ETH_PTPTSCR_TSSEME) >> ETH_PTPTSCR_TSSEME_Pos) > 0U) ? ENABLE : DISABLE;
 
 1631  ptpconfig->TimestampMaster = ((READ_BIT(heth->
Instance->PTPTSCR,
 
 1632                                          ETH_PTPTSCR_TSSMRME) >> ETH_PTPTSCR_TSSMRME_Pos) > 0U) ? ENABLE : DISABLE;
 
 1633  ptpconfig->TimestampFilter = ((READ_BIT(heth->
Instance->PTPTSCR,
 
 1634                                          ETH_PTPTSCR_TSPFFMAE) >> ETH_PTPTSCR_TSPFFMAE_Pos) > 0U) ? ENABLE : DISABLE;
 
 1635  ptpconfig->TimestampClockType = ((READ_BIT(heth->
Instance->PTPTSCR,
 
 1636                                             ETH_PTPTSCR_TSCNT) >> ETH_PTPTSCR_TSCNT_Pos) > 0U) ? ENABLE : DISABLE;
 
 1655    heth->
Instance->PTPTSHUR = time->Seconds;
 
 1658    heth->
Instance->PTPTSLUR = time->NanoSeconds;
 
 1661    SET_BIT(heth->
Instance->PTPTSCR, ETH_PTPTSCR_TSSTU);
 
 1686    time->Seconds = heth->
Instance->PTPTSHR;
 
 1688    time->NanoSeconds = heth->
Instance->PTPTSLR;
 
 1709                                            ETH_TimeTypeDef *timeoffset)
 
 1713    if (ptpoffsettype ==  HAL_ETH_PTP_NEGATIVE_UPDATE)
 
 1718      if (READ_BIT(heth->
Instance->PTPTSCR, ETH_PTPTSCR_TSSSR) == ETH_PTPTSCR_TSSSR)
 
 1731      heth->
Instance->PTPTSHUR = timeoffset->Seconds;
 
 1733      heth->
Instance->PTPTSLUR = timeoffset->NanoSeconds;
 
 1736    SET_BIT(heth->
Instance->PTPTSCR, ETH_PTPTSCR_TSSTU);
 
 1757  uint32_t descidx = dmatxdesclist->
CurTxDesc;
 
 1792    timestamp->TimeStampLow = dmatxdesc->DESC0;
 
 1794    timestamp->TimeStampHigh = dmatxdesc->DESC1;
 
 1842  if (txPtpCallback == NULL)
 
 1892  uint32_t mac_flag = READ_REG(heth->
Instance->MACSR);
 
 1893  uint32_t dma_flag = READ_REG(heth->
Instance->DMASR);
 
 1894  uint32_t dma_itsource = READ_REG(heth->
Instance->DMAIER);
 
 1895  uint32_t exti_flag = READ_REG(EXTI->PR);
 
 1898  if (((dma_flag & ETH_DMASR_RS) != 0U) && ((dma_itsource & ETH_DMAIER_RIE) != 0U))
 
 1903#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1) 
 1905    heth->RxCpltCallback(heth);
 
 1913  if (((dma_flag & ETH_DMASR_TS) != 0U) && ((dma_itsource & ETH_DMAIER_TIE) != 0U))
 
 1918#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1) 
 1920    heth->TxCpltCallback(heth);
 
 1928  if (((dma_flag & ETH_DMASR_AIS) != 0U) && ((dma_itsource & ETH_DMAIER_AISE) != 0U))
 
 1932    if ((dma_flag & ETH_DMASR_FBES) != 0U)
 
 1935      heth->
DMAErrorCode = READ_BIT(heth->
Instance->DMASR, (ETH_DMASR_FBES | ETH_DMASR_TPS | ETH_DMASR_RPS));
 
 1947                                                            ETH_DMASR_RBUS | ETH_DMASR_AIS));
 
 1951                                    ETH_DMASR_RBUS | ETH_DMASR_AIS));
 
 1953#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1) 
 1955    heth->ErrorCallback(heth);
 
 1969#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1) 
 1971    heth->PMTCallback(heth);
 
 1986#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1) 
 1988    heth->WakeUpCallback(heth);
 
 
 2082                                          uint32_t *pRegValue)
 
 2088  tmpreg1 = heth->
Instance->MACMIIAR;
 
 2091  tmpreg1 &= ~ETH_MACMIIAR_CR_MASK;
 
 2094  tmpreg1 |= ((PHYAddr << 11U) & ETH_MACMIIAR_PA);                        
 
 2095  tmpreg1 |= (((uint32_t)PHYReg << 6U) & ETH_MACMIIAR_MR);                
 
 2096  tmpreg1 &= ~ETH_MACMIIAR_MW;                                            
 
 2097  tmpreg1 |= ETH_MACMIIAR_MB;                                             
 
 2100  heth->
Instance->MACMIIAR = tmpreg1;
 
 2106  while ((tmpreg1 & ETH_MACMIIAR_MB) == ETH_MACMIIAR_MB)
 
 2114    tmpreg1 = heth->
Instance->MACMIIAR;
 
 2118  *pRegValue = (uint16_t)(heth->
Instance->MACMIIDR);
 
 
 2139  tmpreg1 = heth->
Instance->MACMIIAR;
 
 2142  tmpreg1 &= ~ETH_MACMIIAR_CR_MASK;
 
 2145  tmpreg1 |= ((PHYAddr << 11U) & ETH_MACMIIAR_PA);                      
 
 2146  tmpreg1 |= (((uint32_t)PHYReg << 6U) & ETH_MACMIIAR_MR);              
 
 2147  tmpreg1 |= ETH_MACMIIAR_MW;                                           
 
 2148  tmpreg1 |= ETH_MACMIIAR_MB;                                           
 
 2151  heth->
Instance->MACMIIDR = (uint16_t)RegValue;
 
 2154  heth->
Instance->MACMIIAR = tmpreg1;
 
 2160  while ((tmpreg1 & ETH_MACMIIAR_MB) == ETH_MACMIIAR_MB)
 
 2168    tmpreg1 = heth->
Instance->MACMIIAR;
 
 
 2202  if (macconf == NULL)
 
 2208  macconf->
DeferralCheck = ((READ_BIT(heth->
Instance->MACCR, ETH_MACCR_DC) >> 4) > 0U) ? ENABLE : DISABLE;
 
 2213  macconf->
ReceiveOwn = ((READ_BIT(heth->
Instance->MACCR, ETH_MACCR_ROD) >> 13) == 0U) ? ENABLE : DISABLE;
 
 2214  macconf->
LoopbackMode = ((READ_BIT(heth->
Instance->MACCR, ETH_MACCR_LM) >> 12) > 0U) ? ENABLE : DISABLE;
 
 2216  macconf->
Speed = READ_BIT(heth->
Instance->MACCR, ETH_MACCR_FES);
 
 2217  macconf->
Jabber = ((READ_BIT(heth->
Instance->MACCR, ETH_MACCR_JD) >> 22) == 0U) ? ENABLE : DISABLE;
 
 2218  macconf->
Watchdog = ((READ_BIT(heth->
Instance->MACCR, ETH_MACCR_WD) >> 23) == 0U) ? ENABLE : DISABLE;
 
 2221  macconf->
ChecksumOffload = ((READ_BIT(heth->
Instance->MACCR, ETH_MACCR_IPCO) >> 10U) > 0U) ? ENABLE : DISABLE;
 
 2225  macconf->
ZeroQuantaPause = ((READ_BIT(heth->
Instance->MACFCR, ETH_MACFCR_ZQPD) >> 7) == 0U) ? ENABLE : DISABLE;
 
 
 2245  if (dmaconf == NULL)
 
 2253  dmaconf->
BurstMode = READ_BIT(heth->
Instance->DMABMR, ETH_DMABMR_FB | ETH_DMABMR_MB);
 
 2260                                                    ETH_DMAOMR_DTCEFD) >> 26) > 0U) ? DISABLE : ENABLE;
 
 2262  dmaconf->
FlushRxPacket = ((READ_BIT(heth->
Instance->DMAOMR, ETH_DMAOMR_FTF) >> 20) > 0U) ? DISABLE : ENABLE;
 
 2267                                                    ETH_DMAOMR_FUGF) >> 6) > 0U) ? ENABLE : DISABLE;
 
 
 2284  if (macconf == NULL)
 
 
 2311  if (dmaconf == NULL)
 
 
 2340  tmpreg = (heth->
Instance)->MACMIIAR;
 
 2348  if (hclk < 35000000U)
 
 2351    tmpreg |= (uint32_t)ETH_MACMIIAR_CR_Div16;
 
 2353  else if (hclk < 60000000U)
 
 2356    tmpreg |= (uint32_t)ETH_MACMIIAR_CR_Div26;
 
 2358  else if (hclk < 100000000U)
 
 2361    tmpreg |= (uint32_t)ETH_MACMIIAR_CR_Div42;
 
 2363  else if (hclk < 150000000U)
 
 2366    tmpreg |= (uint32_t)ETH_MACMIIAR_CR_Div62;
 
 2371    tmpreg |= (uint32_t)ETH_MACMIIAR_CR_Div102;
 
 2375  (heth->
Instance)->MACMIIAR = (uint32_t)tmpreg;
 
 
 2388  uint32_t filterconfig;
 
 2391  if (pFilterConfig == NULL)
 
 2401                  ((uint32_t)((pFilterConfig->
BroadcastFilter == DISABLE) ? 1U : 0U) << 5) |
 
 2412  tmpreg1 = (heth->
Instance)->MACFFR;
 
 2414  (heth->
Instance)->MACFFR = tmpreg1;
 
 
 2429  if (pFilterConfig == NULL)
 
 2435  pFilterConfig->
HashUnicast = ((READ_BIT(heth->
Instance->MACFFR, ETH_MACFFR_HU) >> 1) > 0U) ? ENABLE : DISABLE;
 
 2436  pFilterConfig->
HashMulticast = ((READ_BIT(heth->
Instance->MACFFR, ETH_MACFFR_HM) >> 2) > 0U) ? ENABLE : DISABLE;
 
 2438                                                       ETH_MACFFR_DAIF) >> 3) > 0U) ? ENABLE : DISABLE;
 
 2439  pFilterConfig->
PassAllMulticast = ((READ_BIT(heth->
Instance->MACFFR, ETH_MACFFR_PAM) >> 4) > 0U) ? ENABLE : DISABLE;
 
 2440  pFilterConfig->
BroadcastFilter = ((READ_BIT(heth->
Instance->MACFFR, ETH_MACFFR_BFD) >> 5) == 0U) ? ENABLE : DISABLE;
 
 2443                                                      ETH_MACFFR_SAIF) >> 8) > 0U) ? ENABLE : DISABLE;
 
 2444  pFilterConfig->
SrcAddrFiltering = ((READ_BIT(heth->
Instance->MACFFR, ETH_MACFFR_SAF) >> 9) > 0U) ? ENABLE : DISABLE;
 
 2447  pFilterConfig->
ReceiveAllMode = ((READ_BIT(heth->
Instance->MACFFR, ETH_MACFFR_RA) >> 31) > 0U) ? ENABLE : DISABLE;
 
 
 2465                                                const uint8_t *pMACAddr)
 
 2470  if (pMACAddr == NULL)
 
 2476  macaddrhr = ((uint32_t) &(heth->
Instance->MACA0HR) + AddrNbr);
 
 2478  macaddrlr = ((uint32_t) &(heth->
Instance->MACA0LR) + AddrNbr);
 
 2481  (*(__IO uint32_t *)macaddrhr) = (((uint32_t)(pMACAddr[5]) << 8) | (uint32_t)pMACAddr[4]);
 
 2483  (*(__IO uint32_t *)macaddrlr) = (((uint32_t)(pMACAddr[3]) << 24) | ((uint32_t)(pMACAddr[2]) << 16) |
 
 2484                                   ((uint32_t)(pMACAddr[1]) << 8) | (uint32_t)pMACAddr[0]);
 
 2487  (*(__IO uint32_t *)macaddrhr) |= (ETH_MACA1HR_AE | ETH_MACA1HR_SA);
 
 
 2503  if (pHashTable == NULL)
 
 2508  heth->
Instance->MACHTHR = pHashTable[0];
 
 2512  tmpreg1 = (heth->
Instance)->MACHTHR;
 
 2514  (heth->
Instance)->MACHTHR = tmpreg1;
 
 2516  heth->
Instance->MACHTLR = pHashTable[1];
 
 2520  tmpreg1 = (heth->
Instance)->MACHTLR;
 
 2522  (heth->
Instance)->MACHTLR = tmpreg1;
 
 
 2539  MODIFY_REG(heth->
Instance->MACVLANTR, ETH_MACVLANTR_VLANTI, VLANIdentifier);
 
 2542    CLEAR_BIT(heth->
Instance->MACVLANTR, ETH_MACVLANTR_VLANTC);
 
 2546    SET_BIT(heth->
Instance->MACVLANTR, ETH_MACVLANTR_VLANTC);
 
 2551  tmpreg1 = (heth->
Instance)->MACVLANTR;
 
 2553  (heth->
Instance)->MACVLANTR = tmpreg1;
 
 
 2566  uint32_t powerdownconfig;
 
 2568  powerdownconfig = (((uint32_t)pPowerDownConfig->
MagicPacket << ETH_MACPMTCSR_MPE_Pos) |
 
 2569                     ((uint32_t)pPowerDownConfig->
WakeUpPacket << ETH_MACPMTCSR_WFE_Pos) |
 
 2570                     ((uint32_t)pPowerDownConfig->
GlobalUnicast << ETH_MACPMTCSR_GU_Pos) |
 
 
 2587  CLEAR_BIT(heth->
Instance->MACPMTCSR, ETH_MACPMTCSR_WFE | ETH_MACPMTCSR_MPE | ETH_MACPMTCSR_GU);
 
 2591  tmpreg1 = (heth->
Instance)->MACPMTCSR;
 
 2593  (heth->
Instance)->MACPMTCSR = tmpreg1;
 
 2595  if (READ_BIT(heth->
Instance->MACPMTCSR, ETH_MACPMTCSR_PD) != 0U)
 
 2598    CLEAR_BIT(heth->
Instance->MACPMTCSR, ETH_MACPMTCSR_PD);
 
 2602    tmpreg1 = (heth->
Instance)->MACPMTCSR;
 
 2604    (heth->
Instance)->MACPMTCSR = tmpreg1;
 
 2608  SET_BIT(heth->
Instance->MACIMR, ETH_MACIMR_PMTIM);
 
 
 2623  if (pFilter == NULL)
 
 2629  SET_BIT(heth->
Instance->MACPMTCSR, ETH_MACPMTCSR_WFFRPR);
 
 2632  for (regindex = 0; regindex < Count; regindex++)
 
 2635    WRITE_REG(heth->
Instance->MACRWUFFR, pFilter[regindex]);
 
 
 2737  __IO uint32_t tmpreg = 0;
 
 2740  (heth->
Instance)->DMAOMR |= ETH_DMAOMR_FTF;
 
 
 2760                        ((uint32_t)((macconf->
Watchdog == DISABLE) ? 1U : 0U) << 23U) |
 
 2761                        ((uint32_t)((macconf->
Jabber == DISABLE) ? 1U : 0U) << 22U) |
 
 2765                        ((uint32_t)((macconf->
ReceiveOwn == DISABLE) ? 1U : 0U) << 13U) |
 
 2775  (heth->
Instance)->MACCR = (uint32_t)tmpreg1;
 
 2786  tmpreg1 = (heth->
Instance)->MACFCR;
 
 2790  tmpreg1 |= (uint32_t)((macconf->
PauseTime << 16U) |
 
 2798  (heth->
Instance)->MACFCR = (uint32_t)tmpreg1;
 
 2802  tmpreg1 = (heth->
Instance)->MACFCR;
 
 2804  (heth->
Instance)->MACFCR = tmpreg1;
 
 
 2813  tmpreg1 = (heth->
Instance)->DMAOMR;
 
 2819                        ((uint32_t)((dmaconf->
FlushRxPacket == DISABLE) ? 1U : 0U) << 20U) |
 
 2828  (heth->
Instance)->DMAOMR = (uint32_t)tmpreg1;
 
 2832  tmpreg1 = (heth->
Instance)->DMAOMR;
 
 2834  (heth->
Instance)->DMAOMR = tmpreg1;
 
 2849  tmpreg1 = (heth->
Instance)->DMABMR;
 
 2851  (heth->
Instance)->DMABMR = tmpreg1;
 
 
 2868  macDefaultConf.
Jabber = ENABLE;
 
 
 2933  tmpreg1 = ((uint32_t)Addr[5U] << 8U) | (uint32_t)Addr[4U];
 
 2937  tmpreg1 = ((uint32_t)Addr[3U] << 24U) | ((uint32_t)Addr[2U] << 16U) | ((uint32_t)Addr[1U] << 8U) | Addr[0U];
 
 
 2960    WRITE_REG(dmatxdesc->
DESC0, 0x0U);
 
 2961    WRITE_REG(dmatxdesc->
DESC1, 0x0U);
 
 2962    WRITE_REG(dmatxdesc->
DESC2, 0x0U);
 
 2963    WRITE_REG(dmatxdesc->
DESC3, 0x0U);
 
 2972      WRITE_REG(dmatxdesc->DESC3, (uint32_t)(heth->
Init.
TxDesc + i + 1U));
 
 2976      WRITE_REG(dmatxdesc->DESC3, (uint32_t)(heth->
Init.
TxDesc));
 
 
 3005    WRITE_REG(dmarxdesc->
DESC0, 0x0U);
 
 3006    WRITE_REG(dmarxdesc->
DESC1, 0x0U);
 
 3007    WRITE_REG(dmarxdesc->
DESC2, 0x0U);
 
 3008    WRITE_REG(dmarxdesc->
DESC3, 0x0U);
 
 3019    dmarxdesc->
DESC1 &= ~ETH_DMARXDESC_DIC;
 
 3025      WRITE_REG(dmarxdesc->DESC3, (uint32_t)(heth->
Init.
RxDesc + i + 1U));
 
 3029      WRITE_REG(dmarxdesc->DESC3, (uint32_t)(heth->
Init.
RxDesc));
 
 
 3056  uint32_t descidx = dmatxdesclist->
CurTxDesc;
 
 3057  uint32_t firstdescidx = dmatxdesclist->
CurTxDesc;
 
 3059  uint32_t descnbr = 0;
 
 3063  uint32_t           bd_count = 0;
 
 3064  uint32_t primask_bit;
 
 3077  WRITE_REG(dmatxdesc->
DESC2, (uint32_t)txbuffer->
buffer);
 
 3103  while (txbuffer->
next != NULL)
 
 3107    if (ItMode != ((uint32_t)RESET))
 
 3126      descidx = firstdescidx;
 
 3130      for (idx = 0; idx < descnbr; idx ++)
 
 3152    txbuffer = txbuffer->
next;
 
 3155    WRITE_REG(dmatxdesc->
DESC2, (uint32_t)txbuffer->
buffer);
 
 3168  if (ItMode != ((uint32_t)RESET))
 
 3194  primask_bit = __get_PRIMASK();
 
 3200  __set_PRIMASK(primask_bit);
 
 
 3206#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1) 
 3217#ifdef HAL_ETH_USE_PTP 
#define ETH_BACKOFFLIMIT_10
 
#define ETH_BURSTLENGTH_FIXED
 
#define ETH_DMAARBITRATION_ROUNDROBIN_RXTX_4_1
 
#define ETH_DMAARBITRATION_RXPRIORTX
 
#define ETH_DMAARBITRATION_ROUNDROBIN_RXTX_1_1
 
#define ETH_DMARXDESC_OWN
Bit definition of RDES0 register: DMA Rx descriptor status register.
 
#define ETH_DMARXDESC_RCH
 
#define ETH_DMARXDESC_DIC
Bit definition of RDES1 register.
 
#define ETH_DMATXDESC_OWN
Bit definition of TDES0 register: DMA Tx descriptor status register.
 
#define ETH_DMATXDESC_TTSS
 
#define ETH_DMATXDESC_TTSE
 
#define ETH_DMATXDESC_TCH
 
#define ETH_DMATXDESC_TBS1
 
#define ETH_DMATXDESC_CIC
 
#define ETH_DMATXDESC_CHECKSUMTCPUDPICMPFULL
 
#define ETH_FULLDUPLEX_MODE
 
#define HAL_ETH_ERROR_PARAM
 
#define HAL_ETH_ERROR_DMA
 
#define HAL_ETH_ERROR_NONE
 
#define HAL_ETH_ERROR_TIMEOUT
 
#define HAL_ETH_ERROR_BUSY
 
void HAL_ETH_MspDeInit(ETH_HandleTypeDef *heth)
DeInitializes ETH MSP.
 
void HAL_ETH_MspInit(ETH_HandleTypeDef *heth)
Initializes the ETH MSP.
 
HAL_StatusTypeDef HAL_ETH_Init(ETH_HandleTypeDef *heth)
Initialize the Ethernet peripheral registers.
 
HAL_StatusTypeDef HAL_ETH_DeInit(ETH_HandleTypeDef *heth)
DeInitializes the ETH peripheral.
 
void HAL_ETH_TxFreeCallback(uint32_t *buff)
Tx Free callback.
 
void HAL_ETH_RxAllocateCallback(uint8_t **buff)
Rx Allocate callback.
 
HAL_StatusTypeDef HAL_ETH_Transmit_IT(ETH_HandleTypeDef *heth, ETH_TxPacketConfigTypeDef *pTxConfig)
Sends an Ethernet Packet in interrupt mode.
 
HAL_StatusTypeDef HAL_ETH_Start(ETH_HandleTypeDef *heth)
Enables Ethernet MAC and DMA reception and transmission.
 
HAL_StatusTypeDef HAL_ETH_UnRegisterRxAllocateCallback(ETH_HandleTypeDef *heth)
Unregister the Rx alloc callback.
 
HAL_StatusTypeDef HAL_ETH_ReleaseTxPacket(ETH_HandleTypeDef *heth)
Release transmitted Tx packets.
 
HAL_StatusTypeDef HAL_ETH_Transmit(ETH_HandleTypeDef *heth, ETH_TxPacketConfigTypeDef *pTxConfig, uint32_t Timeout)
Sends an Ethernet Packet in polling mode.
 
HAL_StatusTypeDef HAL_ETH_Stop_IT(ETH_HandleTypeDef *heth)
Stop Ethernet MAC and DMA reception/transmission in Interrupt mode.
 
void HAL_ETH_TxPtpCallback(uint32_t *buff, ETH_TimeStampTypeDef *timestamp)
 
HAL_StatusTypeDef HAL_ETH_WritePHYRegister(const ETH_HandleTypeDef *heth, uint32_t PHYAddr, uint32_t PHYReg, uint32_t RegValue)
Writes to a PHY register.
 
HAL_StatusTypeDef HAL_ETH_RegisterRxLinkCallback(ETH_HandleTypeDef *heth, pETH_rxLinkCallbackTypeDef rxLinkCallback)
Set the Rx link data function.
 
HAL_StatusTypeDef HAL_ETH_RegisterTxFreeCallback(ETH_HandleTypeDef *heth, pETH_txFreeCallbackTypeDef txFreeCallback)
Set the Tx free function.
 
HAL_StatusTypeDef HAL_ETH_UnRegisterTxFreeCallback(ETH_HandleTypeDef *heth)
Unregister the Tx free callback.
 
HAL_StatusTypeDef HAL_ETH_RegisterRxAllocateCallback(ETH_HandleTypeDef *heth, pETH_rxAllocateCallbackTypeDef rxAllocateCallback)
Register the Rx alloc callback.
 
HAL_StatusTypeDef HAL_ETH_Start_IT(ETH_HandleTypeDef *heth)
Enables Ethernet MAC and DMA reception/transmission in Interrupt mode.
 
HAL_StatusTypeDef HAL_ETH_ReadPHYRegister(ETH_HandleTypeDef *heth, uint32_t PHYAddr, uint32_t PHYReg, uint32_t *pRegValue)
Read a PHY register.
 
HAL_StatusTypeDef HAL_ETH_GetRxDataErrorCode(const ETH_HandleTypeDef *heth, uint32_t *pErrorCode)
Get the error state of the last received packet.
 
HAL_StatusTypeDef HAL_ETH_ReadData(ETH_HandleTypeDef *heth, void **pAppBuff)
Read a received packet.
 
void HAL_ETH_RxLinkCallback(void **pStart, void **pEnd, uint8_t *buff, uint16_t Length)
Rx Link callback.
 
void HAL_ETH_RxCpltCallback(ETH_HandleTypeDef *heth)
Rx Transfer completed callbacks.
 
void HAL_ETH_WakeUpCallback(ETH_HandleTypeDef *heth)
ETH WAKEUP interrupt callback.
 
void HAL_ETH_TxCpltCallback(ETH_HandleTypeDef *heth)
Tx Transfer completed callbacks.
 
void HAL_ETH_ErrorCallback(ETH_HandleTypeDef *heth)
Ethernet transfer error callbacks.
 
void HAL_ETH_PMTCallback(ETH_HandleTypeDef *heth)
Ethernet Power Management module IT callback.
 
void HAL_ETH_IRQHandler(ETH_HandleTypeDef *heth)
This function handles ETH interrupt request.
 
HAL_StatusTypeDef HAL_ETH_UnRegisterRxLinkCallback(ETH_HandleTypeDef *heth)
Unregister the Rx link callback.
 
HAL_StatusTypeDef HAL_ETH_Stop(ETH_HandleTypeDef *heth)
Stop Ethernet MAC and DMA reception/transmission.
 
HAL_StatusTypeDef HAL_ETH_GetMACFilterConfig(const ETH_HandleTypeDef *heth, ETH_MACFilterConfigTypeDef *pFilterConfig)
Get the ETH MAC (L2) Filters configuration.
 
HAL_StatusTypeDef HAL_ETH_GetDMAConfig(const ETH_HandleTypeDef *heth, ETH_DMAConfigTypeDef *dmaconf)
Get the configuration of the DMA.
 
HAL_StatusTypeDef HAL_ETH_SetWakeUpFilter(ETH_HandleTypeDef *heth, uint32_t *pFilter, uint32_t Count)
Set the WakeUp filter.
 
HAL_StatusTypeDef HAL_ETH_GetMACConfig(const ETH_HandleTypeDef *heth, ETH_MACConfigTypeDef *macconf)
Get the configuration of the MAC and MTL subsystems.
 
HAL_StatusTypeDef HAL_ETH_SetMACFilterConfig(ETH_HandleTypeDef *heth, const ETH_MACFilterConfigTypeDef *pFilterConfig)
Set the ETH MAC (L2) Filters configuration.
 
HAL_StatusTypeDef HAL_ETH_SetDMAConfig(ETH_HandleTypeDef *heth, ETH_DMAConfigTypeDef *dmaconf)
Set the ETH DMA configuration.
 
void HAL_ETH_SetRxVLANIdentifier(ETH_HandleTypeDef *heth, uint32_t ComparisonBits, uint32_t VLANIdentifier)
Set the VLAN Identifier for Rx packets.
 
void HAL_ETH_EnterPowerDownMode(ETH_HandleTypeDef *heth, const ETH_PowerDownConfigTypeDef *pPowerDownConfig)
Enters the Power down mode.
 
void HAL_ETH_ExitPowerDownMode(ETH_HandleTypeDef *heth)
Exits from the Power down mode.
 
HAL_StatusTypeDef HAL_ETH_SetMACConfig(ETH_HandleTypeDef *heth, ETH_MACConfigTypeDef *macconf)
Set the MAC configuration.
 
void HAL_ETH_SetMDIOClockRange(ETH_HandleTypeDef *heth)
Configures the Clock range of ETH MDIO interface.
 
HAL_StatusTypeDef HAL_ETH_SetSourceMACAddrMatch(const ETH_HandleTypeDef *heth, uint32_t AddrNbr, const uint8_t *pMACAddr)
Set the source MAC Address to be matched.
 
HAL_StatusTypeDef HAL_ETH_SetHashTable(ETH_HandleTypeDef *heth, uint32_t *pHashTable)
Set the ETH Hash Table Value.
 
HAL_ETH_StateTypeDef HAL_ETH_GetState(const ETH_HandleTypeDef *heth)
Returns the ETH state.
 
uint32_t HAL_ETH_GetMACWakeUpSource(const ETH_HandleTypeDef *heth)
Returns the ETH MAC WakeUp event source.
 
uint32_t HAL_ETH_GetError(const ETH_HandleTypeDef *heth)
Returns the ETH error code.
 
uint32_t HAL_ETH_GetDMAError(const ETH_HandleTypeDef *heth)
Returns the ETH DMA error code.
 
uint32_t HAL_ETH_GetMACError(const ETH_HandleTypeDef *heth)
Returns the ETH MAC error code.
 
#define ETH_WAKEUP_EXTI_LINE
 
#define __HAL_ETH_WAKEUP_EXTI_CLEAR_FLAG(__EXTI_LINE__)
Clear the ETH WAKEUP Exti flag.
 
#define __HAL_ETH_DMA_DISABLE_IT(__HANDLE__, __INTERRUPT__)
Disables the specified ETHERNET DMA interrupts.
 
#define __HAL_ETH_DMA_ENABLE_IT(__HANDLE__, __INTERRUPT__)
Enables the specified ETHERNET DMA interrupts.
 
#define __HAL_ETH_DMA_CLEAR_IT(__HANDLE__, __INTERRUPT__)
Clears the ETHERNET DMA IT pending bit.
 
void(* pETH_rxAllocateCallbackTypeDef)(uint8_t **buffer)
HAL ETH Rx Get Buffer Function definition.
 
void(* pETH_txFreeCallbackTypeDef)(uint32_t *buffer)
HAL ETH Tx Free Function definition.
 
void(* pETH_rxLinkCallbackTypeDef)(void **pStart, void **pEnd, uint8_t *buff, uint16_t Length)
HAL ETH Rx Set App Data Function definition.
 
void(* pETH_txPtpCallbackTypeDef)(uint32_t *buffer, ETH_TimeStampTypeDef *timestamp)
HAL ETH Tx Free Function definition.
 
uint32_t HAL_ETH_StateTypeDef
HAL State structures definition.
 
#define ETH_INTERFRAMEGAP_96BIT
 
#define HAL_ETH_PTP_CONFIGURED
 
#define ETH_PAUSELOWTHRESHOLD_MINUS4
 
#define ETH_DMARXDESC_ERRORS_MASK
 
#define ETH_MACCR_CLEAR_MASK
 
#define ETH_MAC_ADDR_LBASE
 
#define ETH_MACFCR_CLEAR_MASK
 
#define ETH_MACPMTCSR_MASK
 
#define ETH_PTPTSLR_VALUE
 
#define ETH_MAC_ADDR_HBASE
 
#define ETH_SWRESET_TIMEOUT
 
#define ETH_REG_WRITE_DELAY
 
#define ETH_PTPTSHR_VALUE
 
#define ETH_DMAOMR_CLEAR_MASK
 
#define ETH_DMARXDESC_FRAMELENGTHSHIFT
 
#define ETH_MACMIIAR_CR_MASK
 
static void ETH_DMARxDescListInit(ETH_HandleTypeDef *heth)
Initializes the DMA Rx descriptors in chain mode. called by HAL_ETH_Init() API.
 
static void ETH_SetDMAConfig(ETH_HandleTypeDef *heth, const ETH_DMAConfigTypeDef *dmaconf)
 
static void ETH_DMATxDescListInit(ETH_HandleTypeDef *heth)
Initializes the DMA Tx descriptors. called by HAL_ETH_Init() API.
 
static void ETH_SetMACConfig(ETH_HandleTypeDef *heth, const ETH_MACConfigTypeDef *macconf)
 
static void ETH_UpdateDescriptor(ETH_HandleTypeDef *heth)
This function gives back Rx Desc of the last received Packet to the DMA, so ETH DMA will be able to u...
 
static uint32_t ETH_Prepare_Tx_Descriptors(ETH_HandleTypeDef *heth, const ETH_TxPacketConfigTypeDef *pTxConfig, uint32_t ItMode)
Prepare Tx DMA descriptor before transmission. called by HAL_ETH_Transmit_IT and HAL_ETH_Transmit_IT(...
 
static void ETH_MACDMAConfig(ETH_HandleTypeDef *heth)
Configures Ethernet MAC and DMA with default parameters. called by HAL_ETH_Init() API.
 
static void ETH_MACAddressConfig(ETH_HandleTypeDef *heth, uint32_t MacAddr, uint8_t *Addr)
Configures the selected MAC address.
 
static void ETH_FlushTransmitFIFO(ETH_HandleTypeDef *heth)
Clears the ETHERNET transmit FIFO.
 
#define INCR_RX_DESC_INDEX(inx, offset)
 
#define INCR_TX_DESC_INDEX(inx, offset)
 
#define ETH_RECEIVEDTHRESHOLDCONTROL_64BYTES
 
#define ETH_RXDMABURSTLENGTH_32BEAT
 
#define HAL_ETH_STATE_RESET
 
#define HAL_ETH_STATE_BUSY
 
#define HAL_ETH_STATE_READY
 
#define HAL_ETH_STATE_ERROR
 
#define HAL_ETH_STATE_STARTED
 
#define ETH_TRANSMITTHRESHOLDCONTROL_64BYTES
 
#define ETH_TXDMABURSTLENGTH_32BEAT
 
#define ETH_TX_PACKETS_FEATURES_VLANTAG
 
#define ETH_TX_PACKETS_FEATURES_CSUM
 
#define ETH_TX_PACKETS_FEATURES_CRCPAD
 
#define ETH_CRC_PAD_DISABLE
 
#define ETH_VLANTAGCOMPARISON_16BIT
 
void HAL_Delay(uint32_t Delay)
This function provides minimum delay (in milliseconds) based on variable incremented.
 
uint32_t HAL_GetTick(void)
Provides a tick value in millisecond.
 
#define __HAL_RCC_SYSCFG_CLK_ENABLE()
 
uint32_t HAL_RCC_GetHCLKFreq(void)
Returns the HCLK frequency.
 
This file contains all the functions prototypes for the HAL module driver.
 
HAL_StatusTypeDef
HAL Status structures definition
 
ETH DMA Configuration Structure definition.
 
FunctionalState ReceiveStoreForward
 
FunctionalState AddressAlignedBeats
 
uint32_t ReceiveThresholdControl
 
FunctionalState SecondFrameOperate
 
FunctionalState ForwardErrorFrames
 
uint32_t RxDMABurstLength
 
FunctionalState ForwardUndersizedGoodFrames
 
uint32_t TransmitThresholdControl
 
FunctionalState EnhancedDescriptorFormat
 
uint32_t DescriptorSkipLength
 
FunctionalState DropTCPIPChecksumErrorFrame
 
FunctionalState TransmitStoreForward
 
FunctionalState FlushRxPacket
 
uint32_t TxDMABurstLength
 
ETH DMA Descriptor structure definition.
 
ETH Handle Structure definition.
 
__IO HAL_ETH_StateTypeDef gState
 
__IO uint32_t MACErrorCode
 
__IO uint32_t IsPtpConfigured
 
__IO uint32_t DMAErrorCode
 
pETH_txFreeCallbackTypeDef txFreeCallback
 
pETH_rxLinkCallbackTypeDef rxLinkCallback
 
ETH_TxDescListTypeDef TxDescList
 
ETH_RxDescListTypeDef RxDescList
 
pETH_txPtpCallbackTypeDef txPtpCallback
 
pETH_rxAllocateCallbackTypeDef rxAllocateCallback
 
__IO uint32_t MACWakeUpEvent
 
ETH_DMADescTypeDef * TxDesc
 
ETH_MediaInterfaceTypeDef MediaInterface
 
ETH_DMADescTypeDef * RxDesc
 
ETH MAC Configuration Structure definition.
 
FunctionalState AutomaticPadCRCStrip
 
FunctionalState UnicastPausePacketDetect
 
uint32_t PauseLowThreshold
 
FunctionalState ReceiveOwn
 
FunctionalState RetryTransmission
 
FunctionalState LoopbackMode
 
uint32_t InterPacketGapVal
 
FunctionalState ChecksumOffload
 
FunctionalState DeferralCheck
 
FunctionalState ZeroQuantaPause
 
FunctionalState CRCStripTypePacket
 
FunctionalState ReceiveFlowControl
 
FunctionalState CarrierSenseDuringTransmit
 
FunctionalState TransmitFlowControl
 
ETH MAC filter structure definition.
 
FunctionalState SrcAddrFiltering
 
FunctionalState BroadcastFilter
 
uint32_t ControlPacketsFilter
 
FunctionalState SrcAddrInverseFiltering
 
FunctionalState PassAllMulticast
 
FunctionalState HachOrPerfectFilter
 
FunctionalState HashUnicast
 
FunctionalState ReceiveAllMode
 
FunctionalState DestAddrInverseFiltering
 
FunctionalState PromiscuousMode
 
FunctionalState HashMulticast
 
ETH Power Down structure definition.
 
FunctionalState WakeUpPacket
 
FunctionalState GlobalUnicast
 
FunctionalState MagicPacket
 
ETH_TimeStampTypeDef TimeStamp
 
uint32_t RxDesc[ETH_RX_DESC_CNT]
 
ETH Timestamp structure definition.
 
DMA Transmit Descriptors Wrapper structure definition.
 
uint32_t * PacketAddress[ETH_TX_DESC_CNT]
 
uint32_t TxDesc[ETH_TX_DESC_CNT]
 
uint32_t * CurrentPacketAddress
 
Transmit Packet Configuration structure definition.
 
ETH_BufferTypeDef * TxBuffer
 
ETH Buffers List structure definition.
 
struct __ETH_BufferTypeDef * next