# Copyright 2024 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/emac/BUILD.bazel

# NOTE: This is the board for board bringup demonstration purpose only. Please
# don't expand this board for other usages.

target_cpu = "arm64"

board_name = "emac"
board_description = "A demo purpose board can be used on vim3 hardware"

bazel_product_bundle_board = "emac"

has_board = true

# It's using the vim3 partitions because this is a demo that runs on the vim3 hardware
partitions_config_label = "//boards/partitions/vim3:vim3"
