ar40xx_switch: add initial switch for the IPQ4018/IPQ4019.

Summary:

This switch is based off of the AR8327/AR8337 external switch/PHY.
However unlike the AR8327/AR8337 it itself doesn't have any PHYs;
instead an external PHY connects to it using the PSGMII port.

Differential Revision: https://reviews.freebsd.org/D34112
Reviewed by: manu

This code is inspired by the ar40xx code in openwrt, which itself
is based on the Qualcomm QCA-SSDK.  Both of these sources are, amusingly,
BSD licenced - and thus I have included some of the comments in the
hardware workaround paths to document some of the magic numbers.
This commit is contained in:
Adrian Chadd
2022-01-29 19:04:19 -08:00
parent b509e53896
commit e388de98bd
24 changed files with 4067 additions and 0 deletions
+2
View File
@@ -78,3 +78,5 @@ device mdio
device mii
device miibus
device qcom_mdio_ipq4018
device etherswitch
device ar40xx_switch
+21
View File
@@ -6,6 +6,27 @@ arm/qualcomm/qcom_cpu_kpssv2.c optional smp
arm/qualcomm/ipq4018_usb_hs_phy.c optional qcom_ipq4018_hs_usbphy
arm/qualcomm/ipq4018_usb_ss_phy.c optional qcom_ipq4018_ss_usbphy
dev/etherswitch/ar40xx/ar40xx_main.c \
optional mdio etherswitch ar40xx_switch
dev/etherswitch/ar40xx/ar40xx_phy.c \
optional mdio etherswitch ar40xx_switch
dev/etherswitch/ar40xx/ar40xx_hw.c \
optional mdio etherswitch ar40xx_switch
dev/etherswitch/ar40xx/ar40xx_hw_atu.c \
optional mdio etherswitch ar40xx_switch
dev/etherswitch/ar40xx/ar40xx_hw_port.c \
optional mdio etherswitch ar40xx_switch
dev/etherswitch/ar40xx/ar40xx_hw_psgmii.c \
optional mdio etherswitch ar40xx_switch
dev/etherswitch/ar40xx/ar40xx_hw_mib.c \
optional mdio etherswitch ar40xx_switch
dev/etherswitch/ar40xx/ar40xx_hw_mirror.c \
optional mdio etherswitch ar40xx_switch
dev/etherswitch/ar40xx/ar40xx_hw_vtu.c \
optional mdio etherswitch ar40xx_switch
dev/etherswitch/ar40xx/ar40xx_hw_mdio.c \
optional mdio etherswitch ar40xx_switch
dev/qcom_dwc3/qcom_dwc3.c optional qcom_dwc3
dev/qcom_rnd/qcom_rnd.c optional qcom_rnd