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 can be analyzed in three blocks: * Small libraries like ResetSystemLib, IcuLib and ParsePcdLib. The latter one enables flexible parsing of data stored in PCD's in a string format, due to limitations for multi-byte numbers' arrays. It is used by PcieEmulation, ComPhy and Utmi, which have all a significant amount of entries. Thanks to strings their number could be reduced, which simplifies PCD description and processing in drivers/libraries.
* PcieEmulation driver as a base for support of XHCI, AHCI and SD/MMC
* Libraries that support SerDes PHY's settings and lanes' multiplexing (ComPhyLib) as well as USB2.0 PHY's configuration (UtmiLib)
Any comments or remarks would be welcome.
Best regards, Marcin
Bartosz Szczepanek (2): Platforms/Marvell: Add ResetSystemLib Platforms/Marvell: Enable MarvellResetSystemLib
Jan Dąbroś (19): Platforms/Marvell: Create Armada7040IcuLib Platforms/Marvell: Add IcuInit call for Armada7040 platforms Platforms/Marvell: Create ParsePcdLib Platforms/Marvell: Enable ParsePcdLib for Armada7040 boards Platforms/Marvell: Add PciEmulation driver Platforms/Marvell: Enable PciEmulation driver for Armada7040 platforms Platforms/Marvell: Enable USB stack for Armada7040 platforms Platforms/Marvell: Enable two xHCI ports for Armada7040_rz board Platforms/Marvell: Add support for SATA devices in PciEmulation Platforms/Marvell: Enable SATA stack for Armada7040_rz platform Platforms/Marvell: Enable SATA port for Armada7040_rz board Drivers/Sd: Add MvSdMmcPciHcDxe driver Platforms/Marvell: Add support for SD/MMC devices in PciEmulation Platforms/Marvell: Enable SD/MMC stack for Armada7040 platforms Platforms/Marvell: Enable SD/MMC controller for Armada70x0 board Platforms/Marvell: Create ComPhyLib Platforms/Marvell: Enable ComPhy Lib for Armada7040 platforms Platforms/Marvell: Add UtmiPhyLib Platforms/Marvell: Enable UtmiPhyLib for Armada7040 Platforms
Documentation/Marvell/PortingGuide/ComPhy.txt | 77 ++ Documentation/Marvell/PortingGuide/IcuLib.txt | 15 + .../Marvell/PortingGuide/PciEmulation.txt | 53 + Documentation/Marvell/PortingGuide/Reset.txt | 7 + Documentation/Marvell/PortingGuide/Sata.txt | 16 + Documentation/Marvell/PortingGuide/Utmi.txt | 35 + Documentation/Marvell/UserGuide.txt | 7 + Drivers/Sd/MvSdMmcPciHcDxe.c | 1268 ++++++++++++++++++++ Drivers/Sd/MvSdMmcPciHcDxe.inf | 75 ++ Drivers/Sd/XenonSdhci.c | 424 +++++++ Drivers/Sd/XenonSdhci.h | 301 +++++ Platforms/Marvell/Armada/Apn806.dsc | 12 + Platforms/Marvell/Armada/Armada.dsc.inc | 27 +- Platforms/Marvell/Armada/Armada7040.fdf | 22 +- Platforms/Marvell/Armada/Armada7040_rz.dsc | 44 + Platforms/Marvell/Armada/Armada70x0.dsc | 14 +- .../Library/Armada7040Lib/Armada7040IcuLib.c | 253 ++++ .../Library/Armada7040Lib/Armada7040IcuLib.h | 83 ++ .../Armada/Library/Armada7040Lib/Armada7040Lib.c | 9 +- .../Armada/Library/Armada7040Lib/Armada7040Lib.inf | 7 + .../MarvellResetSystemLib/MarvellResetSystemLib.c | 85 ++ .../MarvellResetSystemLib.inf | 56 + Platforms/Marvell/Include/Library/ComPhyLib.h | 43 + Platforms/Marvell/Include/Library/ParsePcdLib.h | 46 + Platforms/Marvell/Include/Library/UtmiPhyLib.h | 43 + Platforms/Marvell/Library/ComPhyLib/ComPhyAp806.c | 290 +++++ Platforms/Marvell/Library/ComPhyLib/ComPhyCp110.c | 811 +++++++++++++ Platforms/Marvell/Library/ComPhyLib/ComPhyLib.c | 277 +++++ Platforms/Marvell/Library/ComPhyLib/ComPhyLib.h | 457 +++++++ Platforms/Marvell/Library/ComPhyLib/ComPhyLib.inf | 110 ++ Platforms/Marvell/Library/ComPhyLib/ComPhyMux.c | 132 ++ .../Marvell/Library/ParsePcdLib/ParsePcdLib.c | 228 ++++ .../Marvell/Library/ParsePcdLib/ParsePcdLib.inf | 50 + Platforms/Marvell/Library/UtmiPhyLib/UtmiPhyLib.c | 352 ++++++ Platforms/Marvell/Library/UtmiPhyLib/UtmiPhyLib.h | 110 ++ .../Marvell/Library/UtmiPhyLib/UtmiPhyLib.inf | 64 + Platforms/Marvell/Marvell.dec | 75 ++ Platforms/Marvell/PciEmulation/PciEmulation.c | 704 +++++++++++ Platforms/Marvell/PciEmulation/PciEmulation.h | 283 +++++ Platforms/Marvell/PciEmulation/PciEmulation.inf | 67 ++ Platforms/Marvell/PciEmulation/PciRootBridgeIo.c | 300 +++++ 41 files changed, 7320 insertions(+), 12 deletions(-) create mode 100644 Documentation/Marvell/PortingGuide/ComPhy.txt create mode 100644 Documentation/Marvell/PortingGuide/IcuLib.txt create mode 100644 Documentation/Marvell/PortingGuide/PciEmulation.txt create mode 100644 Documentation/Marvell/PortingGuide/Reset.txt create mode 100644 Documentation/Marvell/PortingGuide/Sata.txt create mode 100644 Documentation/Marvell/PortingGuide/Utmi.txt create mode 100644 Drivers/Sd/MvSdMmcPciHcDxe.c create mode 100644 Drivers/Sd/MvSdMmcPciHcDxe.inf create mode 100644 Drivers/Sd/XenonSdhci.c create mode 100644 Drivers/Sd/XenonSdhci.h create mode 100644 Platforms/Marvell/Armada/Library/Armada7040Lib/Armada7040IcuLib.c create mode 100644 Platforms/Marvell/Armada/Library/Armada7040Lib/Armada7040IcuLib.h create mode 100644 Platforms/Marvell/Armada/Library/MarvellResetSystemLib/MarvellResetSystemLib.c create mode 100644 Platforms/Marvell/Armada/Library/MarvellResetSystemLib/MarvellResetSystemLib.inf create mode 100644 Platforms/Marvell/Include/Library/ComPhyLib.h create mode 100644 Platforms/Marvell/Include/Library/ParsePcdLib.h create mode 100644 Platforms/Marvell/Include/Library/UtmiPhyLib.h create mode 100644 Platforms/Marvell/Library/ComPhyLib/ComPhyAp806.c create mode 100644 Platforms/Marvell/Library/ComPhyLib/ComPhyCp110.c create mode 100644 Platforms/Marvell/Library/ComPhyLib/ComPhyLib.c create mode 100644 Platforms/Marvell/Library/ComPhyLib/ComPhyLib.h create mode 100644 Platforms/Marvell/Library/ComPhyLib/ComPhyLib.inf create mode 100644 Platforms/Marvell/Library/ComPhyLib/ComPhyMux.c create mode 100644 Platforms/Marvell/Library/ParsePcdLib/ParsePcdLib.c create mode 100644 Platforms/Marvell/Library/ParsePcdLib/ParsePcdLib.inf create mode 100644 Platforms/Marvell/Library/UtmiPhyLib/UtmiPhyLib.c create mode 100644 Platforms/Marvell/Library/UtmiPhyLib/UtmiPhyLib.h create mode 100644 Platforms/Marvell/Library/UtmiPhyLib/UtmiPhyLib.inf create mode 100644 Platforms/Marvell/PciEmulation/PciEmulation.c create mode 100644 Platforms/Marvell/PciEmulation/PciEmulation.h create mode 100644 Platforms/Marvell/PciEmulation/PciEmulation.inf create mode 100644 Platforms/Marvell/PciEmulation/PciRootBridgeIo.c