Wire up the various drivers for the 96boards LS connector and the
optional Secure96 mezzanine board.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
Platform/Socionext/DeveloperBox/DeveloperBox.dsc | 34 ++++++++++++++++++++
Platform/Socionext/DeveloperBox/DeveloperBox.fdf | 10 ++++++
Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.c | 9 ++++++
Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.inf | 2 ++
4 files changed, 55 insertions(+)
diff --git a/Platform/Socionext/DeveloperBox/DeveloperBox.dsc b/Platform/Socionext/DeveloperBox/DeveloperBox.dsc
index 9c95618a20fe..39f40534bb39 100644
--- a/Platform/Socionext/DeveloperBox/DeveloperBox.dsc
+++ b/Platform/Socionext/DeveloperBox/DeveloperBox.dsc
@@ -33,6 +33,9 @@ [Defines]
[BuildOptions]
RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
+ # add ample padding to the DTC so we can apply 96boards mezzanine overlays
+ *_*_*_DTC_FLAGS = -p 1024
+
[BuildOptions.common.EDKII.DXE_CORE,BuildOptions.common.EDKII.DXE_DRIVER,BuildOptions.common.EDKII.UEFI_DRIVER,BuildOptions.common.EDKII.UEFI_APPLICATION]
GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000
@@ -398,6 +401,28 @@ [PcdsFixedAtBuild.common]
!endif
gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareRevision|$(BUILD_NUMBER)
+ #
+ # 96boards mezzanine support
+ #
+ gNinetySixBoardsTokenSpaceGuid.PcdI2c0Parent|"/i2c@51210000"
+ gNinetySixBoardsTokenSpaceGuid.PcdI2c0BusFrequencyHz|100000
+ gNinetySixBoardsTokenSpaceGuid.PcdSpiParent|"/spi@54810000"
+ gNinetySixBoardsTokenSpaceGuid.PcdGpioParent|"/gpio@51000000"
+ gNinetySixBoardsTokenSpaceGuid.PcdGpioPolarity|0
+
+ gNinetySixBoardsTokenSpaceGuid.PcdGpioPinA|10
+ gNinetySixBoardsTokenSpaceGuid.PcdGpioPinB|11
+ gNinetySixBoardsTokenSpaceGuid.PcdGpioPinC|12
+ gNinetySixBoardsTokenSpaceGuid.PcdGpioPinD|13
+ gNinetySixBoardsTokenSpaceGuid.PcdGpioPinE|18
+ gNinetySixBoardsTokenSpaceGuid.PcdGpioPinF|19
+ gNinetySixBoardsTokenSpaceGuid.PcdGpioPinG|20
+ gNinetySixBoardsTokenSpaceGuid.PcdGpioPinH|21
+ gNinetySixBoardsTokenSpaceGuid.PcdGpioPinI|22
+ gNinetySixBoardsTokenSpaceGuid.PcdGpioPinJ|23
+ gNinetySixBoardsTokenSpaceGuid.PcdGpioPinK|24
+ gNinetySixBoardsTokenSpaceGuid.PcdGpioPinL|25
+
[PcdsPatchableInModule]
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|0
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|0
@@ -644,8 +669,17 @@ [Components.common]
SignedCapsulePkg/Universal/SystemFirmwareUpdate/SystemFirmwareUpdateDxe.inf
#
+ # 96board mezzanine support
+ #
+ Platform/NinetySixBoards/Secure96Dxe/Secure96Dxe.inf
+ Silicon/Atmel/AtSha204a/AtSha204aDxe.inf
+ Platform/NinetySixBoards/NinetySixBoardsI2cDxe/NinetySixBoardsI2cDxe.inf
+ Platform/NinetySixBoards/NinetySixBoardsDxe/NinetySixBoardsDxe.inf
+
+ #
# I2C
#
Silicon/Socionext/SynQuacer/Drivers/SynQuacerI2cDxe/SynQuacerI2cDxe.inf
+ MdeModulePkg/Bus/I2c/I2cDxe/I2cDxe.inf
Platform/Socionext/DeveloperBox/OsInstallerMenuDxe/OsInstallerMenuDxe.inf
diff --git a/Platform/Socionext/DeveloperBox/DeveloperBox.fdf b/Platform/Socionext/DeveloperBox/DeveloperBox.fdf
index c2bc5aa85739..636bfaa3dd29 100644
--- a/Platform/Socionext/DeveloperBox/DeveloperBox.fdf
+++ b/Platform/Socionext/DeveloperBox/DeveloperBox.fdf
@@ -237,9 +237,18 @@ [FV.FvMain]
}
#
+ # 96board mezzanine support
+ #
+ INF Platform/NinetySixBoards/Secure96Dxe/Secure96Dxe.inf
+ INF Platform/NinetySixBoards/NinetySixBoardsI2cDxe/NinetySixBoardsI2cDxe.inf
+ INF Silicon/Atmel/AtSha204a/AtSha204aDxe.inf
+ INF Platform/NinetySixBoards/NinetySixBoardsDxe/NinetySixBoardsDxe.inf
+
+ #
# I2C
#
INF Silicon/Socionext/SynQuacer/Drivers/SynQuacerI2cDxe/SynQuacerI2cDxe.inf
+ INF MdeModulePkg/Bus/I2c/I2cDxe/I2cDxe.inf
INF Platform/Socionext/DeveloperBox/OsInstallerMenuDxe/OsInstallerMenuDxe.inf
@@ -430,6 +439,7 @@ [Rule.Common.DXE_DRIVER]
DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
UI STRING="$(MODULE_NAME)" Optional
+ RAW BIN Optional |.dtb
}
[Rule.Common.DXE_RUNTIME_DRIVER]
diff --git a/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.c b/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.c
index aab830dc3a5a..11c0648c2ca0 100644
--- a/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.c
+++ b/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.c
@@ -313,6 +313,15 @@ PlatformDxeEntryPoint (
&Handle);
ASSERT_EFI_ERROR (Status);
+ //
+ // Install the gNinetySixBoardsI2c0MasterGuid GUID onto the same handle,
+ // identifying I2C #1 on our SoC as I2C #0 on the 96boards low speed connector
+ //
+ Status = gBS->InstallProtocolInterface (&Handle,
+ &gNinetySixBoardsI2c0MasterGuid,
+ EFI_NATIVE_INTERFACE, NULL);
+ ASSERT_EFI_ERROR (Status);
+
SmmuEnableCoherentDma ();
SetMmioTimerFrequency ();
diff --git a/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.inf b/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.inf
index 49d9deee57ea..4ba8bf4f761e 100644
--- a/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.inf
+++ b/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.inf
@@ -34,6 +34,7 @@ [Packages]
EmbeddedPkg/EmbeddedPkg.dec
MdeModulePkg/MdeModulePkg.dec
MdePkg/MdePkg.dec
+ Platform/NinetySixBoards/NinetySixBoards.dec
Silicon/NXP/Library/Pcf8563RealTimeClockLib/Pcf8563RealTimeClockLib.dec
Silicon/Socionext/SynQuacer/Drivers/Net/NetsecDxe/NetsecDxe.dec
Silicon/Socionext/SynQuacer/SynQuacer.dec
@@ -56,6 +57,7 @@ [LibraryClasses]
UefiRuntimeServicesTableLib
[Guids]
+ gNinetySixBoardsI2c0MasterGuid
gEfiHiiPlatformSetupFormsetGuid
gFdtTableGuid
gNetsecNonDiscoverableDeviceGuid
--
2.11.0
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel