#
# Copyright (c) 2021, Weidmueller Interface GmbH & Co. KG
# SPDX-License-Identifier: Apache-2.0
#

description: Xilinx GEM Ethernet controller

compatible: "xlnx,gem"

include: ethernet.yaml

properties:
  reg:
    required: true

  interrupts:
    required: true

  clock-frequency:
    type: int
    required: true
    description: |
      Specifies the base clock frequency from which the GEM's TX clock
      frequency will be derived using two dividers in the respective GEM's
      clock control register in the CRL_APB. The GEM's TX clock frequency
      is determined by the current link speed reported by the PHY, to
      which it will be adjusted at run-time. Therefore, the value of this
      item must be set to the clock frequency of the PLL supplying the
      respective GEM's TX clock - by default, this is the IO PLL.

  mdc-divider:
    type: int
    required: true
    description: |
      The MDC clock divider for the respective GEM. This is the divider
      applied to the LPD_LSBUS clock in order to derive MDIO interface
      clock driving communications with the attached PHY. Refer to the
      ZynqMP register documentation (ug1087), network_config (GEM) Register
      Description, bits [20:18] to determine the appropriate divider for
      the current target's LPD LSBUS clock frequency.

  init-mdio-phy:
    type: boolean
    description: |
      Activates the management of a PHY associated with the controller in-
      stance. If this parameter is activated at the board level, the de-
      fault values of the associated parameters mdio-phy-address, phy-poll-
      interval, link-speed and advertise-lower-link-speeds should be checked
      and overwritten at the board level if required.

  mdio-phy-address:
    type: int
    required: true
    description: |
      The address on the MDIO bus of the PHY associated with the controller
      instance. Set the address to 0 for auto-detection (first responding
      PHY will be claimed by the driver, watch out in case of shared MDIO
      use), or to a fixed address between 1 and 32.

  phy-poll-interval:
    type: int
    required: true
    description: |
      PHY status polling interval in milliseconds for a driver instance
      managing an associated PHY.

  link-speed:
    type: int
    required: true
    description: |
      Nominal link speed. If no PHY is managed by an instance of this driver,
      the respective controller will be configured to match the link speed
      specified here. If a PHY is managed by the driver, advertisement of
      the link speed specified here will be requested. If the optional pro-
      perty advertise-lower-link-speeds is set, advertisement of the link
      speed specified here plus any valid link speed below this value will
      be requested.
    enum:
      - 1
      - 2
      - 3

  advertise-lower-link-speeds:
    type: boolean
    description: |
      Indicates to a driver instance which manages an associated PHY on
      the MDIO bus to include link speeds lower than the nominal value
      set in the link-speed property in the advertisement when requesting
      link speed auto-negotiation with a peer system.

  handle-rx-in-isr:
    type: boolean
    description: |
      Moves the handling of the frame received interrupt including the
      transfer of packet data from the DMA to network packet buffers and
      the subsequent propagation of the received packets to the network
      stack into the context of the ISR. Due to the unpredictability of
      the runtime of the ISR whenever large amounts of data are received,
      handling of the RX interrupt is normally deferred to the context
      of the system work queue.

  handle-tx-in-workq:
    type: boolean
    description: |
      Moves the handling of the frame transmission done interrupt into the
      context of the system work queue. By default, TX done handling is per-
      formed in the context of the ISR, as it only involves a limited number
      of memory accesses. This option CAN NOT be used if any component ex-
      ists within the current system setup that triggers the transmission
      of packets from within the context of the system work queue!

  amba-ahb-dbus-width:
    type: int
    required: true
    description: AMBA AHB data bus width.
    enum:
      - 0
      - 1
      - 2

  amba-ahb-burst-length:
    type: int
    required: true
    description: AMBA AHB burst length for DMA operations.
    enum:
      - 1
      - 4
      - 8
      - 16

  hw-rx-buffer-size:
    type: int
    required: true
    description: |
      Hardware RX buffer size, scalable between 1 kB and 8 kB, where the full
      8 kB should be the default.
    enum:
      - 0
      - 1
      - 2
      - 3

  hw-rx-buffer-offset:
    type: int
    required: true
    description: |
      Data offset in the hardware RX packet buffer (in bytes). Valid range is
      0-3 bytes.

  hw-tx-buffer-size-full:
    type: boolean
    description: |
      When set, the hardware TX data buffer will make use of the full 4 kB
      that are available. If unset, the hardware TX data buffer will be
      limited to 2 kB.

  rx-buffer-descriptors:
    type: int
    required: true
    description: |
      The number of descriptors to be allocated in the RX buffer descriptor
      ring. Must be <= 255.

  rx-buffer-size:
    type: int
    required: true
    description: |
      The size of each receive data buffer, must be a multiple of 8, highest
      valid value is 16320, values less than 64 are not really useful.

  tx-buffer-descriptors:
    type: int
    required: true
    description: |
      The number of descriptors to be allocated in the TX buffer descriptor
      ring. Must be <= 255.

  tx-buffer-size:
    type: int
    required: true
    description: |
      The size of each transmit data buffer, highest valid value is 16380,
      values less than 64 are not really useful.

  ignore-ipg-rxer:
    type: boolean
    description: |
      Optional feature flag - Ignore IPG rx_er. When set, rx_er has no
      effect on the GEM's operation when rx_dv is low. Set this when using
      the RGMII wrapper in half-duplex mode.

  disable-reject-nsp:
    type: boolean
    description: |
      Optional feature flag - Receive bad preamble. When set, frames with
      non-standard preamble will not be rejected.

  ipg-stretch:
    type: boolean
    description: |
      Optional feature flag - Enable IPG stretch. When set, the transmit
      IPG can be increased above 96 bit times depending on the previous
      frame length using the IPG stretch register.

  sgmii-mode:
    type: boolean
    description: |
      Optional feature flag - Enable SGMII mode. Changes the behaviour of
      the auto-negotiation advertisement and link partner ability registers
      to meet the requirements of SGMII and reduces the duration of the link
      timer from 10 ms to 1.6 ms.

  disable-reject-fcs-crc-errors:
    type: boolean
    description: |
      Optional feature flag - Disable rejection of FCS/CRC errors.
      When set, frames with FCS/CRC errors will not be rejected. FCS error
      statistics will still be collected for frames with bad FCS and FCS
      status will be recorded in the frame's DMA descriptor. This option
      should not be activated for normal operation.

  rx-halfdup-while-tx:
    type: boolean
    description: |
      Optional feature flag - Enable frames to be received in half-duplex
      mode while transmitting.

  rx-checksum-offload:
    type: boolean
    description: |
      Optional feature flag - Enable RX IP/TCP/UDP checksum offload to
      hardware. Frames with bad IP, TCP or UDP checksums will be discarded.
      This option is NOT supported by the QEMU implementation of the GEM!

  tx-checksum-offload:
    type: boolean
    description: |
      Optional feature flag - Enable TX IP/TCP/UDP checksum offload to
      hardware. This option is NOT supported by the QEMU implementation
      of the GEM!

  disable-pause-copy:
    type: boolean
    description: |
      Optional feature flag - Do not copy received pause frames to memory.
      Set this option in order to prevent valid pause frames from being
      copied to memory. When set, pause frames are not copied to memory
      regardless of the state of the copy all frames bit, whether a hash
      match is found or whether a type ID match is identified. If a desti-
      nation address match is found the pause frame will be copied to
      memory. Note that valid pause frames received will still increment
      pause statistics and pause the transmission of frames as required.

  discard-rx-fcs:
    type: boolean
    description: |
      Optional feature flag - Remove FCS of received frames.
      When set, received frames will be written to memory without their
      frame check sequence (last 4 bytes). The frame length indicated will
      be reduced by four bytes in this mode.

  discard-rx-length-errors:
    type: boolean
    description: |
      Optional feature flag - Discard frames with length field errors.
      When set, frames with a measured length shorter than the extracted
      length field (as indicated by bytes 13 and 14 in a non-VLAN tagged
      frame) will be discarded. This only applies to frames with a length
      field less than 0x0600.

  pause-frame:
    type: boolean
    description: |
      Optional feature flag - Enable pause. When set, transmission will
      pause if a non zero 802.3 classic pause frame is received and PFC
      has not been negotiated.

  tbi:
    type: boolean
    description: |
      Optional feature flag - Enable TBI. When set, the TBI interface is en-
      bled instead of the GMII/MII interface.

  ext-address-match:
    type: boolean
    description: |
      Optional feature flag - Enable external address match. When set, the
      external address match interface can be used to copy frames to memory.

  long-frame-rx-support:
    type: boolean
    description: |
      Optional feature flag - Enable reception of 1536 byte frames.
      Normally, the GEM rejects any frame above 1518 bytes.

  unicast-hash:
    type: boolean
    description: |
      Optional feature flag - Enable unicast hash. When set, unicast frames
      will be accepted when the 6 bit hash function of the destination
      address points to a bit that is set in the hash register.

  multicast-hash:
    type: boolean
    description: |
      Optional feature flag - Enable multicast hash. When set, mutlicast
      frames will be accepted when the 6 bit hash function of the desti-
      nation address points to a bit that is set in the hash register.

  reject-broadcast:
    type: boolean
    description: |
      Optional feature flag - Reject broadcast frames. When set, frames
      addressed to the all-ones broadcast address will be rejected.

  promiscuous-mode:
    type: boolean
    description: |
      Optional feature flag - Enable promiscuous mode. When set, all valid
      frames will be accepted.

  discard-non-vlan:
    type: boolean
    description: Optional feature flag - Discard non-VLAN frames. When set,
      only VLAN tagged frames will be passed to the address matching logic.

  full-duplex:
    type: boolean
    description: |
      Optional feature flag - Enables full duplex reception and transmission.

  discard-rx-frame-ahb-unavail:
    type: boolean
    description: |
      Optional feature flag - Discard received packets when no AHB resource
      is available.

  ahb-packet-endian-swap:
    type: boolean
    description: |
      Optional feature flag - Enable AHB packet data endianness swap to big
      endian. If this flag is not set, data will be little endian.

  ahb-md-endian-swap:
    type: boolean
    description: |
      Optional feature flag - Enable AHB management descriptor data endian-
      ness swap to big endian. If this flag is not set, data will be little
      endian.
