Skip to content

Commit

Permalink
add suport for beyond1lte and exynos9820
Browse files Browse the repository at this point in the history
  • Loading branch information
J0SH1X committed Feb 4, 2024
1 parent 00f289e commit 0e98e85
Show file tree
Hide file tree
Showing 31 changed files with 2,054 additions and 0 deletions.
54 changes: 54 additions & 0 deletions Platform/Samsung/exynos9820/Apriori.fdf.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
APRIORI DXE {

#
# PI DXE Drivers producing Architectural Protocols (EFI Services)
#
INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
INF MdeModulePkg/Core/Dxe/DxeMain.inf
INF MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf
INF MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf
INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
INF ArmPkg/Drivers/CpuDxe/CpuDxe.inf
INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf

INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf

INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf

INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
INF MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystemDxe.inf

INF FatPkg/EnhancedFatDxe/Fat.inf

INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf

INF EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf
INF MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf
INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
INF MdeModulePkg/Universal/PrintDxe/PrintDxe.inf
INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf

!if $(SECURE_BOOT_ENABLE) == TRUE
INF SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf
INF SecurityPkg/VariableAuthenticated/SecureBootDefaultKeysDxe/SecureBootDefaultKeysDxe.inf
!endif

INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf

INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf


INF EmbeddedPkg/SimpleTextInOutSerial/SimpleTextInOutSerial.inf
INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf

INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
INF MdeModulePkg/Bus/Usb/UsbMouseDxe/UsbMouseDxe.inf
INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
}
Binary file not shown.
1 change: 1 addition & 0 deletions Platform/Samsung/exynos9820/dummyramdisk
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
dummy
Empty file.
64 changes: 64 additions & 0 deletions Platform/Samsung/exynos9820/exynos9820.dsc
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
## @file
#
# Copyright (c) 2011-2015, ARM Limited. All rights reserved.
# Copyright (c) 2014, Linaro Limited. All rights reserved.
# Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.
# Copyright (c) 2018 - 2019, Bingxing Wang. All rights reserved.
# Copyright (c) 2022, Xilin Wu. All rights reserved.
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
##

################################################################################
#
# Defines Section - statements that will be processed to create a Makefile.
#
################################################################################

[Defines]
SOC_PLATFORM = exynos9820
USE_PHYSICAL_TIMER = FALSE

!include Silicon/Samsung/ExynosPkg/ExynosCommonDsc.inc

[PcdsFixedAtBuild.common]
gArmTokenSpaceGuid.PcdSystemMemoryBase|0x80000000 # Starting address
gArmTokenSpaceGuid.PcdSystemMemorySize|0x200000000 # Limit to 12GB Size here

gArmTokenSpaceGuid.PcdCpuVectorBaseAddress|0x80C40000 # CPU Vectors
gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|26000000
gArmTokenSpaceGuid.PcdArmArchTimerSecIntrNum|13
gArmTokenSpaceGuid.PcdArmArchTimerIntrNum|14
gArmTokenSpaceGuid.PcdArmArchTimerVirtIntrNum|11
gArmTokenSpaceGuid.PcdArmArchTimerHypIntrNum|10
gArmTokenSpaceGuid.PcdGicDistributorBase|0x10101000

gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x10100000

gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultOemRevision|0x00009820
gEmbeddedTokenSpaceGuid.PcdPrePiStackBase|0x80C00000 # UEFI Stack
gEmbeddedTokenSpaceGuid.PcdPrePiStackSize|0x00040000 # 256K stack
#gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|44

gSamsungTokenSpaceGuid.PcdUefiMemPoolBase|0x80C50000 # DXE Heap base address
gSamsungTokenSpaceGuid.PcdUefiMemPoolSize|0x0F3B0000 # UefiMemorySize, DXE heap size

gSamsungTokenSpaceGuid.PcdMipiFrameBufferAddress|0xca000000

gArmPlatformTokenSpaceGuid.PcdCoreCount|8
gArmPlatformTokenSpaceGuid.PcdClusterCount|3

#
# SimpleInit
#
gSimpleInitTokenSpaceGuid.PcdDeviceTreeStore|0x80000000
gSimpleInitTokenSpaceGuid.PcdLoggerdUseConsole|FALSE

