![]() |
Altera SoCAL
16.0
The Altera SoC Abstraction Layer (SoCAL) API Reference Manual
|
The MAC Address0 High register holds the upper 16 bits of the first 6-byte MAC address of the station. The first DA byte that is received on the (G)MII interface corresponds to the LS byte (Bits [7:0]) of the MAC Address Low register. For example, if 0x112233445566 is received (0x11 in lane 0 of the first column) on the (G)MII as the destination address, then the MacAddress0 Register [47:0] is compared with 0x665544332211.
Because the MAC address registers are double-synchronized to the (G)MII clock domains, then the synchronization is triggered only when Bits[31:24] (in little- endian mode) or Bits[7:0] (in big-endian mode) of the MAC Address0 Low Register are written. For proper synchronization updates, the consecutive writes to this Address Low Register should be performed after at least four clock cycles in the destination clock domain.
Register Layout
Bits | Access | Reset | Description |
---|---|---|---|
[15:0] | RW | 0xffff | MAC Address0 [47:32] |
[30:16] | ??? | 0x0 | UNDEFINED |
[31] | R | 0x1 | Address Enable |
Field : MAC Address0 [47:32] - addrhi | |
This field contains the upper 16 bits (47:32) of the first 6-byte MAC address. The MAC uses this field for filtering the received frames and inserting the MAC address in the Transmit Flow Control (PAUSE) Frames. Field Access Macros: | |
#define | ALT_EMAC_GMAC_MAC_ADDR0_HIGH_ADDRHI_LSB 0 |
#define | ALT_EMAC_GMAC_MAC_ADDR0_HIGH_ADDRHI_MSB 15 |
#define | ALT_EMAC_GMAC_MAC_ADDR0_HIGH_ADDRHI_WIDTH 16 |
#define | ALT_EMAC_GMAC_MAC_ADDR0_HIGH_ADDRHI_SET_MSK 0x0000ffff |
#define | ALT_EMAC_GMAC_MAC_ADDR0_HIGH_ADDRHI_CLR_MSK 0xffff0000 |
#define | ALT_EMAC_GMAC_MAC_ADDR0_HIGH_ADDRHI_RESET 0xffff |
#define | ALT_EMAC_GMAC_MAC_ADDR0_HIGH_ADDRHI_GET(value) (((value) & 0x0000ffff) >> 0) |
#define | ALT_EMAC_GMAC_MAC_ADDR0_HIGH_ADDRHI_SET(value) (((value) << 0) & 0x0000ffff) |
Field : Address Enable - ae | |
This bit is always set to 1. Field Access Macros: | |
#define | ALT_EMAC_GMAC_MAC_ADDR0_HIGH_AE_LSB 31 |
#define | ALT_EMAC_GMAC_MAC_ADDR0_HIGH_AE_MSB 31 |
#define | ALT_EMAC_GMAC_MAC_ADDR0_HIGH_AE_WIDTH 1 |
#define | ALT_EMAC_GMAC_MAC_ADDR0_HIGH_AE_SET_MSK 0x80000000 |
#define | ALT_EMAC_GMAC_MAC_ADDR0_HIGH_AE_CLR_MSK 0x7fffffff |
#define | ALT_EMAC_GMAC_MAC_ADDR0_HIGH_AE_RESET 0x1 |
#define | ALT_EMAC_GMAC_MAC_ADDR0_HIGH_AE_GET(value) (((value) & 0x80000000) >> 31) |
#define | ALT_EMAC_GMAC_MAC_ADDR0_HIGH_AE_SET(value) (((value) << 31) & 0x80000000) |
Data Structures | |
struct | ALT_EMAC_GMAC_MAC_ADDR0_HIGH_s |
Macros | |
#define | ALT_EMAC_GMAC_MAC_ADDR0_HIGH_OFST 0x40 |
#define | ALT_EMAC_GMAC_MAC_ADDR0_HIGH_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_EMAC_GMAC_MAC_ADDR0_HIGH_OFST)) |
Typedefs | |
typedef struct ALT_EMAC_GMAC_MAC_ADDR0_HIGH_s | ALT_EMAC_GMAC_MAC_ADDR0_HIGH_t |
struct ALT_EMAC_GMAC_MAC_ADDR0_HIGH_s |
WARNING: The C register and register group struct declarations are provided for convenience and illustrative purposes. They should, however, be used with caution as the C language standard provides no guarantees about the alignment or atomicity of device memory accesses. The recommended practice for writing hardware drivers is to use the SoCAL access macros and alt_read_word() and alt_write_word() functions.
The struct declaration for register ALT_EMAC_GMAC_MAC_ADDR0_HIGH.
Data Fields | ||
---|---|---|
uint32_t | addrhi: 16 | MAC Address0 [47:32] |
uint32_t | __pad0__: 15 | UNDEFINED |
const uint32_t | ae: 1 | Address Enable |
#define ALT_EMAC_GMAC_MAC_ADDR0_HIGH_ADDRHI_LSB 0 |
The Least Significant Bit (LSB) position of the ALT_EMAC_GMAC_MAC_ADDR0_HIGH_ADDRHI register field.
#define ALT_EMAC_GMAC_MAC_ADDR0_HIGH_ADDRHI_MSB 15 |
The Most Significant Bit (MSB) position of the ALT_EMAC_GMAC_MAC_ADDR0_HIGH_ADDRHI register field.
#define ALT_EMAC_GMAC_MAC_ADDR0_HIGH_ADDRHI_WIDTH 16 |
The width in bits of the ALT_EMAC_GMAC_MAC_ADDR0_HIGH_ADDRHI register field.
#define ALT_EMAC_GMAC_MAC_ADDR0_HIGH_ADDRHI_SET_MSK 0x0000ffff |
The mask used to set the ALT_EMAC_GMAC_MAC_ADDR0_HIGH_ADDRHI register field value.
#define ALT_EMAC_GMAC_MAC_ADDR0_HIGH_ADDRHI_CLR_MSK 0xffff0000 |
The mask used to clear the ALT_EMAC_GMAC_MAC_ADDR0_HIGH_ADDRHI register field value.
#define ALT_EMAC_GMAC_MAC_ADDR0_HIGH_ADDRHI_RESET 0xffff |
The reset value of the ALT_EMAC_GMAC_MAC_ADDR0_HIGH_ADDRHI register field.
#define ALT_EMAC_GMAC_MAC_ADDR0_HIGH_ADDRHI_GET | ( | value | ) | (((value) & 0x0000ffff) >> 0) |
Extracts the ALT_EMAC_GMAC_MAC_ADDR0_HIGH_ADDRHI field value from a register.
#define ALT_EMAC_GMAC_MAC_ADDR0_HIGH_ADDRHI_SET | ( | value | ) | (((value) << 0) & 0x0000ffff) |
Produces a ALT_EMAC_GMAC_MAC_ADDR0_HIGH_ADDRHI register field value suitable for setting the register.
#define ALT_EMAC_GMAC_MAC_ADDR0_HIGH_AE_LSB 31 |
The Least Significant Bit (LSB) position of the ALT_EMAC_GMAC_MAC_ADDR0_HIGH_AE register field.
#define ALT_EMAC_GMAC_MAC_ADDR0_HIGH_AE_MSB 31 |
The Most Significant Bit (MSB) position of the ALT_EMAC_GMAC_MAC_ADDR0_HIGH_AE register field.
#define ALT_EMAC_GMAC_MAC_ADDR0_HIGH_AE_WIDTH 1 |
The width in bits of the ALT_EMAC_GMAC_MAC_ADDR0_HIGH_AE register field.
#define ALT_EMAC_GMAC_MAC_ADDR0_HIGH_AE_SET_MSK 0x80000000 |
The mask used to set the ALT_EMAC_GMAC_MAC_ADDR0_HIGH_AE register field value.
#define ALT_EMAC_GMAC_MAC_ADDR0_HIGH_AE_CLR_MSK 0x7fffffff |
The mask used to clear the ALT_EMAC_GMAC_MAC_ADDR0_HIGH_AE register field value.
#define ALT_EMAC_GMAC_MAC_ADDR0_HIGH_AE_RESET 0x1 |
The reset value of the ALT_EMAC_GMAC_MAC_ADDR0_HIGH_AE register field.
#define ALT_EMAC_GMAC_MAC_ADDR0_HIGH_AE_GET | ( | value | ) | (((value) & 0x80000000) >> 31) |
Extracts the ALT_EMAC_GMAC_MAC_ADDR0_HIGH_AE field value from a register.
#define ALT_EMAC_GMAC_MAC_ADDR0_HIGH_AE_SET | ( | value | ) | (((value) << 31) & 0x80000000) |
Produces a ALT_EMAC_GMAC_MAC_ADDR0_HIGH_AE register field value suitable for setting the register.
#define ALT_EMAC_GMAC_MAC_ADDR0_HIGH_OFST 0x40 |
The byte offset of the ALT_EMAC_GMAC_MAC_ADDR0_HIGH register from the beginning of the component.
#define ALT_EMAC_GMAC_MAC_ADDR0_HIGH_ADDR | ( | base | ) | ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_EMAC_GMAC_MAC_ADDR0_HIGH_OFST)) |
The address of the ALT_EMAC_GMAC_MAC_ADDR0_HIGH register.
typedef struct ALT_EMAC_GMAC_MAC_ADDR0_HIGH_s ALT_EMAC_GMAC_MAC_ADDR0_HIGH_t |
The typedef declaration for register ALT_EMAC_GMAC_MAC_ADDR0_HIGH.