#/** @file
#  This file is used to define the BIOS ID parameters of the build.
#  This file is processed by GenBiosId.
#  The BIOS ID format conforms to "BIOS Revision Identification Specification", Rev. 0.7, 6/27/2001.
#
#  BIOS ID string format:
#    $(BOARD_ID)$(BOARD_REV).$(OEM_ID).$(VERSION_MAJOR).$(BUILD_TYPE)$(VERSION_MINOR).YYMMDDHHMM
#  All fields must have a fixed length.
#    Example: "TRFTCRB1.86C.0008.D03.0506081529"
#
#  Copyright (c) 2008  - 2015, Intel Corporation. All rights reserved.<BR>
#                                                                                  

# This program and the accompanying materials are licensed and made available under

# the terms and conditions of the BSD License that 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.    

#                                                                                  

#
#**/

BOARD_REV     = 1
OEM_ID        = I32
BUILD_TYPE    = R

BOARD_ID = BLAKCRB
VERSION_MAJOR = 0090
VERSION_MINOR = 01