[LibraryClasses.common]
KeypadDeviceImplLib|Silicon/Samsung/Exynos9820Pkg/Library/KeypadDeviceImplLib/KeypadDeviceImplLib.inf
PlatformMemoryMapLib|Silicon/Samsung/Exynos9820Pkg/Library/PlatformMemoryMapLib/PlatformMemoryMapLib.inf
PlatformPeiLib|Silicon/Samsung/Exynos9820Pkg/Library/PlatformPeiLib/PlatformPeiLib.inf
PlatformPrePiLib|Silicon/Samsung/Exynos9820Pkg/Library/PlatformPrePiLib/PlatformPrePiLib.inf
MsPlatformDevicesLib|Silicon/Samsung/Exynos9820Pkg/Library/MsPlatformDevicesLib/MsPlatformDevicesLib.inf
SOCSmbiosInfoLib|Silicon/Samsung/Exynos9820Pkg/Library/SOCSmbiosInfoLib/SOCSmbiosInfoLib.inf
254 changes: 254 additions & 0 deletions Platform/Samsung/exynos9820/exynos9820.fdf
Original file line number Diff line number Diff line change
@@ -0,0 +1,254 @@
#
# Copyright (c) 2018, Linaro Limited. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#

################################################################################
#
# FD Section
# The [FD] Section is made up of the definition statements and a
# description of what goes into the Flash Device Image. Each FD section
# defines one flash "device" image. A flash device image may be one of
# the following: Removable media bootable image (like a boot floppy
# image,) an Option ROM image (that would be "flashed" into an add-in
# card,) a System "Flash" image (that would be burned into a system's
# flash) or an Update ("Capsule") image that will be used to update and
# existing system flash.
#
################################################################################

[FD.exynos9820_UEFI]
BaseAddress = $(FD_BASE)|gArmTokenSpaceGuid.PcdFdBaseAddress # The base address of the Firmware
Size = $(FD_SIZE)|gArmTokenSpaceGuid.PcdFdSize
ErasePolarity = 1

# This one is tricky, it must be: BlockSize * NumBlocks = Size
BlockSize = 0x00001000
NumBlocks = 0x700

################################################################################
#
# Following are lists of FD Region layout which correspond to the locations of different
# images within the flash device.
#
# Regions must be defined in ascending order and may not overlap.
#
# A Layout Region start with a eight digit hex offset (leading "0x" required) followed by
# the pipe "|" character, followed by the size of the region, also in hex with the leading
# "0x" characters. Like:
# Offset|Size
# PcdOffsetCName|PcdSizeCName
# RegionType <FV, DATA, or FILE>
#
################################################################################

0x00000000|0x00700000
gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize
FV = FVMAIN_COMPACT

################################################################################
#
# FV Section
#
# [FV] section is used to define what components or modules are placed within a flash
# device file. This section also defines order the components and modules are positioned
# within the image. The [FV] section consists of define statements, set statements and
# module statements.
#
################################################################################

[FV.FvMain]
BlockSize = 0x40
NumBlocks = 0 # This FV gets compressed so make it just big enough
FvAlignment = 8 # FV alignment and FV attributes setting.
ERASE_POLARITY = 1
MEMORY_MAPPED = TRUE
STICKY_WRITE = TRUE
LOCK_CAP = TRUE
LOCK_STATUS = TRUE
WRITE_DISABLED_CAP = TRUE
WRITE_ENABLED_CAP = TRUE
WRITE_STATUS = TRUE
WRITE_LOCK_CAP = TRUE
WRITE_LOCK_STATUS = TRUE
READ_DISABLED_CAP = TRUE
READ_ENABLED_CAP = TRUE
READ_STATUS = TRUE
READ_LOCK_CAP = TRUE
READ_LOCK_STATUS = TRUE

# Apriori
!include Platform/Samsung/exynos9820/Apriori.fdf.inc

INF MdeModulePkg/Core/Dxe/DxeMain.inf

#
# PI DXE Drivers producing Architectural Protocols (EFI Services)
#
INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
INF ArmPkg/Drivers/CpuDxe/CpuDxe.inf
INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf

!if $(SECURE_BOOT_ENABLE) == TRUE
!include ArmPlatformPkg/SecureBootDefaultKeys.fdf.inc
INF SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf
INF SecurityPkg/EnrollFromDefaultKeysApp/EnrollFromDefaultKeysApp.inf
INF SecurityPkg/VariableAuthenticated/SecureBootDefaultKeysDxe/SecureBootDefaultKeysDxe.inf
!endif

INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
INF EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf
INF MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf
INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
INF MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf
INF MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf

INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf

#
# Multiple Console IO support
#
INF EmbeddedPkg/SimpleTextInOutSerial/SimpleTextInOutSerial.inf
INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf

INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf

INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf

# BSP drivers
!include Platform/Samsung/exynos9820/dxe.fdf.inc

INF Silicon/Samsung/ExynosPkg/Drivers/SimpleFbDxe/SimpleFbDxe.inf

INF Silicon/Samsung/ExynosPkg/Drivers/KeypadDxe/KeypadDxe.inf
INF Silicon/Samsung/ExynosPkg/Drivers/GenericKeypadDeviceDxe/GenericKeypadDeviceDxe.inf

#
# USB Host Support
#
INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
INF MdeModulePkg/Bus/Usb/UsbMouseDxe/UsbMouseDxe.inf
INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf

#
# FAT filesystem + GPT/MBR partitioning
#
INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
INF FatPkg/EnhancedFatDxe/Fat.inf
INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
INF MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystemDxe.inf
INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf

INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf

#
# ACPI Support
#
INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
INF MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf
INF MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf

#
# FDT support
#
INF EmbeddedPkg/Drivers/DtPlatformDxe/DtPlatformDxe.inf

#
# SMBIOS Support
#
INF Platform/RenegadePkg/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.inf
INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf

#
# UEFI applications
#
INF ShellPkg/Application/Shell/Shell.inf
!ifdef $(INCLUDE_TFTP_COMMAND)
INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf
!endif #$(INCLUDE_TFTP_COMMAND)

INF Platform/EFI_Binaries/Applications/LinuxSimpleMassStorage/LinuxSimpleMassStorage.inf

#
# Bds
#
INF MdeModulePkg/Universal/PrintDxe/PrintDxe.inf
INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
INF MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf
INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
INF MdeModulePkg/Application/UiApp/UiApp.inf
INF Platform/RenegadePkg/Drivers/LogoDxe/LogoDxe.inf

#
# Windows kernel patcher
#
INF Platform/RenegadePkg/Drivers/KernelErrataPatcher/KernelErrataPatcher.inf

#
# Simple Init GUI
#
INF src/main/SimpleInitMain.inf

INF src/kernelfdt/KernelFdtDxe.inf

!if $(AB_SLOTS_SUPPORT) == TRUE
INF GPLDrivers/Drivers/BootSlotDxe/BootSlotDxe.inf
INF GPLDrivers/Application/SwitchSlotsApp/SwitchSlotsApp.inf
!endif

!if $(ENABLE_LINUX_UTILS) == 1
FILE FREEFORM = 4b0364cf-1c5b-47aa-9073-d7b5039ce49b {
SECTION RAW = tools/simpleinit.static.uefi.cfg
SECTION UI = "simpleinit.static.uefi.cfg"
}

INF Platform/RenegadePkg/Application/Reboot2PayloadApp/Reboot2PayloadApp.inf
!endif

# Device specific fdf
!include $(DEVICE_DXE_FV_COMPONENTS)

[FV.FVMAIN_COMPACT]
FvAlignment = 8
ERASE_POLARITY = 1
MEMORY_MAPPED = TRUE
STICKY_WRITE = TRUE
LOCK_CAP = TRUE
LOCK_STATUS = TRUE
WRITE_DISABLED_CAP = TRUE
WRITE_ENABLED_CAP = TRUE
WRITE_STATUS = TRUE
WRITE_LOCK_CAP = TRUE
WRITE_LOCK_STATUS = TRUE
READ_DISABLED_CAP = TRUE
READ_ENABLED_CAP = TRUE
READ_STATUS = TRUE
READ_LOCK_CAP = TRUE
READ_LOCK_STATUS = TRUE

INF Silicon/Samsung/ExynosPkg/PrePi/PrePi.inf

FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 {
SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE {
SECTION FV_IMAGE = FVMAIN
}
}

!include Silicon/Samsung/ExynosPkg/ExynosCommonFdf.inc


Empty file.
Loading

0 comments on commit 0e98e85

Please sign in to comment.