Clone the PrePi implementation for BeagleBoardPkg, so we can start removing some of the awkward optimizations that we'd rather not keep in reference code. Note that we only clone the unicore ARM flavor, which is all we need for BeagleBoard. In the case of PrePi, it involves libraries included by the SEC startup code that are exposed to DXE core via HOBs containing function pointers, which forces us to keep the primary FV reserved in memory. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
324 lines
11 KiB
Plaintext
324 lines
11 KiB
Plaintext
# FLASH layout file for Beagle board.
|
|
#
|
|
# Copyright (c) 2009, Apple Inc. All rights reserved.<BR>
|
|
# Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved.<BR>
|
|
# Copyright (c) 2016, Linaro, Ltd. All rights reserved.<BR>
|
|
#
|
|
# 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.BeagleBoard_EFI]
|
|
BaseAddress = 0x80007DF8|gArmTokenSpaceGuid.PcdFdBaseAddress #The base address of the FLASH Device.
|
|
Size = 0x000B0000|gArmTokenSpaceGuid.PcdFdSize #The size in bytes of the FLASH Device
|
|
ErasePolarity = 1
|
|
BlockSize = 0x1
|
|
NumBlocks = 0xB0000
|
|
|
|
################################################################################
|
|
#
|
|
# 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|0x00000200
|
|
FILE = BeagleBoardPkg/ConfigurationHeader.bin
|
|
|
|
0x00000200|0x00000008
|
|
DATA = {
|
|
0xF8, 0xFD, 0x0A, 0x00, # image size: 0xB0000 - 0x208 == 0xAFDF8
|
|
0x00, 0x80, 0x00, 0x80 # entry point: 0x80008000
|
|
}
|
|
|
|
0x00000208|0x000AFDF8
|
|
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 = 0x1
|
|
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
|
|
FvNameGuid = d0dd3e90-343d-4cb3-8f69-772214989282
|
|
|
|
INF MdeModulePkg/Core/Dxe/DxeMain.inf
|
|
|
|
#
|
|
# PI DXE Drivers producing Architectural Protocols (EFI Services)
|
|
#
|
|
INF ArmPkg/Drivers/CpuDxe/CpuDxe.inf
|
|
|
|
INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
|
|
INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
|
INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
|
INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
|
|
INF MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf
|
|
INF EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.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/SerialDxe/SerialDxe.inf
|
|
INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
|
|
|
|
INF MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf
|
|
INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
|
|
INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
|
|
|
|
!if $(TARGET) == RELEASE
|
|
#
|
|
# Semi-hosting filesystem
|
|
#
|
|
INF ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
|
|
!endif
|
|
|
|
#
|
|
# Nand Flash
|
|
#
|
|
INF Omap35xxPkg/Flash/Flash.inf
|
|
|
|
#
|
|
# MMC/SD
|
|
#
|
|
INF EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
|
|
INF Omap35xxPkg/MmcHostDxe/MmcHostDxe.inf
|
|
|
|
#
|
|
# I2C
|
|
#
|
|
INF Omap35xxPkg/SmbusDxe/Smbus.inf
|
|
|
|
#
|
|
# SoC Drivers
|
|
#
|
|
INF Omap35xxPkg/Gpio/Gpio.inf
|
|
INF Omap35xxPkg/InterruptDxe/InterruptDxe.inf
|
|
INF Omap35xxPkg/TimerDxe/TimerDxe.inf
|
|
INF Omap35xxPkg/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.inf
|
|
|
|
#
|
|
# Power IC
|
|
#
|
|
INF Omap35xxPkg/TPS65950Dxe/TPS65950.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
|
|
|
|
#
|
|
# USB Support
|
|
#
|
|
|
|
INF Omap35xxPkg/PciEmulation/PciEmulation.inf
|
|
INF MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.inf
|
|
|
|
INF MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf
|
|
INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
|
|
INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
|
|
|
|
#
|
|
# UEFI application (Shell Embedded Boot Loader)
|
|
#
|
|
INF ShellPkg/Application/Shell/Shell.inf
|
|
INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf
|
|
|
|
#
|
|
# Bds
|
|
#
|
|
INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
|
|
INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
|
INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
|
|
INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
|
|
INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
|
|
INF MdeModulePkg/Application/UiApp/UiApp.inf
|
|
|
|
|
|
[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 BeagleBoardPkg/PrePi/PeiUniCore.inf
|
|
|
|
FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 {
|
|
SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE {
|
|
SECTION FV_IMAGE = FVMAIN
|
|
}
|
|
}
|
|
|
|
|
|
################################################################################
|
|
#
|
|
# Rules are use with the [FV] section's module INF type to define
|
|
# how an FFS file is created for a given INF file. The following Rule are the default
|
|
# rules for the different module type. User can add the customized rules to define the
|
|
# content of the FFS file.
|
|
#
|
|
################################################################################
|
|
|
|
|
|
############################################################################
|
|
# Example of a DXE_DRIVER FFS file with a Checksum encapsulation section #
|
|
############################################################################
|
|
#
|
|
#[Rule.Common.DXE_DRIVER]
|
|
# FILE DRIVER = $(NAMED_GUID) {
|
|
# DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
|
|
# COMPRESS PI_STD {
|
|
# GUIDED {
|
|
# PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
|
# UI STRING="$(MODULE_NAME)" Optional
|
|
# VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
|
# }
|
|
# }
|
|
# }
|
|
#
|
|
############################################################################
|
|
|
|
[Rule.Common.SEC]
|
|
FILE SEC = $(NAMED_GUID) RELOCS_STRIPPED {
|
|
TE TE Align = 32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
|
}
|
|
|
|
[Rule.Common.PEI_CORE]
|
|
FILE PEI_CORE = $(NAMED_GUID) {
|
|
TE TE $(INF_OUTPUT)/$(MODULE_NAME).efi
|
|
UI STRING ="$(MODULE_NAME)" Optional
|
|
}
|
|
|
|
[Rule.Common.PEIM]
|
|
FILE PEIM = $(NAMED_GUID) {
|
|
PEI_DEPEX PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
|
|
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
|
UI STRING="$(MODULE_NAME)" Optional
|
|
}
|
|
|
|
[Rule.Common.PEIM.TIANOCOMPRESSED]
|
|
FILE PEIM = $(NAMED_GUID) DEBUG_MYTOOLS_IA32 {
|
|
PEI_DEPEX PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
|
|
GUIDED A31280AD-481E-41B6-95E8-127F4C984779 PROCESSING_REQUIRED = TRUE {
|
|
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
|
UI STRING="$(MODULE_NAME)" Optional
|
|
}
|
|
}
|
|
|
|
[Rule.Common.DXE_CORE]
|
|
FILE DXE_CORE = $(NAMED_GUID) {
|
|
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
|
UI STRING="$(MODULE_NAME)" Optional
|
|
}
|
|
|
|
|
|
[Rule.Common.UEFI_DRIVER]
|
|
FILE DRIVER = $(NAMED_GUID) {
|
|
DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
|
|
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
|
UI STRING="$(MODULE_NAME)" Optional
|
|
}
|
|
|
|
[Rule.Common.DXE_DRIVER]
|
|
FILE DRIVER = $(NAMED_GUID) {
|
|
DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
|
|
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
|
UI STRING="$(MODULE_NAME)" Optional
|
|
}
|
|
|
|
[Rule.Common.DXE_RUNTIME_DRIVER]
|
|
FILE DRIVER = $(NAMED_GUID) {
|
|
DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
|
|
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
|
UI STRING="$(MODULE_NAME)" Optional
|
|
}
|
|
|
|
[Rule.Common.UEFI_APPLICATION]
|
|
FILE APPLICATION = $(NAMED_GUID) {
|
|
UI STRING ="$(MODULE_NAME)" Optional
|
|
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
|
}
|
|
|
|
[Rule.Common.UEFI_DRIVER.BINARY]
|
|
FILE DRIVER = $(NAMED_GUID) {
|
|
DXE_DEPEX DXE_DEPEX Optional |.depex
|
|
PE32 PE32 |.efi
|
|
UI STRING="$(MODULE_NAME)" Optional
|
|
VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
|
}
|
|
|
|
[Rule.Common.UEFI_APPLICATION.BINARY]
|
|
FILE APPLICATION = $(NAMED_GUID) {
|
|
PE32 PE32 |.efi
|
|
UI STRING="$(MODULE_NAME)" Optional
|
|
VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
|
}
|