Home | History | Annotate | Download | only in BeagleBoardPkg
      1 # FLASH layout file for Beagle board.
      2 #
      3 # Copyright (c) 2009, Apple Inc. All rights reserved.<BR>
      4 # Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>
      5 # Copyright (c) 2016, Linaro, Ltd. All rights reserved.<BR>
      6 #
      7 #    This program and the accompanying materials
      8 #    are licensed and made available under the terms and conditions of the BSD License
      9 #    which accompanies this distribution. The full text of the license may be found at
     10 #    http://opensource.org/licenses/bsd-license.php
     11 #
     12 #    THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     13 #    WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     14 #
     15 
     16 ################################################################################
     17 #
     18 # FD Section
     19 # The [FD] Section is made up of the definition statements and a
     20 # description of what goes into  the Flash Device Image.  Each FD section
     21 # defines one flash "device" image.  A flash device image may be one of
     22 # the following: Removable media bootable image (like a boot floppy
     23 # image,) an Option ROM image (that would be "flashed" into an add-in
     24 # card,) a System "Flash"  image (that would be burned into a system's
     25 # flash) or an Update ("Capsule") image that will be used to update and
     26 # existing system flash.
     27 #
     28 ################################################################################
     29 
     30 
     31 [FD.BeagleBoard_EFI]
     32 BaseAddress   = 0x80007DF8|gArmTokenSpaceGuid.PcdFdBaseAddress  #The base address of the FLASH Device.
     33 Size          = 0x000B0000|gArmTokenSpaceGuid.PcdFdSize         #The size in bytes of the FLASH Device
     34 ErasePolarity = 1
     35 BlockSize     = 0x1
     36 NumBlocks     = 0xB0000
     37 
     38 ################################################################################
     39 #
     40 # Following are lists of FD Region layout which correspond to the locations of different
     41 # images within the flash device.
     42 #
     43 # Regions must be defined in ascending order and may not overlap.
     44 #
     45 # A Layout Region start with a eight digit hex offset (leading "0x" required) followed by
     46 # the pipe "|" character, followed by the size of the region, also in hex with the leading
     47 # "0x" characters. Like:
     48 # Offset|Size
     49 # PcdOffsetCName|PcdSizeCName
     50 # RegionType <FV, DATA, or FILE>
     51 #
     52 ################################################################################
     53 0x00000000|0x00000200
     54 FILE = BeagleBoardPkg/ConfigurationHeader.bin
     55 
     56 0x00000200|0x00000008
     57 DATA = {
     58   0xF8, 0xFD, 0x0A, 0x00,   # image size:   0xB0000 - 0x208 == 0xAFDF8
     59   0x00, 0x80, 0x00, 0x80    # entry point:  0x80008000
     60 }
     61 
     62 0x00000208|0x000AFDF8
     63 gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize
     64 FV = FVMAIN_COMPACT
     65 
     66 ################################################################################
     67 #
     68 # FV Section
     69 #
     70 # [FV] section is used to define what components or modules are placed within a flash
     71 # device file.  This section also defines order the components and modules are positioned
     72 # within the image.  The [FV] section consists of define statements, set statements and
     73 # module statements.
     74 #
     75 ################################################################################
     76 
     77 [FV.FvMain]
     78 BlockSize          = 0x1
     79 NumBlocks          = 0         # This FV gets compressed so make it just big enough
     80 FvAlignment        = 8         # FV alignment and FV attributes setting.
     81 ERASE_POLARITY     = 1
     82 MEMORY_MAPPED      = TRUE
     83 STICKY_WRITE       = TRUE
     84 LOCK_CAP           = TRUE
     85 LOCK_STATUS        = TRUE
     86 WRITE_DISABLED_CAP = TRUE
     87 WRITE_ENABLED_CAP  = TRUE
     88 WRITE_STATUS       = TRUE
     89 WRITE_LOCK_CAP     = TRUE
     90 WRITE_LOCK_STATUS  = TRUE
     91 READ_DISABLED_CAP  = TRUE
     92 READ_ENABLED_CAP   = TRUE
     93 READ_STATUS        = TRUE
     94 READ_LOCK_CAP      = TRUE
     95 READ_LOCK_STATUS   = TRUE
     96 FvNameGuid         = d0dd3e90-343d-4cb3-8f69-772214989282
     97 
     98   INF MdeModulePkg/Core/Dxe/DxeMain.inf
     99 
    100   #
    101   # PI DXE Drivers producing Architectural Protocols (EFI Services)
    102   #
    103   INF ArmPkg/Drivers/CpuDxe/CpuDxe.inf
    104 
    105   INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
    106   INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
    107   INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
    108   INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
    109   INF MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf
    110   INF EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf
    111 
    112   INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
    113   INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
    114   INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
    115   INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
    116   INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
    117 
    118   INF EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
    119   INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
    120   INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
    121 
    122 !if $(TARGET) == RELEASE
    123   #
    124   # Semi-hosting filesystem
    125   #
    126   INF ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
    127 !endif
    128 
    129   #
    130   # Nand Flash
    131   #
    132   INF Omap35xxPkg/Flash/Flash.inf
    133 
    134   #
    135   # MMC/SD
    136   #
    137   INF EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
    138   INF Omap35xxPkg/MmcHostDxe/MmcHostDxe.inf
    139 
    140   #
    141   # I2C
    142   #
    143   INF Omap35xxPkg/SmbusDxe/Smbus.inf
    144 
    145   #
    146   # SoC Drivers
    147   #
    148   INF Omap35xxPkg/Gpio/Gpio.inf
    149   INF Omap35xxPkg/InterruptDxe/InterruptDxe.inf
    150   INF Omap35xxPkg/TimerDxe/TimerDxe.inf
    151   INF Omap35xxPkg/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.inf
    152 
    153   #
    154   # Power IC
    155   #
    156   INF Omap35xxPkg/TPS65950Dxe/TPS65950.inf
    157 
    158   #
    159   # FAT filesystem + GPT/MBR partitioning
    160   #
    161   INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
    162   INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
    163   INF FatPkg/EnhancedFatDxe/Fat.inf
    164   INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
    165 
    166   #
    167   # USB Support
    168   #
    169 
    170   INF Omap35xxPkg/PciEmulation/PciEmulation.inf
    171   INF MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.inf
    172 
    173   INF MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf
    174   INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
    175   INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
    176 
    177   #
    178   # UEFI application (Shell Embedded Boot Loader)
    179   #
    180   INF ShellPkg/Application/Shell/Shell.inf
    181 
    182   #
    183   # Bds
    184   #
    185   INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
    186   INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
    187   INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
    188   INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
    189   INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
    190   INF MdeModulePkg/Application/UiApp/UiApp.inf
    191 
    192 
    193 [FV.FVMAIN_COMPACT]
    194 FvAlignment        = 8
    195 ERASE_POLARITY     = 1
    196 MEMORY_MAPPED      = TRUE
    197 STICKY_WRITE       = TRUE
    198 LOCK_CAP           = TRUE
    199 LOCK_STATUS        = TRUE
    200 WRITE_DISABLED_CAP = TRUE
    201 WRITE_ENABLED_CAP  = TRUE
    202 WRITE_STATUS       = TRUE
    203 WRITE_LOCK_CAP     = TRUE
    204 WRITE_LOCK_STATUS  = TRUE
    205 READ_DISABLED_CAP  = TRUE
    206 READ_ENABLED_CAP   = TRUE
    207 READ_STATUS        = TRUE
    208 READ_LOCK_CAP      = TRUE
    209 READ_LOCK_STATUS   = TRUE
    210 
    211   INF ArmPlatformPkg/PrePi/PeiUniCore.inf
    212 
    213   FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 {
    214     SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE {
    215       SECTION FV_IMAGE = FVMAIN
    216     }
    217   }
    218 
    219 
    220 ################################################################################
    221 #
    222 # Rules are use with the [FV] section's module INF type to define
    223 # how an FFS file is created for a given INF file. The following Rule are the default
    224 # rules for the different module type. User can add the customized rules to define the
    225 # content of the FFS file.
    226 #
    227 ################################################################################
    228 
    229 
    230 ############################################################################
    231 # Example of a DXE_DRIVER FFS file with a Checksum encapsulation section   #
    232 ############################################################################
    233 #
    234 #[Rule.Common.DXE_DRIVER]
    235 #  FILE DRIVER = $(NAMED_GUID) {
    236 #    DXE_DEPEX    DXE_DEPEX               Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
    237 #    COMPRESS PI_STD {
    238 #      GUIDED {
    239 #        PE32     PE32                    $(INF_OUTPUT)/$(MODULE_NAME).efi
    240 #        UI       STRING="$(MODULE_NAME)" Optional
    241 #        VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
    242 #      }
    243 #    }
    244 #  }
    245 #
    246 ############################################################################
    247 
    248 [Rule.Common.SEC]
    249   FILE SEC = $(NAMED_GUID) RELOCS_STRIPPED {
    250     TE  TE    Align = 32                $(INF_OUTPUT)/$(MODULE_NAME).efi
    251   }
    252 
    253 [Rule.Common.PEI_CORE]
    254   FILE PEI_CORE = $(NAMED_GUID) {
    255     TE     TE                           $(INF_OUTPUT)/$(MODULE_NAME).efi
    256     UI     STRING ="$(MODULE_NAME)" Optional
    257   }
    258 
    259 [Rule.Common.PEIM]
    260   FILE PEIM = $(NAMED_GUID) {
    261      PEI_DEPEX PEI_DEPEX Optional       $(INF_OUTPUT)/$(MODULE_NAME).depex
    262      PE32      PE32                     $(INF_OUTPUT)/$(MODULE_NAME).efi
    263      UI       STRING="$(MODULE_NAME)" Optional
    264   }
    265 
    266 [Rule.Common.PEIM.TIANOCOMPRESSED]
    267   FILE PEIM = $(NAMED_GUID) DEBUG_MYTOOLS_IA32 {
    268     PEI_DEPEX PEI_DEPEX Optional        $(INF_OUTPUT)/$(MODULE_NAME).depex
    269     GUIDED A31280AD-481E-41B6-95E8-127F4C984779 PROCESSING_REQUIRED = TRUE {
    270       PE32      PE32                    $(INF_OUTPUT)/$(MODULE_NAME).efi
    271       UI        STRING="$(MODULE_NAME)" Optional
    272     }
    273   }
    274 
    275 [Rule.Common.DXE_CORE]
    276   FILE DXE_CORE = $(NAMED_GUID) {
    277     PE32     PE32                       $(INF_OUTPUT)/$(MODULE_NAME).efi
    278     UI       STRING="$(MODULE_NAME)" Optional
    279   }
    280 
    281 
    282 [Rule.Common.UEFI_DRIVER]
    283   FILE DRIVER = $(NAMED_GUID) {
    284     DXE_DEPEX    DXE_DEPEX              Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
    285     PE32         PE32                   $(INF_OUTPUT)/$(MODULE_NAME).efi
    286     UI           STRING="$(MODULE_NAME)" Optional
    287   }
    288 
    289 [Rule.Common.DXE_DRIVER]
    290   FILE DRIVER = $(NAMED_GUID) {
    291     DXE_DEPEX    DXE_DEPEX              Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
    292     PE32         PE32                   $(INF_OUTPUT)/$(MODULE_NAME).efi
    293     UI           STRING="$(MODULE_NAME)" Optional
    294   }
    295 
    296 [Rule.Common.DXE_RUNTIME_DRIVER]
    297   FILE DRIVER = $(NAMED_GUID) {
    298     DXE_DEPEX    DXE_DEPEX              Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
    299     PE32         PE32                   $(INF_OUTPUT)/$(MODULE_NAME).efi
    300     UI           STRING="$(MODULE_NAME)" Optional
    301   }
    302 
    303 [Rule.Common.UEFI_APPLICATION]
    304   FILE APPLICATION = $(NAMED_GUID) {
    305     UI     STRING ="$(MODULE_NAME)" Optional
    306     PE32   PE32                         $(INF_OUTPUT)/$(MODULE_NAME).efi
    307   }
    308 
    309 [Rule.Common.UEFI_DRIVER.BINARY]
    310   FILE DRIVER = $(NAMED_GUID) {
    311     DXE_DEPEX DXE_DEPEX Optional      |.depex
    312     PE32      PE32                    |.efi
    313     UI        STRING="$(MODULE_NAME)" Optional
    314     VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
    315   }
    316 
    317 [Rule.Common.UEFI_APPLICATION.BINARY]
    318   FILE APPLICATION = $(NAMED_GUID) {
    319     PE32      PE32                    |.efi
    320     UI        STRING="$(MODULE_NAME)" Optional
    321     VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
    322   }
    323