Jump to main content

##

# 1.2.5.5.2 SAM MAC (GMAC) Configurations

GMAC Specific User Configurations

- GMAC Default Configuration for Network Traffic:

  - Default configuration settings for low/medium/high network traffic
  - Default value: "Medium"
  - Symbol TCPIP_GMAC_TRAFFIC

- GMAC Queue n Tx Enable:

  - Enable this GMAC TX Queue
  - Default value: true
  - Symbol TCPIP_GMAC_TX_EN_QUEn

- GMAC Queue n Rx Enable:

  - Enable this GMAC RX Queue
  - Default value: true
  - Symbol TCPIP_GMAC_RX_EN_QUEn

- Number of Tx Descriptors:

  - Number of the TX descriptors to be created for this queue.
  - The amount of memory needed per descriptor is not high so when high GMAC TX performance is needed make sure that this number is >= 8.
  - Default value: 8
  - Symbol TCPIP_GMAC_TX_DESCRIPTORS_COUNT_QUEn

- Max Tx Packet size supported:

  - Maximum size of a TX packet for this queue
  - Note: Transmit packet size for this queue should be less than this limit!
  - Default value: 1536
  - Symbol TCPIP_GMAC_MAX_TX_PKT_SIZE_QUEn

- Number of Rx Descriptors:

  - Number of the RX descriptors to be created for this queue
  - Default value: 8
  - Symbol TCPIP_GMAC_RX_DESCRIPTORS_COUNT_QUEn

- Number of Dedicated MAC RX Buffers:

  - Number of GMAC dedicated RX packet buffers for this queue.
  - These buffers are always owned by the GMAC.
  - Note that the GMAC driver allocates these buffers for storing the incoming network packets.
  - The bigger the storage capacity, the higher data throughput can be obtained.
  - Note that these packet buffers are allocated from the private TCP/IP heap that is specified by the TCPIP_STACK_DRAM_SIZE setting.
  - Default value: 8
  - Symbol TCPIP_GMAC_RX_DEDICATED_BUFFERS_QUEn

- Size of RX Buffer (multiple of 64):

  - Size of a RX packet buffer for this queue. Should be multiple of 64.
  - The size should be enough to accommodate any network received packet.
  - If the packets are larger, they will have to take multiple RX buffers and the packet manipulation is less efficient.
  - Default value: 1536
  - Symbol TCPIP_GMAC_RX_BUFF_SIZE_QUEn

- Number of additional Rx buffers:

  - Number of additional (sticky) buffers for this queue
  - Buffers allocated at the GMAC driver initialization.
  - Default value: 2
  - Symbol TCPIP_GMAC_RX_ADDL_BUFF_COUNT_QUEn

- Minimum Threshold for Rx Buffer replenish process:

  - Minumum threshold for the buffer replenish process for this queue.
  - Whenever the number of RX scheduled buffers is <= than this threshold the GMAC driver will allocate new non-dedicated buffers (meaning that they will be released to the TCP/IP heap once they are processed).
  - Setting this value to 0 disables the buffer replenishing process.
  - Default value: 1
  - Symbol TCPIP_GMAC_RX_BUFF_COUNT_THRESHOLD_QUEn

- Rx Buffer allocate count during replenish process:

  - Number of RX buffers to allocate when below threshold condition is detected for this queue.
  - If 0, the GMAC driver will allocate (scheduled buffers - rxThres)
  - If !0, the GMAC driver will allocate exactly TCPIP_GMAC_RX_BUFF_ALLOC_COUNT_QUEn buffers
  - Default value: 2
  - Symbol TCPIP_GMAC_RX_BUFF_ALLOC_COUNT_QUEn

- Ethernet RX Filters Selection:

  - GMAC RX Filters
  - These filters define the packets that are accepted and rejected by the GMAC driver
  - Adjust to your needs
  - The default value allows the processing of unicast, multicast and broadcast packets that have a valid CRC
  - Default value: none
  - Symbol TCPIP_GMAC_RX_FILTERS

