Sun8i emac

From linux-sunxi.org
Jump to: navigation, search

This page is about the sun8i_emac driver which handles the integrated Ethernet MAC of A83T/H3/A64.

Contents

Specifications

The EMAC main features are

  • 10/100/1000 Mbit/s speed
  • RX/TX CSO (CheckSum Offload)

Status

The driver is not in mainline yet. Mainlining requires the ephy driver (Handling the systemControl register).

You can find the latest sun8i-emac driver version on https://github.com/montjoie/linux/tree/sun8i-emac-wip

H3

The H3 SoC is well supported, and no tweaks are necessary for all MII types (Internal MII, RGMII).

A83T

A64

The stock boot0 or the BSP U-Boot do not program the PMIC to power the PHY.

Pine64+ (Gigabit PHY)

Section C5 on page 19 in the schematics shows the power requirements:

  • DC1-SW needs to be enabled (bit 7 in register 0x12 of the AXP803 PMIC).
  • The schematics hints that the GPIO1 output on the PMIC needs to be configured as an LDO output at 2.5 volts (0x12 (=2.5V) into PMIC register 0x93, 0x3 (=enable LDO) to PMIC register 0x92). But the BSP kernel leaves this register disabled (0x92: 0x7), so apparently no driving is needed here. That means that the Pine64+ runs RGMII at 3.3 volts.
  • The PHYRSTB pin on the PHY is connected to the SoC's PD14 pin (confusingly labeled MAC-RST), but also pulled up. PD14 is part of the EMAC block (RGMII-NULL), but needs to be configured differently (not function 4): either as disabled (7) or as a high output pin.

Tips, troubleshoot

  • EMAC reset timeout

This error is generally related to not having PHY powered.

  • Link but no transfer with Gigabit EMAC

You perhaps need to tweak RX/TX delay. You could find the correct value in FEX files. For the moment the only way is to write the value via /dev/mem You could use free-electrons.com/pub/mirror/devmem2.c for this. Example: for BPIM3 devmem 0x1c00030 w 0x1806


Performance

Performance is calculated with iperf. Thoses numbers are not definitive.

On OrangePiPC (100Mbit FullDuplex), the board achieves 85Mbits/s for transmission and 95Mbits/s for reception.

On Bananapi M3 (Gigabit FD), the board achieves 373Mbits/s for transmission and 387Mbits/s for reception. But better performance could be expected on it, since only one cpu is available for the moment without PSCI.

On pine64, the board achieves 511Mbits/s for transmission and 428Mbits/s for reception.

Personal tools
Namespaces

Variants
Actions
Navigation
Tools