# Copyright 2021 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

#  ________  _________  ________  ________
# |\   ____\|\___   ___\\   __  \|\   __  \
# \ \  \___|\|___ \  \_\ \  \|\  \ \  \|\  \
#  \ \_____  \   \ \  \ \ \  \\\  \ \   ____\
#   \|____|\  \   \ \  \ \ \  \\\  \ \  \___|
#     ____\_\  \   \ \__\ \ \_______\ \__\
#    |\_________\   \|__|  \|_______|\|__|
#    \|_________|
#
# Every new addition to this gni file is an instance of tech-debt that must be
# cleaned up to have a proper platform+product interface. Instead add new items
# to the the board definition in:
#
#   //boards/vim3/BUILD.gn

# This board produces a vim3 image which attempts to tune to have a more
# stable performance profile, which can be useful for benchmarking.
#
# So far this does not include any settings that reduce overall performance
# for the sake of more consistent performance.

import("vim3.gni")

board_bootfs_labels = [ "//boards/kernel_cmdline:reduced-perf-variation" ]
