Skip to content

ast2600: Add FTGMAC100 Ethernet MAC and Aspeed MDIO controller#192

Open
garybeihl wants to merge 1 commit intorenode:masterfrom
garybeihl:ast2600-ftgmac100-network
Open

ast2600: Add FTGMAC100 Ethernet MAC and Aspeed MDIO controller#192
garybeihl wants to merge 1 commit intorenode:masterfrom
garybeihl:ast2600-ftgmac100-network

Conversation

@garybeihl
Copy link
Copy Markdown

Summary

  • FTGMAC100: Full Ethernet MAC with DMA descriptor ring TX/RX, inheriting NetworkWithPHY and implementing IMACInterface
  • Aspeed MDIO: Separate MDIO controller for PHY register access at 0x1E650000, with embedded RTL8211E PHY defaults

FTGMAC100 features

  • TX: walk descriptor ring, read buffer data via sysbus, fire FrameReady on last segment (LTS)
  • RX: MAC filtering (broadcast, multicast, unicast, RX_ALL), write frame data to RX descriptors with FRS/LRS/VDBC flags
  • Frame queue for when RX descriptors are unavailable
  • Aspeed-specific descriptor layout (EDOTR/EDORR at bit 30)
  • Descriptor size from DBLAC register
  • W1C interrupt status, level-triggered IRQ

Aspeed MDIO

  • AST2600 uses a separate MDIO controller rather than FTGMAC100's built-in PHYCR
  • CTRL register with FIRE bit, OP code, PHYAD, REGAD
  • DATA register with IDLE status and read data

Impact

Eliminates the 90-second eth0 systemd timeout during OpenBMC boot. All four AST2600 MACs probe successfully with RTL8211F PHY driver attached.

Test plan

  • Boot OpenBMC evb-ast2600 — eth0 comes up without 90s timeout
  • Kernel log shows ftgmac100 1e660000.ethernet eth0: Link is up
  • Connect to Renode Switch — packets TX/RX between emulated BMC and host via TAP

Full FTGMAC100 Ethernet MAC implementation with DMA descriptor ring
TX/RX, inheriting from NetworkWithPHY and implementing IMACInterface
for integration with Renode's network switch infrastructure.

TX path: walks descriptor ring, reads buffer data via sysbus, fires
FrameReady on last segment. RX path: MAC filtering (broadcast,
multicast, unicast, RX_ALL), writes frame data to RX descriptors
with FRS/LRS/VDBC flags, queues frames when no descriptors available.

Aspeed MDIO controller for external PHY register access, matching
the AST2600 hardware which uses a separate MDIO bus at 0x1E650000
rather than the FTGMAC100's built-in PHYCR registers. Embeds
RTL8211E PHY register defaults with link-up status.

Together these eliminate the 90-second eth0 systemd timeout during
OpenBMC boot by allowing the Linux ftgmac100 driver to successfully
probe all four MACs and attach to their PHYs.

Signed-off-by: Gary Beihl <garybeihl@microsoft.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant