Introduce new board description library extension that allows to execute custom initialization sequence. Add stubs for all existing platforms.
Signed-off-by: Marcin Wojtas <m...@semihalf.com> --- Silicon/Marvell/Armada7k8k/Drivers/PlatInitDxe/PlatInitDxe.inf | 1 + Silicon/Marvell/Include/Library/ArmadaBoardDescLib.h | 9 +++++++++ Platform/Marvell/Armada70x0Db/Armada70x0DbBoardDescLib/Armada70x0DbBoardDescLib.c | 11 +++++++++++ Platform/Marvell/Armada80x0Db/Armada80x0DbBoardDescLib/Armada80x0DbBoardDescLib.c | 11 +++++++++++ Platform/Marvell/Cn913xDb/BoardDescriptionLib/Cn9130DbABoardDescLib.c | 11 +++++++++++ Platform/Marvell/Cn913xDb/BoardDescriptionLib/Cn9132DbABoardDescLib.c | 11 +++++++++++ Platform/SolidRun/Armada80x0McBin/Armada80x0McBinBoardDescLib/Armada80x0McBinBoardDescLib.c | 11 +++++++++++ Silicon/Marvell/Armada7k8k/Drivers/PlatInitDxe/PlatInitDxe.c | 2 ++ 8 files changed, 67 insertions(+) diff --git a/Silicon/Marvell/Armada7k8k/Drivers/PlatInitDxe/PlatInitDxe.inf b/Silicon/Marvell/Armada7k8k/Drivers/PlatInitDxe/PlatInitDxe.inf index b63e9b6325..398baebcf5 100644 --- a/Silicon/Marvell/Armada7k8k/Drivers/PlatInitDxe/PlatInitDxe.inf +++ b/Silicon/Marvell/Armada7k8k/Drivers/PlatInitDxe/PlatInitDxe.inf @@ -26,6 +26,7 @@ Silicon/Marvell/Marvell.dec [LibraryClasses] + ArmadaBoardDescLib ArmadaIcuLib ArmSmcLib ComPhyLib diff --git a/Silicon/Marvell/Include/Library/ArmadaBoardDescLib.h b/Silicon/Marvell/Include/Library/ArmadaBoardDescLib.h index 80c55eb3a7..6dc296371d 100644 --- a/Silicon/Marvell/Include/Library/ArmadaBoardDescLib.h +++ b/Silicon/Marvell/Include/Library/ArmadaBoardDescLib.h @@ -11,6 +11,15 @@ #include <Library/ArmadaSoCDescLib.h> #include <Library/MvGpioLib.h> +// +// General purpose routine for per-board initalization +// +EFI_STATUS +EFIAPI +ArmadaBoardInit ( + VOID + ); + // // COMPHY controllers per-board description // diff --git a/Platform/Marvell/Armada70x0Db/Armada70x0DbBoardDescLib/Armada70x0DbBoardDescLib.c b/Platform/Marvell/Armada70x0Db/Armada70x0DbBoardDescLib/Armada70x0DbBoardDescLib.c index b0b6855bbb..33e40d0bd9 100644 --- a/Platform/Marvell/Armada70x0Db/Armada70x0DbBoardDescLib/Armada70x0DbBoardDescLib.c +++ b/Platform/Marvell/Armada70x0Db/Armada70x0DbBoardDescLib/Armada70x0DbBoardDescLib.c @@ -16,6 +16,17 @@ #include <Library/MvGpioLib.h> #include <Library/UefiBootServicesTableLib.h> +// +// General purpose routine for per-board initalization +// +EFI_STATUS +ArmadaBoardInit ( + VOID + ) +{ + return EFI_SUCCESS; +} + // // GPIO Expander // diff --git a/Platform/Marvell/Armada80x0Db/Armada80x0DbBoardDescLib/Armada80x0DbBoardDescLib.c b/Platform/Marvell/Armada80x0Db/Armada80x0DbBoardDescLib/Armada80x0DbBoardDescLib.c index 2b119fa2a7..e4ee2e04ae 100644 --- a/Platform/Marvell/Armada80x0Db/Armada80x0DbBoardDescLib/Armada80x0DbBoardDescLib.c +++ b/Platform/Marvell/Armada80x0Db/Armada80x0DbBoardDescLib/Armada80x0DbBoardDescLib.c @@ -16,6 +16,17 @@ #include <Library/MvGpioLib.h> #include <Library/UefiBootServicesTableLib.h> +// +// General purpose routine for per-board initalization +// +EFI_STATUS +ArmadaBoardInit ( + VOID + ) +{ + return EFI_SUCCESS; +} + // // GPIO Expanders // diff --git a/Platform/Marvell/Cn913xDb/BoardDescriptionLib/Cn9130DbABoardDescLib.c b/Platform/Marvell/Cn913xDb/BoardDescriptionLib/Cn9130DbABoardDescLib.c index 2755600f53..d53c7086a1 100644 --- a/Platform/Marvell/Cn913xDb/BoardDescriptionLib/Cn9130DbABoardDescLib.c +++ b/Platform/Marvell/Cn913xDb/BoardDescriptionLib/Cn9130DbABoardDescLib.c @@ -16,6 +16,17 @@ #include <Library/MvGpioLib.h> #include <Library/UefiBootServicesTableLib.h> +// +// General purpose routine for per-board initalization +// +EFI_STATUS +ArmadaBoardInit ( + VOID + ) +{ + return EFI_SUCCESS; +} + // // GPIO Expander // diff --git a/Platform/Marvell/Cn913xDb/BoardDescriptionLib/Cn9132DbABoardDescLib.c b/Platform/Marvell/Cn913xDb/BoardDescriptionLib/Cn9132DbABoardDescLib.c index d2846dde30..920c7436c2 100644 --- a/Platform/Marvell/Cn913xDb/BoardDescriptionLib/Cn9132DbABoardDescLib.c +++ b/Platform/Marvell/Cn913xDb/BoardDescriptionLib/Cn9132DbABoardDescLib.c @@ -16,6 +16,17 @@ #include <Library/MvGpioLib.h> #include <Library/UefiBootServicesTableLib.h> +// +// General purpose routine for per-board initalization +// +EFI_STATUS +ArmadaBoardInit ( + VOID + ) +{ + return EFI_SUCCESS; +} + // // GPIO Expander // diff --git a/Platform/SolidRun/Armada80x0McBin/Armada80x0McBinBoardDescLib/Armada80x0McBinBoardDescLib.c b/Platform/SolidRun/Armada80x0McBin/Armada80x0McBinBoardDescLib/Armada80x0McBinBoardDescLib.c index ebe7386df1..b11195c5a1 100644 --- a/Platform/SolidRun/Armada80x0McBin/Armada80x0McBinBoardDescLib/Armada80x0McBinBoardDescLib.c +++ b/Platform/SolidRun/Armada80x0McBin/Armada80x0McBinBoardDescLib/Armada80x0McBinBoardDescLib.c @@ -15,6 +15,17 @@ #include <Library/MemoryAllocationLib.h> #include <Library/UefiBootServicesTableLib.h> +// +// General purpose routine for per-board initalization +// +EFI_STATUS +ArmadaBoardInit ( + VOID + ) +{ + return EFI_SUCCESS; +} + // // GPIO Expander // diff --git a/Silicon/Marvell/Armada7k8k/Drivers/PlatInitDxe/PlatInitDxe.c b/Silicon/Marvell/Armada7k8k/Drivers/PlatInitDxe/PlatInitDxe.c index 927abb9400..78ad1c8a7a 100644 --- a/Silicon/Marvell/Armada7k8k/Drivers/PlatInitDxe/PlatInitDxe.c +++ b/Silicon/Marvell/Armada7k8k/Drivers/PlatInitDxe/PlatInitDxe.c @@ -110,6 +110,8 @@ ArmadaPlatInitDxeEntryPoint ( UtmiPhyInit (); MppInitialize (); ArmadaIcuInitialize (); + Status = ArmadaBoardInit (); + ASSERT_EFI_ERROR (Status); /* * Enable EL3 PMU interrupt handler and -- 2.29.0 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#78488): https://edk2.groups.io/g/devel/message/78488 Mute This Topic: https://groups.io/mt/84605053/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-