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

CHROMEOS_KERNEL_SPLITCONFIG="chromeos-pinetrail-i386"

U_BOOT_CONFIG_USE="coreboot"
U_BOOT_FDT_USE="mario"

BOARD_COMPILER_FLAGS="-march=atom -mtune=atom -mfpmath=sse"

# Initial value just for style purposes.
USE=""

USE="${USE} als gobi google_qdl mario"
USE="${USE} novatel_gobi pineview watchdog"

# Disable Flash low latency audio as the CPU here can't keep up.
USE="${USE} disable_low_latency_audio"

# Use 3.8 kernel with 3.4 wifi stack
USE="${USE} kernel-3_8 wireless34"

# Allow consumer kiosk.
# NOTE: Deprecating feature. New board should NOT have it.
USE="${USE} allow_consumer_kiosk"

# Disable containers because kernel-3_8 doesn't support everything needed.
USE="${USE} -containers"

# Disable unibuild on this legacy board. This is only for existing (as of Jan 2019)
# boards as all new boards must be unibuild enabled moving forward. Do not copy this
# to new boards as it will be rejected. See
# https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/chromeos-config/README.md
# for further details about chromeos-config, which is the required entry point for
# unified builds.
USE="${USE} -unibuild"

# Enable background blur.
USE="${USE} background_blur"

# Disable DisplayLink Manager.
USE="${USE} -dlm"
