/**
******************************************************************************
* @file opora_ethernet_defs.h
* @author Phyton Application Team
* @version V1.0.0
* @date
* @brief This file contains all the Special Function Registers definitions
* for the ETHERNET peripheral unit used in the Milandr OPORA
* microcontrollers.
******************************************************************************
* @copy
*
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
* TIME. AS A RESULT, PHYTON SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT
* OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*
* <h2><center>© COPYRIGHT 2010 Phyton</center></h2>
******************************************************************************
* FILE opora_ethernet_defs.h
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __OPORA_ETHERNET_DEFS_H
#define __OPORA_ETHERNET_DEFS_H
/** @addtogroup __CMSIS CMSIS
* @{
*/
/** @addtogroup __OPORA_Peripheral_Units OPORA Peripheral Units
* @{
*/
/** @defgroup Periph_ETHERNET ETHERNET
* @{
*/
/** @defgroup Periph_ETHERNET_Data_Structures Data Structures
* @{
*/
/** @defgroup Periph_ETHERNET_TypeDef ETHERNET_TypeDef
* @{
*/
typedef struct {
__IO uint16_t Delimiter; //00 offset
__IO uint16_t MAC_T; //02
__IO uint16_t MAC_M; //04
__IO uint16_t MAC_H; //06
__IO uint16_t HASH0; //08
__IO uint16_t HASH1; //0A
__IO uint16_t HASH2; //0C
__IO uint16_t HASH3; //0E
__IO uint16_t IPG; //10
__IO uint16_t PSC; //12
__IO uint16_t BAG; //14
__IO uint16_t JitterWnd; //16
__IO uint16_t R_CFG; //18
__IO uint16_t X_CFG; //1A
__IO uint32_t G_CFG; //1C
__IO uint16_t IMR; //20
__IO uint16_t IFR; //22
__IO uint16_t MDIO_CTRL; //24
__IO uint16_t MDIO_DATA; //26
__IO uint16_t R_Head; //28
__IO uint16_t X_Tail; //2A
__IO uint16_t R_Tail; //2C
__IO uint16_t X_Head; //2E
__IO uint16_t STAT; //30
__IO uint16_t RESERV; //32
__IO uint16_t PHY_CTRL; //34
__IO uint16_t PHY_STATUS; //36
} ETHERNET_TypeDef;
/** @} */ /* End of group Periph_ETHERNET_TypeDef */
/** @} */ /* End of group Periph_ETHERNET_Data_Structures */
/** @defgroup Periph_ETHERNET_Defines Defines
* @{
*/
/** @defgroup Periph_ETHERNET_ETHERNET_ETH_R_CFG_Bits ETHERNET_ETH_R_CFG
* @{
*/
#define ETHERNET_ETH_R_CFG_MCA_EN_OFFS 0
#define ETHERNET_ETH_R_CFG_MCA_EN ((uint32_t)0x00000001)
#define ETHERNET_ETH_R_CFG_BCA_EN_OFFS 1
#define ETHERNET_ETH_R_CFG_BCA_EN ((uint32_t)0x00000002)
#define ETHERNET_ETH_R_CFG_UCA_EN_OFFS 2
#define ETHERNET_ETH_R_CFG_UCA_EN ((uint32_t)0x00000004)
#define ETHERNET_ETH_R_CFG_AC_EN_OFFS 3
#define ETHERNET_ETH_R_CFG_AC_EN ((uint32_t)0x00000008)
#define ETHERNET_ETH_R_CFG_EF_EN_OFFS 4
#define ETHERNET_ETH_R_CFG_EF_EN ((uint32_t)0x00000010)
#define ETHERNET_ETH_R_CFG_CF_EN_OFFS 5
#define ETHERNET_ETH_R_CFG_CF_EN ((uint32_t)0x00000020)
#define ETHERNET_ETH_R_CFG_LF_EN_OFFS 6
#define ETHERNET_ETH_R_CFG_LF_EN ((uint32_t)0x00000040)
#define ETHERNET_ETH_R_CFG_SF_EN_OFFS 7
#define ETHERNET_ETH_R_CFG_SF_EN ((uint32_t)0x00000080)
#define ETHERNET_ETH_R_CFG_EVNT_MODE_OFFS 8
#define ETHERNET_ETH_R_CFG_EVNT_MODE_MASK ((uint32_t)0x00000700)
#define ETHERNET_ETH_R_CFG_MSB1st_OFFS 12
#define ETHERNET_ETH_R_CFG_MSB1st ((uint32_t)0x00001000)
#define ETHERNET_ETH_R_CFG_BE_OFFS 13
#define ETHERNET_ETH_R_CFG_BE ((uint32_t)0x00002000)
#define ETHERNET_ETH_R_CFG_RST_OFFS 15
#define ETHERNET_ETH_R_CFG_RST ((uint32_t)0x00008000)
/** @} */ /* End of group Periph_ETHERNET_ETHERNET_ETH_R_CFG_Bits */
/** @} */ /* End of group Periph_ETHERNET_Defines */
/** @defgroup Periph_ETHERNET_Defines Defines
* @{
*/
/** @defgroup Periph_ETHERNET_ETHERNET_ETH_X_CFG_Bits ETHERNET_ETH_X_CFG
* @{
*/
#define ETHERNET_ETH_X_CFG_RtryCnt_OFFS 0
#define ETHERNET_ETH_X_CFG_RtryCnt_MASK ((uint32_t)0x0000000F)
#define ETHERNET_ETH_X_CFG_IPG_EN_OFFS 4
#define ETHERNET_ETH_X_CFG_IPG_EN ((uint32_t)0x00000010)
#define ETHERNET_ETH_X_CFG_CRC_EN_OFFS 5
#define ETHERNET_ETH_X_CFG_CRC_EN ((uint32_t)0x00000020)
#define ETHERNET_ETH_X_CFG_PRE_EN_OFFS 6
#define ETHERNET_ETH_X_CFG_PRE_EN ((uint32_t)0x00000040)
#define ETHERNET_ETH_X_CFG_PAD_EN_OFFS 7
#define ETHERNET_ETH_X_CFG_PAD_EN ((uint32_t)0x00000080)
#define ETHERNET_ETH_X_CFG_EVNT_MODE_OFFS 8
#define ETHERNET_ETH_X_CFG_EVNT_MODE_MASK ((uint32_t)0x00000700)
#define ETHERNET_ETH_X_CFG_MSB1st_OFFS 12
#define ETHERNET_ETH_X_CFG_MSB1st ((uint32_t)0x00001000)
#define ETHERNET_ETH_X_CFG_BE_OFFS 13
#define ETHERNET_ETH_X_CFG_BE ((uint32_t)0x00002000)
#define ETHERNET_ETH_X_CFG_RST_OFFS 15
#define ETHERNET_ETH_X_CFG_RST ((uint32_t)0x00008000)
/** @} */ /* End of group Periph_ETHERNET_ETHERNET_ETH_X_CFG_Bits */
/** @} */ /* End of group Periph_ETHERNET_Defines */
/** @defgroup Periph_ETHERNET_Defines Defines
* @{
*/
/** @defgroup Periph_ETHERNET_ETHERNET_ETH_G_CFG_Bits ETHERNET_ETH_G_CFG
* @{
*/
#define ETHERNET_ETH_G_CFG_ColWnd_OFFS 0
#define ETHERNET_ETH_G_CFG_ColWnd_MASK ((uint32_t)0x000000FF)
#define ETHERNET_ETH_G_CFG_PAUSE_EN_OFFS 8
#define ETHERNET_ETH_G_CFG_PAUSE_EN ((uint32_t)0x00000100)
#define ETHERNET_ETH_G_CFG_DTRM_EN_OFFS 9
#define ETHERNET_ETH_G_CFG_DTRM_EN ((uint32_t)0x00000200)
#define ETHERNET_ETH_G_CFG_HD_EN_OFFS 10
#define ETHERNET_ETH_G_CFG_HD_EN ((uint32_t)0x00000400)
#define ETHERNET_ETH_G_CFG_DLB_OFFS 11
#define ETHERNET_ETH_G_CFG_DLB ((uint32_t)0x00000800)
#define ETHERNET_ETH_G_CFG_AB_MODE_OFFS 12
#define ETHERNET_ETH_G_CFG_AB_MODE ((uint32_t)0x00001000)
#define ETHERNET_ETH_G_CFG_SOFT_OFFS 14
#define ETHERNET_ETH_G_CFG_SOFT ((uint32_t)0x00004000)
#define ETHERNET_ETH_G_CFG_FREE_OFFS 15
#define ETHERNET_ETH_G_CFG_FREE ((uint32_t)0x00008000)
/** @} */ /* End of group Periph_ETHERNET_ETHERNET_ETH_G_CFG_Bits */
/** @} */ /* End of group Periph_ETHERNET_Defines */
/** @defgroup Periph_ETHERNET_Defines Defines
* @{
*/
/** @defgroup Periph_ETHERNET_ETHERNET_ETH_IMR_Bits ETHERNET_ETH_IMR
* @{
*/
#define ETHERNET_ETH_IMR_RF_OK_OFFS 0
#define ETHERNET_ETH_IMR_RF_OK ((uint32_t)0x00000001)
#define ETHERNET_ETH_IMR_MISSED_F_OFFS 1
#define ETHERNET_ETH_IMR_MISSED_F ((uint32_t)0x00000002)
#define ETHERNET_ETH_IMR_OVF_OFFS 2
#define ETHERNET_ETH_IMR_OVF ((uint32_t)0x00000004)
#define ETHERNET_ETH_IMR_SMB_ERR_OFFS 3
#define ETHERNET_ETH_IMR_SMB_ERR ((uint32_t)0x00000008)
#define ETHERNET_ETH_IMR_CRC_ERR_OFFS 4
#define ETHERNET_ETH_IMR_CRC_ERR ((uint32_t)0x00000010)
#define ETHERNET_ETH_IMR_CF_OFFS 5
#define ETHERNET_ETH_IMR_CF ((uint32_t)0x00000020)
#define ETHERNET_ETH_IMR_LF_OFFS 6
#define ETHERNET_ETH_IMR_LF ((uint32_t)0x00000040)
#define ETHERNET_ETH_IMR_SF_OFFS 7
#define ETHERNET_ETH_IMR_SF ((uint32_t)0x00000080)
#define ETHERNET_ETH_IMR_XF_OK_OFFS 8
#define ETHERNET_ETH_IMR_XF_OK ((uint32_t)0x00000100)
#define ETHERNET_ETH_IMR_XF_ERR_OFFS 9
#define ETHERNET_ETH_IMR_XF_ERR ((uint32_t)0x00000200)
#define ETHERNET_ETH_IMR_UNDF_OFFS 10
#define ETHERNET_ETH_IMR_UNDF ((uint32_t)0x00000400)
#define ETHERNET_ETH_IMR_LC_OFFS 11
#define ETHERNET_ETH_IMR_LC ((uint32_t)0x00000800)
#define ETHERNET_ETH_IMR_CRS_LOST_OFFS 12
#define ETHERNET_ETH_IMR_CRS_LOST ((uint32_t)0x00001000)
#define ETHERNET_ETH_IMR_MII_RDY_OFFS 15
#define ETHERNET_ETH_IMR_MII_RDY ((uint32_t)0x00008000)
/** @} */ /* End of group Periph_ETHERNET_ETHERNET_ETH_IMR_Bits */
/** @} */ /* End of group Periph_ETHERNET_Defines */
/** @defgroup Periph_ETHERNET_Defines Defines
* @{
*/
/** @defgroup Periph_ETHERNET_ETHERNET_ETH_IFR_Bits ETHERNET_ETH_IFR
* @{
*/
#define ETHERNET_ETH_IFR_RF_OK_OFFS 0
#define ETHERNET_ETH_IFR_RF_OK ((uint32_t)0x00000001)
#define ETHERNET_ETH_IFR_MISSED_F_OFFS 1
#define ETHERNET_ETH_IFR_MISSED_F ((uint32_t)0x00000002)
#define ETHERNET_ETH_IFR_OVF_OFFS 2
#define ETHERNET_ETH_IFR_OVF ((uint32_t)0x00000004)
#define ETHERNET_ETH_IFR_SMB_ERR_OFFS 3
#define ETHERNET_ETH_IFR_SMB_ERR ((uint32_t)0x00000008)
#define ETHERNET_ETH_IFR_CRC_ERR_OFFS 4
#define ETHERNET_ETH_IFR_CRC_ERR ((uint32_t)0x00000010)
#define ETHERNET_ETH_IFR_CF_OFFS 5
#define ETHERNET_ETH_IFR_CF ((uint32_t)0x00000020)
#define ETHERNET_ETH_IFR_LF_OFFS 6
#define ETHERNET_ETH_IFR_LF ((uint32_t)0x00000040)
#define ETHERNET_ETH_IFR_SF_OFFS 7
#define ETHERNET_ETH_IFR_SF ((uint32_t)0x00000080)
#define ETHERNET_ETH_IFR_XF_OK_OFFS 8
#define ETHERNET_ETH_IFR_XF_OK ((uint32_t)0x00000100)
#define ETHERNET_ETH_IFR_XF_ERR_OFFS 9
#define ETHERNET_ETH_IFR_XF_ERR ((uint32_t)0x00000200)
#define ETHERNET_ETH_IFR_UNDF_OFFS 10
#define ETHERNET_ETH_IFR_UNDF ((uint32_t)0x00000400)
#define ETHERNET_ETH_IFR_LC_OFFS 11
#define ETHERNET_ETH_IFR_LC ((uint32_t)0x00000800)
#define ETHERNET_ETH_IFR_CRS_LOST_OFFS 12
#define ETHERNET_ETH_IFR_CRS_LOST ((uint32_t)0x00001000)
#define ETHERNET_ETH_IFR_MII_RDY_OFFS 15
#define ETHERNET_ETH_IFR_MII_RDY ((uint32_t)0x00008000)
/** @} */ /* End of group Periph_ETHERNET_ETHERNET_ETH_IFR_Bits */
/** @} */ /* End of group Periph_ETHERNET_Defines */
/** @defgroup Periph_ETHERNET_Defines Defines
* @{
*/
/** @defgroup Periph_ETHERNET_ETHERNET_ETH_MDIO_CTRL_Bits ETHERNET_ETH_MDIO_CTRL
* @{
*/
#define ETHERNET_ETH_MDIO_CTRL_RG_A_OFFS 0
#define ETHERNET_ETH_MDIO_CTRL_RG_A_MASK ((uint32_t)0x0000001F)
#define ETHERNET_ETH_MDIO_CTRL_DIV_OFFS 5
#define ETHERNET_ETH_MDIO_CTRL_DIV_MASK ((uint32_t)0x000000E0)
#define ETHERNET_ETH_MDIO_CTRL_PHY_A_OFFS 8
#define ETHERNET_ETH_MDIO_CTRL_PHY_A_MASK ((uint32_t)0x00001F00)
#define ETHERNET_ETH_MDIO_CTRL_OP_OFFS 13
#define ETHERNET_ETH_MDIO_CTRL_OP ((uint32_t)0x00002000)
#define ETHERNET_ETH_MDIO_CTRL_PRE_EN_OFFS 14
#define ETHERNET_ETH_MDIO_CTRL_PRE_EN ((uint32_t)0x00004000)
/** @} */ /* End of group Periph_ETHERNET_ETHERNET_ETH_MDIO_CTRL_Bits */
/** @} */ /* End of group Periph_ETHERNET_Defines */
/** @defgroup Periph_ETHERNET_Defines Defines
* @{
*/
/** @defgroup Periph_ETHERNET_ETHERNET_ETH_BUFF_STAT_Bits ETHERNET_ETH_BUFF_STAT
* @{
*/
#define ETHERNET_ETH_Buff_Stat_R_EMPTY_OFFS 0
#define ETHERNET_ETH_Buff_Stat_R_EMPTY ((uint32_t)0x00000001)
#define ETHERNET_ETH_Buff_Stat_R_AEMPTY_OFFS 1
#define ETHERNET_ETH_Buff_Stat_R_AEMPTY ((uint32_t)0x00000002)
#define ETHERNET_ETH_Buff_Stat_R_HALF_OFFS 2
#define ETHERNET_ETH_Buff_Stat_R_HALF ((uint32_t)0x00000004)
#define ETHERNET_ETH_Buff_Stat_R_AFULL_OFFS 3
#define ETHERNET_ETH_Buff_Stat_R_AFULL ((uint32_t)0x00000008)
#define ETHERNET_ETH_Buff_Stat_R_FULL_OFFS 4
#define ETHERNET_ETH_Buff_Stat_R_FULL ((uint32_t)0x00000010)
#define ETHERNET_ETH_Buff_Stat_X_EMPTY_OFFS 8
#define ETHERNET_ETH_Buff_Stat_X_EMPTY ((uint32_t)0x00000100)
#define ETHERNET_ETH_Buff_Stat_X_AEMPTY_OFFS 9
#define ETHERNET_ETH_Buff_Stat_X_AEMPTY ((uint32_t)0x00000200)
#define ETHERNET_ETH_Buff_Stat_X_HALF_OFFS 10
#define ETHERNET_ETH_Buff_Stat_X_HALF ((uint32_t)0x00000400)
#define ETHERNET_ETH_Buff_Stat_X_AFULL_OFFS 11
#define ETHERNET_ETH_Buff_Stat_X_AFULL ((uint32_t)0x00000800)
#define ETHERNET_ETH_Buff_Stat_X_FULL_OFFS 12
#define ETHERNET_ETH_Buff_Stat_X_FULL ((uint32_t)0x00001000)
/** @} */ /* End of group Periph_ETHERNET_ETHERNET_ETH_BUFF_STAT_Bits */
/** @} */ /* End of group Periph_ETHERNET_Defines */
/** @} */ /* End of group Periph_ETHERNET */
/** @} */ /* End of group __OPORA_Peripheral_Units */
/** @} */ /* End of group __CMSIS */
#endif /* __OPORA_ETHERNET_DEFS_H */
/******************* (C) COPYRIGHT 2010 Phyton *********************************
*
* END OF FILE opora_ethernet_defs.h */