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