Hello,
Since v4 of basic support is on its way to the lists and it may take some time to get it merged, we decided to send RFC version of remaining drivers and libraries. It is divided into two parts - high speed and network. The purpose of sending those patchsets now is to give an opportunity to discuss if general directions (like protocols, pcie emulation driver, etc.) are acceptable. This way, once the basic support gets accepted, it would be possible to submit more mature version beginning from the v1.
This patchset comprises support for PHY configuration using MDIO interface, as well as the network driver itself. It utilizes SNP API, which allows to register and use in UEFI shell all three ports of the NIC. The most significant part is a OS-independent library of pure HW configuration routines, which is obtained from Marvell and in fact does not need any kind of thorough review, as it was done internally. The routines are called directly by Pp2Dxe driver in various stages of initializing and network usage.
Any comments or remarks would be welcome.
Best regards, Marcin
Bartosz Szczepanek (10): Platforms/Marvell: Include common network modules on Armada SoC's Platforms/Marvell: Add MDIO protocol Drivers/Net: Create MDIO driver for Marvell platforms Platforms/Marvell: Enable MDIO driver on Armada7040 Platforms/Marvell: Add PHY protocol Drivers/Net: Create PHY driver for Marvell platforms Platforms/Marvell: Enable PHY driver on Armada7040 Drivers/Net: Import mvpp2_lib Drivers/Net: Create Pp2Dxe driver Platforms/Marvell: Enable Pp2Dxe driver on Armada7040
Documentation/Marvell/PortingGuide/Mdio.txt | 7 + Documentation/Marvell/PortingGuide/Phy.txt | 45 + Documentation/Marvell/PortingGuide/Pp2.txt | 59 + Documentation/Marvell/UserGuide.txt | 3 + Drivers/Net/MdioDxe/MdioDxe.c | 235 ++ Drivers/Net/MdioDxe/MdioDxe.h | 57 + Drivers/Net/MdioDxe/MdioDxe.inf | 68 + Drivers/Net/Phy/MvPhyDxe/MvPhyDxe.c | 439 +++ Drivers/Net/Phy/MvPhyDxe/MvPhyDxe.h | 194 ++ Drivers/Net/Phy/MvPhyDxe/MvPhyDxe.inf | 71 + Drivers/Net/Pp2Dxe/Pp2Dxe.c | 1191 ++++++++ Drivers/Net/Pp2Dxe/Pp2Dxe.h | 530 ++++ Drivers/Net/Pp2Dxe/Pp2Dxe.inf | 91 + Drivers/Net/Pp2Dxe/mvpp2_lib.c | 4299 +++++++++++++++++++++++++++ Drivers/Net/Pp2Dxe/mvpp2_lib.h | 2363 +++++++++++++++ Platforms/Marvell/Armada/Armada.dsc.inc | 20 +- Platforms/Marvell/Armada/Armada7040.fdf | 15 + Platforms/Marvell/Armada/Armada7040_rz.dsc | 30 +- Platforms/Marvell/Include/Protocol/Mdio.h | 65 + Platforms/Marvell/Include/Protocol/Phy.h | 103 + Platforms/Marvell/Marvell.dec | 28 +- 21 files changed, 9908 insertions(+), 5 deletions(-) create mode 100644 Documentation/Marvell/PortingGuide/Mdio.txt create mode 100644 Documentation/Marvell/PortingGuide/Phy.txt create mode 100644 Documentation/Marvell/PortingGuide/Pp2.txt create mode 100644 Drivers/Net/MdioDxe/MdioDxe.c create mode 100644 Drivers/Net/MdioDxe/MdioDxe.h create mode 100644 Drivers/Net/MdioDxe/MdioDxe.inf create mode 100644 Drivers/Net/Phy/MvPhyDxe/MvPhyDxe.c create mode 100644 Drivers/Net/Phy/MvPhyDxe/MvPhyDxe.h create mode 100644 Drivers/Net/Phy/MvPhyDxe/MvPhyDxe.inf create mode 100644 Drivers/Net/Pp2Dxe/Pp2Dxe.c create mode 100644 Drivers/Net/Pp2Dxe/Pp2Dxe.h create mode 100644 Drivers/Net/Pp2Dxe/Pp2Dxe.inf create mode 100644 Drivers/Net/Pp2Dxe/mvpp2_lib.c create mode 100644 Drivers/Net/Pp2Dxe/mvpp2_lib.h create mode 100644 Platforms/Marvell/Include/Protocol/Mdio.h create mode 100644 Platforms/Marvell/Include/Protocol/Phy.h