- Accept Broadcast Packets:

  - Allow the receiving of broadcast packets
  - Default value: true
  - Symbol TCPIP_GMAC_ETH_FILTER_BCAST_ACCEPT, TCPIP_GMAC_RX_FILTERS

- Accept Multicast Packets:

  - Allow the receiving of multicast packets
  - Default value: true
  - Symbol TCPIP_GMAC_ETH_FILTER_MCAST_ACCEPT, TCPIP_GMAC_RX_FILTERS

- Accept Unicast Packets:

  - Allow the receiving of unicast packets
  - Default value: true
  - Symbol TCPIP_GMAC_ETH_FILTER_UCAST_ACCEPT, TCPIP_GMAC_RX_FILTERS

- Accept All Packets (Promiscuous Mode):

  - Allow the receiving of not me unicast packets (promiscuous mode)
  - Default value: false
  - Symbol TCPIP_GMAC_ETH_FILTER_ALL_ACCEPT, TCPIP_GMAC_RX_FILTERS

- Use Auto Negotiation:

  - Use auto-negotiation to select the link speed and duplex
  - Default value: true
  - Symbol TCPIP_GMAC_ETH_OF_AUTO_NEGOTIATION

- Use Full Duplex:

  - Use/Advertise full-duplex on the link
  - Default value: true
  - Symbol TCPIP_GMAC_ETH_OF_FULL_DUPLEX

- Use Half Duplex:

  - Use/Advertise half-duplex on the link
  - Default value: true
  - Symbol TCPIP_GMAC_ETH_OF_HALF_DUPLEX

- Use 100MBps:

  - Use/Advertise 100 Mbps on the link
  - Default value: true
  - Symbol TCPIP_GMAC_ETH_OF_100

- Use 10MBps:

  - Use/Advertise 10 Mbps on the link
  - Default value: true
  - Symbol TCPIP_GMAC_ETH_OF_10

- Use Auto MDIX:

  - Use Auto MDIX on the link
  - Default value: true
  - Symbol TCPIP_GMAC_ETH_OF_MDIX_AUTO

- Use Swapped MDIX:

  - Swap the MDIX wires
  - Default value: false
  - Symbol TCPIP_GMAC_ETH_OF_MDIX_SWAP

- RMII Connection:

  - Use RMII GMAC <-> PHY connection (otherwise MII)
  - Default value: true
  - Symbol TCPIP_GMAC_ETH_OF_RMII

- GMAC Priority Queues:

  - Number of GMAC priority queues
  - Default value: processor dependant
  - Symbol TCPIP_GMAC_PRIORITY_QUEUES

- Number of Tx Priority Queues Enabled:

  - Current number of Tx Priority Queues Enabled
  - Default value: 1
  - Symbol TCPIP_GMAC_TX_PRIO_COUNT

- Number of Rx Priority Queues Enabled:

  - Current number of Rx Priority Queues Enabled
  - Default value: 1
  - Symbol TCPIP_GMAC_RX_PRIO_COUNT

- Accept Multicast Packets matching Hash:

  - Enable GMAC multicast Hash RX filter
  - Default value: false
  - Symbol TCPIP_GMAC_ETH_FILTER_MCAST_HASH_ACCEPT

- Accept Unicast Packets matching Hash:

  - Enable GMAC unicast Hash RX filter
  - Default value: false
  - Symbol TCPIP_GMAC_ETH_FILTER_UCAST_HASH_ACCEPT

- Reject Packets with Wrong CRC:

  - The GMAC RX should reject packets with wrong CRC
  - Default value: true
  - Symbol TCPIP_GMAC_ETH_FILTER_CRC_ERROR_REJECT, TCPIP_GMAC_RX_FILTERS

- Accept Packets with Wrong CRC:

  - The GMAC RX should Accept packets with wrong CRC
  - Default value: false
  - Symbol TCPIP_GMAC_ETH_FILTER_CRC_ERROR_ACCEPT, TCPIP_GMAC_RX_FILTERS

