Altera SoCAL  16.0
The Altera SoC Abstraction Layer (SoCAL) API Reference Manual
 All Data Structures Variables Typedefs Groups
Register : Register 353 (VLAN Tag Inclusion or Replacement Register) - VLAN_Incl_Reg

Description

The VLAN Tag Inclusion or Replacement register contains the VLAN tag for insertion or replacement in the transmit frames.

Register Layout

Bits Access Reset Description
[15:0] RW Unknown VLAN Tag for Transmit Frames
[17:16] RW Unknown VLAN Tag Control in Transmit Frames
[18] RW Unknown VLAN Priority Control
[19] RW Unknown C-VLAN or S-VLAN
[31:20] ??? 0x0 UNDEFINED

Field : VLAN Tag for Transmit Frames - vlt

This field contains the value of the VLAN tag to be inserted or replaced. The value must only be changed when the transmit lines are inactive or during the initialization phase. Bits[15:13] are the User Priority, Bit 12 is the CFI/DEI, and Bits[11:0] are the VLAN tag's VID field.

Field Access Macros:

#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLT_LSB   0
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLT_MSB   15
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLT_WIDTH   16
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLT_SET_MSK   0x0000ffff
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLT_CLR_MSK   0xffff0000
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLT_RESET   0x0
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLT_GET(value)   (((value) & 0x0000ffff) >> 0)
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLT_SET(value)   (((value) << 0) & 0x0000ffff)
 

Field : VLAN Tag Control in Transmit Frames - vlc

  • 2'b00: No VLAN tag deletion, insertion, or replacement
  • 2'b01: VLAN tag deletion

The MAC removes the VLAN type (bytes 13 and 14) and VLAN tag (bytes 15 and 16) of all transmitted frames with VLAN tags.

  • 2'b10: VLAN tag insertion

The MAC inserts VLT in bytes 15 and 16 of the frame after inserting the Type value (0x8100/0x88a8) in bytes 13 and 14. This operation is performed on all transmitted frames, irrespective of whether they already have a VLAN tag.

  • 2'b11: VLAN tag replacement

The MAC replaces VLT in bytes 15 and 16 of all VLAN-type transmitted frames (Bytes 13 and 14 are 0x8100/0x88a8).

Note: Changes to this field take effect only on the start of a frame. If you write this register field when a frame is being transmitted, only the subsequent frame can use the updated value, that is, the current frame does not use the updated value.

Field Access Macros:

#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLC_LSB   16
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLC_MSB   17
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLC_WIDTH   2
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLC_SET_MSK   0x00030000
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLC_CLR_MSK   0xfffcffff
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLC_RESET   0x0
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLC_GET(value)   (((value) & 0x00030000) >> 16)
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLC_SET(value)   (((value) << 16) & 0x00030000)
 

Field : VLAN Priority Control - vlp

When this bit is set, the control Bits [17:16] are used for VLAN deletion, insertion, or replacement. When this bit is reset, the mti_vlan_ctrl_i control input is used, and Bits [17:16] are ignored.

Field Access Macros:

#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLP_LSB   18
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLP_MSB   18
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLP_WIDTH   1
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLP_SET_MSK   0x00040000
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLP_CLR_MSK   0xfffbffff
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLP_RESET   0x0
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLP_GET(value)   (((value) & 0x00040000) >> 18)
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLP_SET(value)   (((value) << 18) & 0x00040000)
 

Field : C-VLAN or S-VLAN - csvl

When this bit is set, S-VLAN type (0x88A8) is inserted or replaced in the 13th and 14th bytes of transmitted frames. When this bit is reset, C-VLAN type (0x8100) is inserted or replaced in the transmitted frames.

Field Access Macros:

#define ALT_EMAC_GMAC_VLAN_INCL_REG_CSVL_LSB   19
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_CSVL_MSB   19
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_CSVL_WIDTH   1
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_CSVL_SET_MSK   0x00080000
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_CSVL_CLR_MSK   0xfff7ffff
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_CSVL_RESET   0x0
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_CSVL_GET(value)   (((value) & 0x00080000) >> 19)
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_CSVL_SET(value)   (((value) << 19) & 0x00080000)
 

Data Structures

struct  ALT_EMAC_GMAC_VLAN_INCL_REG_s
 

Macros

#define ALT_EMAC_GMAC_VLAN_INCL_REG_OFST   0x584
 
#define ALT_EMAC_GMAC_VLAN_INCL_REG_ADDR(base)   ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_EMAC_GMAC_VLAN_INCL_REG_OFST))
 

Typedefs

typedef struct
ALT_EMAC_GMAC_VLAN_INCL_REG_s 
ALT_EMAC_GMAC_VLAN_INCL_REG_t
 

Data Structure Documentation

struct ALT_EMAC_GMAC_VLAN_INCL_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_INCL_REG.

Data Fields
uint32_t vlt: 16 VLAN Tag for Transmit Frames
uint32_t vlc: 2 VLAN Tag Control in Transmit Frames
uint32_t vlp: 1 VLAN Priority Control
uint32_t csvl: 1 C-VLAN or S-VLAN
uint32_t __pad0__: 12 UNDEFINED

Macro Definitions

#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLT_LSB   0

The Least Significant Bit (LSB) position of the ALT_EMAC_GMAC_VLAN_INCL_REG_VLT register field.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLT_MSB   15

