﻿// *++
//
// Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
// Copyright (c) 2015, Hisilicon Limited. All rights reserved.<BR>
// Copyright (c) 2015, Linaro Limited. 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.
//
// Based on files under Nt32Pkg/MiscSubClassPlatformDxe/
// --*/

/=#

#string STR_MISC_BASE_BOARD_MANUFACTURER     #language en-US  "Huawei Technologies Co., Ltd."
//#string STR_MISC_BASE_BOARD_PRODUCT_NAME     #language en-US  "To Be Filled By O.E.M."
#string STR_MISC_BASE_BOARD_PRODUCT_NAME     #language en-US  "STL2SPCA"
//#string STR_MISC_BASE_BOARD_VERSION          #language en-US  "To Be Filled By O.E.M."
#string STR_MISC_BASE_BOARD_VERSION          #language en-US  "V200R002"
#string STR_MISC_BASE_BOARD_SERIAL_NUMBER    #language en-US  "To Be Filled By O.E.M."
#string STR_MISC_BASE_BOARD_ASSET_TAG        #language en-US  "To Be Filled By O.E.M."
#string STR_MISC_BASE_BOARD_CHASSIS_LOCATION #language en-US  "To Be Filled By O.E.M."
