Re: [edk2] [platforms: PATCH v2 12/12] Marvell/Armada7k8k: Introduce NonDiscoverable device init routines
On Thu, Jan 10, 2019 at 02:44:39AM +0100, Marcin Wojtas wrote: > To abstract the initialization required for non-discoverable devices, > which is often platform specific (e.g. enable GPIO-driven power supply), > introduce a NonDiscoverableInitLib for use by the NonDiscoverable code, > for which each platform can supply its own version. > > Add XHCI power supply (so called 'VBUS') enabling routines > for supported platforms (Armada70x0Db, Armada80x0Db, Armada80x0McBin). > > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Marcin Wojtas Reviewed-by: Leif Lindholm > --- > Silicon/Marvell/Marvell.dec >| 1 + > Platform/Marvell/Armada70x0Db/Armada70x0Db.dsc >| 3 + > Platform/Marvell/Armada80x0Db/Armada80x0Db.dsc >| 3 + > Platform/SolidRun/Armada80x0McBin/Armada80x0McBin.dsc >| 3 + > > Platform/Marvell/Armada70x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.inf > | 48 + > > Platform/Marvell/Armada80x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.inf > | 49 + > > Platform/SolidRun/Armada80x0McBin/NonDiscoverableInitLib/NonDiscoverableInitLib.inf > | 49 + > Silicon/Marvell/Drivers/NonDiscoverableDxe/NonDiscoverableDxe.inf >| 1 + > > Platform/Marvell/Armada70x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.h > | 23 + > > Platform/Marvell/Armada80x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.h > | 28 ++ > > Platform/SolidRun/Armada80x0McBin/NonDiscoverableInitLib/NonDiscoverableInitLib.h >| 20 > Silicon/Marvell/Include/Library/NonDiscoverableInitLib.h >| 28 ++ > > Platform/Marvell/Armada70x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.c > | 96 ++ > > Platform/Marvell/Armada80x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.c > | 106 > > Platform/SolidRun/Armada80x0McBin/NonDiscoverableInitLib/NonDiscoverableInitLib.c >| 71 + > Silicon/Marvell/Drivers/NonDiscoverableDxe/NonDiscoverableDxe.c >| 13 ++- > 16 files changed, 539 insertions(+), 3 deletions(-) > create mode 100644 > Platform/Marvell/Armada70x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.inf > create mode 100644 > Platform/Marvell/Armada80x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.inf > create mode 100644 > Platform/SolidRun/Armada80x0McBin/NonDiscoverableInitLib/NonDiscoverableInitLib.inf > create mode 100644 > Platform/Marvell/Armada70x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.h > create mode 100644 > Platform/Marvell/Armada80x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.h > create mode 100644 > Platform/SolidRun/Armada80x0McBin/NonDiscoverableInitLib/NonDiscoverableInitLib.h > create mode 100644 Silicon/Marvell/Include/Library/NonDiscoverableInitLib.h > create mode 100644 > Platform/Marvell/Armada70x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.c > create mode 100644 > Platform/Marvell/Armada80x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.c > create mode 100644 > Platform/SolidRun/Armada80x0McBin/NonDiscoverableInitLib/NonDiscoverableInitLib.c > > diff --git a/Silicon/Marvell/Marvell.dec b/Silicon/Marvell/Marvell.dec > index 616624e..12bac55 100644 > --- a/Silicon/Marvell/Marvell.dec > +++ b/Silicon/Marvell/Marvell.dec > @@ -63,6 +63,7 @@ >ArmadaBoardDescLib|Include/Library/ArmadaBoardDescLib.h >ArmadaIcuLib|Include/Library/ArmadaIcuLib.h >ArmadaSoCDescLib|Include/Library/ArmadaSoCDescLib.h > + NonDiscoverableInitLib|Include/Library/NonDiscoverableInitLib.h >SampleAtResetLib|Include/Library/SampleAtResetLib.h > > [Protocols] > diff --git a/Platform/Marvell/Armada70x0Db/Armada70x0Db.dsc > b/Platform/Marvell/Armada70x0Db/Armada70x0Db.dsc > index 31815e4..e8cd177 100644 > --- a/Platform/Marvell/Armada70x0Db/Armada70x0Db.dsc > +++ b/Platform/Marvell/Armada70x0Db/Armada70x0Db.dsc > @@ -48,6 +48,9 @@ > > !include Silicon/Marvell/Armada7k8k/Armada7k8k.dsc.inc > > +[LibraryClasses.common] > + > NonDiscoverableInitLib|Platform/Marvell/Armada70x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.inf > + > [Components.common] >Silicon/Marvell/Armada7k8k/DeviceTree/Armada70x0Db.inf > > diff --git a/Platform/Marvell/Armada80x0Db/Armada80x0Db.dsc > b/Platform/Marvell/Armada80x0Db/Armada80x0Db.dsc > index 42f7bd3..8e8c2ba 100644 > --- a/Platform/Marvell/Armada80x0Db/Armada80x0Db.dsc > +++ b/Platform/Marvell/Armada80x0Db/Armada80x0Db.dsc > @@ -48,6 +48,9 @@ > > !include Silicon/Marvell/Armada7k8k/Armada7k8k.dsc.inc > > +[LibraryClasses.common] > + > NonDiscoverableInitLib|Platform/Marvell/Armada80x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.inf > + > [Components.common] >Silicon/Marvell/Armada7k8k/DeviceTr
[edk2] [platforms: PATCH v2 12/12] Marvell/Armada7k8k: Introduce NonDiscoverable device init routines
To abstract the initialization required for non-discoverable devices, which is often platform specific (e.g. enable GPIO-driven power supply), introduce a NonDiscoverableInitLib for use by the NonDiscoverable code, for which each platform can supply its own version. Add XHCI power supply (so called 'VBUS') enabling routines for supported platforms (Armada70x0Db, Armada80x0Db, Armada80x0McBin). Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Marcin Wojtas --- Silicon/Marvell/Marvell.dec | 1 + Platform/Marvell/Armada70x0Db/Armada70x0Db.dsc | 3 + Platform/Marvell/Armada80x0Db/Armada80x0Db.dsc | 3 + Platform/SolidRun/Armada80x0McBin/Armada80x0McBin.dsc | 3 + Platform/Marvell/Armada70x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.inf | 48 + Platform/Marvell/Armada80x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.inf | 49 + Platform/SolidRun/Armada80x0McBin/NonDiscoverableInitLib/NonDiscoverableInitLib.inf | 49 + Silicon/Marvell/Drivers/NonDiscoverableDxe/NonDiscoverableDxe.inf | 1 + Platform/Marvell/Armada70x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.h | 23 + Platform/Marvell/Armada80x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.h | 28 ++ Platform/SolidRun/Armada80x0McBin/NonDiscoverableInitLib/NonDiscoverableInitLib.h | 20 Silicon/Marvell/Include/Library/NonDiscoverableInitLib.h | 28 ++ Platform/Marvell/Armada70x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.c | 96 ++ Platform/Marvell/Armada80x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.c | 106 Platform/SolidRun/Armada80x0McBin/NonDiscoverableInitLib/NonDiscoverableInitLib.c | 71 + Silicon/Marvell/Drivers/NonDiscoverableDxe/NonDiscoverableDxe.c | 13 ++- 16 files changed, 539 insertions(+), 3 deletions(-) create mode 100644 Platform/Marvell/Armada70x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.inf create mode 100644 Platform/Marvell/Armada80x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.inf create mode 100644 Platform/SolidRun/Armada80x0McBin/NonDiscoverableInitLib/NonDiscoverableInitLib.inf create mode 100644 Platform/Marvell/Armada70x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.h create mode 100644 Platform/Marvell/Armada80x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.h create mode 100644 Platform/SolidRun/Armada80x0McBin/NonDiscoverableInitLib/NonDiscoverableInitLib.h create mode 100644 Silicon/Marvell/Include/Library/NonDiscoverableInitLib.h create mode 100644 Platform/Marvell/Armada70x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.c create mode 100644 Platform/Marvell/Armada80x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.c create mode 100644 Platform/SolidRun/Armada80x0McBin/NonDiscoverableInitLib/NonDiscoverableInitLib.c diff --git a/Silicon/Marvell/Marvell.dec b/Silicon/Marvell/Marvell.dec index 616624e..12bac55 100644 --- a/Silicon/Marvell/Marvell.dec +++ b/Silicon/Marvell/Marvell.dec @@ -63,6 +63,7 @@ ArmadaBoardDescLib|Include/Library/ArmadaBoardDescLib.h ArmadaIcuLib|Include/Library/ArmadaIcuLib.h ArmadaSoCDescLib|Include/Library/ArmadaSoCDescLib.h + NonDiscoverableInitLib|Include/Library/NonDiscoverableInitLib.h SampleAtResetLib|Include/Library/SampleAtResetLib.h [Protocols] diff --git a/Platform/Marvell/Armada70x0Db/Armada70x0Db.dsc b/Platform/Marvell/Armada70x0Db/Armada70x0Db.dsc index 31815e4..e8cd177 100644 --- a/Platform/Marvell/Armada70x0Db/Armada70x0Db.dsc +++ b/Platform/Marvell/Armada70x0Db/Armada70x0Db.dsc @@ -48,6 +48,9 @@ !include Silicon/Marvell/Armada7k8k/Armada7k8k.dsc.inc +[LibraryClasses.common] + NonDiscoverableInitLib|Platform/Marvell/Armada70x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.inf + [Components.common] Silicon/Marvell/Armada7k8k/DeviceTree/Armada70x0Db.inf diff --git a/Platform/Marvell/Armada80x0Db/Armada80x0Db.dsc b/Platform/Marvell/Armada80x0Db/Armada80x0Db.dsc index 42f7bd3..8e8c2ba 100644 --- a/Platform/Marvell/Armada80x0Db/Armada80x0Db.dsc +++ b/Platform/Marvell/Armada80x0Db/Armada80x0Db.dsc @@ -48,6 +48,9 @@ !include Silicon/Marvell/Armada7k8k/Armada7k8k.dsc.inc +[LibraryClasses.common] + NonDiscoverableInitLib|Platform/Marvell/Armada80x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.inf + [Components.common] Silicon/Marvell/Armada7k8k/DeviceTree/Armada80x0Db.inf diff --git a/Platform/SolidRun/Armada80x0McBin/Armada80x0McBin.dsc b/Platform/SolidRun/Armada80x0McBin/Armada80x0McBin.dsc index 077224d..d080136 100644 --- a/Platform/SolidRun/Armada80x0McBin/Armada80x0McBin.dsc +++ b/Platform/SolidRun/Armada80x0McBin/Armada80x0McBin.dsc @@ -49,6 +49,9 @@ !include Sil