Documentation how to build firmware (also for Espressobin v5) is there:
https://trustedfirmware-a.readthedocs.io/en/latest/plat/marvell/armada/build.html
Kernel driver for Topaz Switch uses DSA (Distributed Switch Architecture) API which automatically enable hardware forwarding between witch ports when network interfaces of switch ports are put into kernel bridge. It means that if you use standard linux tools for bridges (e.g. brctl, ip or bridge) and put lan0, lan1, etc. into br0 then kernel transparently enables hardware forwarding between lan0 and lan1 ports without using CPU.
So basically you do not need to do anything, hardware switching is enabled transparently.
As @robb_fr wrote, you can verify it via tcpdump on eth0 (this will show only packets which are going to CPU).
Check if you have enabled CONFIG_PCI_AARDVARK (=y or =m) and in case it is =m then check if you have loaded pci-aardvark.ko module. This is driver for PCIe controller.
Basically for Marvell Armada 3720 boards you need these options:
CONFIG_AHCI_MVEBU
CONFIG_ARCH_MVEBU
CONFIG_ARMADA_37XX_CLK
CONFIG_ARMADA_37XX_RWTM_MBOX
CONFIG_ARMADA_37XX_WATCHDOG
CONFIG_ARM_ARMADA_37XX_CPUFREQ
CONFIG_CRYPTO_DEV_SAFEXCEL
CONFIG_GPIO_MOXTET
CONFIG_I2C_PXA
CONFIG_MARVELL_PHY
CONFIG_MMC_SDHCI_XENON
CONFIG_MOXTET
CONFIG_MVMDIO
CONFIG_MVNETA
CONFIG_NET_DSA_MV88E6XXX
CONFIG_PCI_AARDVARK
CONFIG_PHY_MVEBU_A3700_COMPHY
CONFIG_PHY_MVEBU_A3700_UTMI
CONFIG_PINCTRL_ARMADA_37XX
CONFIG_SERIAL_MVEBU_CONSOLE
CONFIG_SERIAL_MVEBU_UART
CONFIG_SPI_ARMADA_3700
CONFIG_TURRIS_MOX_RWTM
CONFIG_USB_EHCI_HCD_ORION
CONFIG_USB_XHCI_MVEBU
So check that you have all of them enabled.
Hello @gtbX! Could you please provide output from “lspci -nn -vv” command from working kernel and whole dmesg ouput from non-working kernel? I can look at PCIe issues. In recent kernels there are lot of fixes for pci-aardvark.c A3720 PCIe driver.
With above PCIe patches, which are now part of Linux 5.8, all PCIe cards should be properly detected.
EspressoBin does not use SerDes for SGMII (2.5G ethernet) but rather for SATA. Therefore Topaz switch is not connected via SerDes/SGMII but via RGMII which is limited to 1G.
Armada 3720 has 3 SerDeses and on EspressoBin one is configured in PCIe mode, another in USB3.0 and another in SATA. So there was no free SerDes for SGMII 2.5G. As Armada 3720 has also extra RGMII and authors of EspressoBin wanted to have PCIe, USB3.0 and SATA ports, the only option was to connect ethernet via extra RGMII (1Gbps).
So enabling 2.5Gbps ethernet on EspressoBin is not possible.
You can look at Turris MOX device https://www.turris.com/en/mox/ based on same Armada 3720 SOC where SerDes is configured in SGMII 2.5Gbps mode.
Hello! Following patch https://lore.kernel.org/linux-pci/20200430080625.26070-5-pali@kernel.org/ should fix this problem. It configures controller GEN speed based on speed of connected card. So for GEN1 cards is configured SPEED_GEN_1 and for GEN2 cards is configured SPEED_GEN_2.
If you still have more PCIe cards available, could you test them if they finally work with above mentioned patch series on Espressobin?
Hello! I sent patch series for PCIe controller to linux-pci mailing list which should fix most of the problems with different Compex wifi cards on Armada 3720 boards, including Espressobin.
https://lore.kernel.org/linux-pci/20200430080625.26070-1-pali@kernel.org/T/#u
If you have still problems with different wifi cards on Espressobin, try above PCIe patches and let me know if they helped or not.
Technical specification tables can not be displayed on mobile. Please view on desktop