![]() |
Altera SoCAL
16.0
The Altera SoC Abstraction Layer (SoCAL) API Reference Manual
|
The 16-bit Hash table is used for group address filtering based on VLAN tag when Bit 18 (VTHM) of Register 7 (VLAN Tag Register) is set. For hash filtering, the content of the 16-bit VLAN tag or 12-bit VLAN ID (based on Bit 16 (ETV) of VLAN Tag Register) in the incoming frame is passed through the CRC logic and the upper four bits of the calculated CRC are used to index the contents of the VLAN Hash table. For example, a hash value of 4b'1000 selects Bit 8 of the VLAN Hash table.
The hash value of the destination address is calculated in the following way:
If the corresponding bit value of the register is 1'b1, the frame is accepted. Otherwise, it is rejected. Because the Hash Table register is double- synchronized to the (G)MII clock domain, the synchronization is triggered only when Bits[15:8] (in little-endian mode) or Bits[7:0] (in big-endian mode) of this register are written.
Notes:
Register Layout
Bits | Access | Reset | Description |
---|---|---|---|
[15:0] | RW | 0x0 | VLAN Hash Table |
[31:16] | ??? | 0x0 | UNDEFINED |
Field : VLAN Hash Table - vlht | |
This field contains the 16-bit VLAN Hash Table. Field Access Macros: | |
#define | ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_VLHT_LSB 0 |
#define | ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_VLHT_MSB 15 |
#define | ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_VLHT_WIDTH 16 |
#define | ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_VLHT_SET_MSK 0x0000ffff |
#define | ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_VLHT_CLR_MSK 0xffff0000 |
#define | ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_VLHT_RESET 0x0 |
#define | ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_VLHT_GET(value) (((value) & 0x0000ffff) >> 0) |
#define | ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_VLHT_SET(value) (((value) << 0) & 0x0000ffff) |
Data Structures | |
struct | ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_s |
Macros | |
#define | ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_OFST 0x588 |
#define | ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_OFST)) |
Typedefs | |
typedef struct ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_s | ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_t |
struct ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_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_VLAN_HASH_TABLE_REG.
Data Fields | ||
---|---|---|
uint32_t | vlht: 16 | VLAN Hash Table |
uint32_t | __pad0__: 16 | UNDEFINED |
#define ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_VLHT_LSB 0 |
The Least Significant Bit (LSB) position of the ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_VLHT register field.
#define ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_VLHT_MSB 15 |
The Most Significant Bit (MSB) position of the ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_VLHT register field.
#define ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_VLHT_WIDTH 16 |
The width in bits of the ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_VLHT register field.
#define ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_VLHT_SET_MSK 0x0000ffff |
The mask used to set the ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_VLHT register field value.
#define ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_VLHT_CLR_MSK 0xffff0000 |
The mask used to clear the ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_VLHT register field value.
#define ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_VLHT_RESET 0x0 |
The reset value of the ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_VLHT register field.
#define ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_VLHT_GET | ( | value | ) | (((value) & 0x0000ffff) >> 0) |
Extracts the ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_VLHT field value from a register.
#define ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_VLHT_SET | ( | value | ) | (((value) << 0) & 0x0000ffff) |
Produces a ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_VLHT register field value suitable for setting the register.
#define ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_OFST 0x588 |
The byte offset of the ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG register from the beginning of the component.
#define ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_ADDR | ( | base | ) | ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG_OFST)) |
The address of the ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG register.
The typedef declaration for register ALT_EMAC_GMAC_VLAN_HASH_TABLE_REG.