#
# Marvell BSD License Option
#
# If you received this File from Marvell, you may opt to use, redistribute
# and/or modify this File under the following licensing terms.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
#
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# * Neither the name of Marvell nor the names of its contributors may be
# used to endorse or promote products derived from this software without
# specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#

[Defines]
 INF_VERSION = 0x00010006
 BASE_NAME = UefiShellSpiFlashLib
 FILE_GUID = 2f2dd8c9-221f-4acf-afe5-5897264c5774
 MODULE_TYPE = UEFI_APPLICATION
 VERSION_STRING = 0.1
 LIBRARY_CLASS = NULL|UEFI_APPLICATION UEFI_DRIVER
 CONSTRUCTOR = ShellSpiFlashLibConstructor
 DESTRUCTOR = ShellSpiFlashLibDestructor

[Sources]
 SpiFlashCmd.c
 SpiFlashCmd.uni

[Packages]
 MdePkg/MdePkg.dec
 ShellPkg/ShellPkg.dec
 MdeModulePkg/MdeModulePkg.dec
 OpenPlatformPkg/Platforms/Marvell/Marvell.dec

[LibraryClasses]
 UefiLib
 UefiBootServicesTableLib
 MemoryAllocationLib
 BaseLib
 BaseMemoryLib
 DebugLib
 ShellCommandLib
 ShellLib
 UefiLib
 UefiRuntimeServicesTableLib
 PcdLib
 HiiLib
 FileHandleLib

[Pcd]
 gMarvellTokenSpaceGuid.PcdSpiFlashId

[Protocols]
 gMarvellSpiFlashProtocolGuid
 gMarvellSpiMasterProtocolGuid

[Guids]
 gShellSfHiiGuid