The Most Significant Bit (MSB) position of the ALT_EMAC_GMAC_VLAN_INCL_REG_VLT register field.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLT_WIDTH   16

The width in bits of the ALT_EMAC_GMAC_VLAN_INCL_REG_VLT register field.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLT_SET_MSK   0x0000ffff

The mask used to set the ALT_EMAC_GMAC_VLAN_INCL_REG_VLT register field value.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLT_CLR_MSK   0xffff0000

The mask used to clear the ALT_EMAC_GMAC_VLAN_INCL_REG_VLT register field value.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLT_RESET   0x0

The reset value of the ALT_EMAC_GMAC_VLAN_INCL_REG_VLT register field is UNKNOWN.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLT_GET (   value)    (((value) & 0x0000ffff) >> 0)

Extracts the ALT_EMAC_GMAC_VLAN_INCL_REG_VLT field value from a register.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLT_SET (   value)    (((value) << 0) & 0x0000ffff)

Produces a ALT_EMAC_GMAC_VLAN_INCL_REG_VLT register field value suitable for setting the register.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLC_LSB   16

The Least Significant Bit (LSB) position of the ALT_EMAC_GMAC_VLAN_INCL_REG_VLC register field.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLC_MSB   17

The Most Significant Bit (MSB) position of the ALT_EMAC_GMAC_VLAN_INCL_REG_VLC register field.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLC_WIDTH   2

The width in bits of the ALT_EMAC_GMAC_VLAN_INCL_REG_VLC register field.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLC_SET_MSK   0x00030000

The mask used to set the ALT_EMAC_GMAC_VLAN_INCL_REG_VLC register field value.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLC_CLR_MSK   0xfffcffff

The mask used to clear the ALT_EMAC_GMAC_VLAN_INCL_REG_VLC register field value.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLC_RESET   0x0

The reset value of the ALT_EMAC_GMAC_VLAN_INCL_REG_VLC register field is UNKNOWN.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLC_GET (   value)    (((value) & 0x00030000) >> 16)

Extracts the ALT_EMAC_GMAC_VLAN_INCL_REG_VLC field value from a register.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLC_SET (   value)    (((value) << 16) & 0x00030000)

Produces a ALT_EMAC_GMAC_VLAN_INCL_REG_VLC register field value suitable for setting the register.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLP_LSB   18

The Least Significant Bit (LSB) position of the ALT_EMAC_GMAC_VLAN_INCL_REG_VLP register field.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLP_MSB   18

The Most Significant Bit (MSB) position of the ALT_EMAC_GMAC_VLAN_INCL_REG_VLP register field.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLP_WIDTH   1

The width in bits of the ALT_EMAC_GMAC_VLAN_INCL_REG_VLP register field.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLP_SET_MSK   0x00040000

The mask used to set the ALT_EMAC_GMAC_VLAN_INCL_REG_VLP register field value.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLP_CLR_MSK   0xfffbffff

The mask used to clear the ALT_EMAC_GMAC_VLAN_INCL_REG_VLP register field value.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLP_RESET   0x0

The reset value of the ALT_EMAC_GMAC_VLAN_INCL_REG_VLP register field is UNKNOWN.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLP_GET (   value)    (((value) & 0x00040000) >> 18)

Extracts the ALT_EMAC_GMAC_VLAN_INCL_REG_VLP field value from a register.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_VLP_SET (   value)    (((value) << 18) & 0x00040000)

Produces a ALT_EMAC_GMAC_VLAN_INCL_REG_VLP register field value suitable for setting the register.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_CSVL_LSB   19

The Least Significant Bit (LSB) position of the ALT_EMAC_GMAC_VLAN_INCL_REG_CSVL register field.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_CSVL_MSB   19

The Most Significant Bit (MSB) position of the ALT_EMAC_GMAC_VLAN_INCL_REG_CSVL register field.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_CSVL_WIDTH   1

The width in bits of the ALT_EMAC_GMAC_VLAN_INCL_REG_CSVL register field.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_CSVL_SET_MSK   0x00080000

The mask used to set the ALT_EMAC_GMAC_VLAN_INCL_REG_CSVL register field value.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_CSVL_CLR_MSK   0xfff7ffff

The mask used to clear the ALT_EMAC_GMAC_VLAN_INCL_REG_CSVL register field value.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_CSVL_RESET   0x0

The reset value of the ALT_EMAC_GMAC_VLAN_INCL_REG_CSVL register field is UNKNOWN.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_CSVL_GET (   value)    (((value) & 0x00080000) >> 19)

Extracts the ALT_EMAC_GMAC_VLAN_INCL_REG_CSVL field value from a register.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_CSVL_SET (   value)    (((value) << 19) & 0x00080000)

Produces a ALT_EMAC_GMAC_VLAN_INCL_REG_CSVL register field value suitable for setting the register.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_OFST   0x584

The byte offset of the ALT_EMAC_GMAC_VLAN_INCL_REG register from the beginning of the component.

#define ALT_EMAC_GMAC_VLAN_INCL_REG_ADDR (   base)    ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_EMAC_GMAC_VLAN_INCL_REG_OFST))

The address of the ALT_EMAC_GMAC_VLAN_INCL_REG register.

Typedef Documentation

The typedef declaration for register ALT_EMAC_GMAC_VLAN_INCL_REG.