- Accept Packets with Maximum Frame Size(1536 bytes):

  - The GMAC should accept maximum size frame packets
  - Default value: false
  - Symbol TCPIP_GMAC_ETH_FILTER_MAX_FRAME_ACCEPT

- Accept Packets with Frame Error:

  - The GMAC should accept packets with frame error
  - Default value: false
  - Symbol TCPIP_GMAC_ETH_FILTER_FRAME_ERROR_ACCEPT

- Accept Jumbo Packets (upto 10240 bytes):

  - Allow the transfer of huge/jumbo packets
  - Default value: false
  - Symbol TCPIP_GMAC_ETH_FILTER_JUMBO_FRAME_ACCEPT

- Advanced Rx Queue Filters:

  - Enable GMAC Advanced Rx Queue Filters
  - Default value: false
  - Symbol TCPIP_GMAC_RX_QUE_FILTER_EN

- Allow Huge Packets:

  - Allow the transfer of huge/jumbo packets
  - Default value: false
  - Symbol TCPIP_GMAC_ETH_OF_HUGE_PKTS

- Loopbacked At The MAC Level:

  - Enable GMAC loopback
  - Default value: false
  - Symbol TCPIP_GMAC_ETH_OF_MAC_LOOPBACK

- Loopbacked At The PHY Level:

  - Enable PHY loopback
  - Default value: false
  - Symbol TCPIP_GMAC_ETH_OF_PHY_LOOPBACK

- Enable Rx Checksum Offload:

  - Enable RX checksum calculation by GMAC
  - Default value: false
  - Symbol DRV_GMAC_RX_CHKSM_OFFLOAD

- Enable Tx Checksum Offload:

  - Enable TX checksum calculation by GMAC
  - Default value: false
  - Symbol DRV_GMAC_TX_CHKSM_OFFLOAD

- RX Frame Maximum Size:

  - Maximum GMAC supported RX frame size.
  - The default value is 1536 (allows for VLAN tagged frames, although the VLAN tagged frames are discarded on RX).
  - On RX: any incoming ETH frame that is longer than this size will be discarded.
  - On TX: any frame that is longer than this size will be aborted by the GMAC.
  - Normally there is no need to touch this value unless you know exactly the maximum size of the frames you want to process on your network.
  - Notes:
    - Always multiple of 16.
  - Default value: 1536
  - Symbol TCPIP_GMAC_RX_MAX_FRAME

- Maximum Number of Fragments:

  - GMAC maximum number of supported RX fragments.
  - Note that excessive fragmentation leads to performance degradation.
  - The default and recommended value should be 1.
  - Default value: 1
  - Symbol TCPIP_EMAC_RX_FRAGMENTS

- GMAC Module ID:

  - The ID of the GMAC module
  - Default value: "GMAC_BASE_ADDRESS"
  - Symbol TCPIP_INTMAC_MODULE_ID

- External PHY Connected to MAC:

  - The external PHY connected to the GMAC device
  - Default value: "Not Connected"
  - Symbol DRV_INTMAC_PHY_TYPE

- Non-Cacheable Memory Region for GMAC Descriptors:

  - Create a non-cacheable memory region in data memory
  - Default value: true
  - Symbol DRV_GMAC_NO_CACHE_CONFIG

- Non-Cacheable Memory Size:

  - The size of the region to be created
  - Default value: 32 B - 32 KB
  - Symbol DRV_GMAC_NOCACHE_REGION_SIZE

- Start Address of Non-Cacheable Memory:

  - The start address of the non cacheable region
  - Note: Start Address must be aligned to Memory Size
  - Default value: 0x2045F000 (SAME54, E70, etc.)
  - Symbol DRV_GMAC_NOCACHE_MEM_ADDRESS

- GMAC Heap Size (bytes):

  - Estimation of the heap size taken by the GMAC driver
  - Default value: none
  - Symbol DRV_GMAC_HEAP_SIZE