blob: ea874789f6ecef9032a2b86141849300da0f55c7 [file] [log] [blame]
# Copyright 2023 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.
import("//build/assembly/board_configuration.gni")
import("//build/assembly/board_input_bundle.gni")
assert(current_toolchain == default_toolchain,
"The vim3 board can only be defined in the default toolchain.")
assert(current_cpu == "arm64",
"The vim3 board can only be defined in an arm64 toolchain.")
_base = {
provided_features = [
"fuchsia::driver_framework_v2_support",
"fuchsia::fan",
"fuchsia::mali_gpu",
"fuchsia::pmm_checker",
"fuchsia::usb_peripheral_support",
"fuchsia::wlan_fullmac",
]
input_bundles = [
":main_bundle",
":vulkan_arm_mali",
":rtc_driver",
]
filesystems = {
vbmeta = {
key = "//src/firmware/avb_keys/vim3/vim3-dev-key/vim3_devkey_atx_psk.pem"
key_metadata =
"//src/firmware/avb_keys/vim3/vim3-dev-key/vim3_dev_atx_metadata.bin"
}
zbi = {
compression = "zstd.max"
}
fvm = {
blobfs = {
size_checker_maximum_bytes = 5216665600
}
sparse_output = {
}
fastboot_output = {
# For VIM3, FVM partition uses all of the remaining eMMC.
# However, the total size of the eMMC storage maybe 16G or 32G
# depending on whether it is a basic or pro version. In
# addition, the actual size of the user block allocated by
# Fuchsia can be further different. (i.e. 'lsblk' shows a 29G
# size user block for the 32Gb version). To avoid the risk of
# overflowing available size, here we set it to be the same as
# sherlock (3280mb), which is clearly safe and sufficient for
# now.
truncate_to_length = 3439329280
}
}
fxfs = {
size_checker_maximum_bytes = 5216665600
}
}
kernel = {
contiguous_physical_pages = true
}
platform = {
connectivity = {
network = {
# Prefer using the built-in NIC to the CDC-ether interface.
# TODO(https://fxbug.dev/42068759): Update topopath when dwmac is off
# netdevice migration.
netsvc_interface =
"/dwmac/dwmac/Designware-MAC/netdevice-migration/network-device"
}
}
development_support = {
# Enable the Debug Access Port (DAP) for improved lockup/crash diagnostics.
enable_debug_access_port_for_soc = "amlogic-a311d"
}
}
}
board_configuration("vim3") {
forward_variables_from(_base, "*")
input_bundles += [ ":board_driver" ]
}
board_configuration("vim3-devicetree") {
forward_variables_from(_base, "*")
input_bundles += [ ":devicetree_board_driver" ]
devicetree = "//src/devices/board/drivers/vim3-devicetree:vim3"
}
board_input_bundle("main_bundle") {
base_packages = [ "//src/graphics/bin/vulkan_loader" ]
drivers = [
{
package_target =
"//src/connectivity/ethernet/drivers/aml-ethernet:package"
package_set = "bootfs"
driver_components = [ "meta/aml-ethernet.cm" ]
},
{
package_target = "//src/devices/hrtimer/drivers/aml-hrtimer:package"
package_set = "bootfs"
driver_components = [ "meta/aml-hrtimer.cm" ]
},
{
package_target = "//src/connectivity/ethernet/drivers/dwmac:package"
package_set = "bootfs"
driver_components = [ "meta/dwmac.cm" ]
},
{
package_target =
"//src/connectivity/ethernet/drivers/realtek-8211f:package"
package_set = "bootfs"
driver_components = [ "meta/realtek-8211f.cm" ]
},
{
package_target = "//src/devices/adc/drivers/aml-saradc:package"
package_set = "bootfs"
driver_components = [ "meta/aml-saradc.cm" ]
},
{
package_target = "//src/devices/block/drivers/aml-sdmmc:package"
package_set = "bootfs"
driver_components = [ "meta/aml-sdmmc.cm" ]
},
{
package_target = "//src/devices/block/drivers/bootpart:package"
package_set = "bootfs"
driver_components = [ "meta/bootpart.cm" ]
},
{
package_target = "//src/devices/clock/drivers/vim3-clk:bazel_package"
package_set = "bootfs"
driver_components = [ "meta/vim3-clk.cm" ]
},
{
package_target = "//src/devices/cpu/drivers/aml-cpu:package"
package_set = "bootfs"
driver_components = [ "meta/aml-cpu.cm" ]
},
{
package_target = "//src/devices/gpio/drivers/aml-gpio:bazel_package"
package_set = "bootfs"
driver_components = [ "meta/aml-gpio.cm" ]
},
{
package_target = "//src/devices/gpio/drivers/ti-tca6408a:package"
package_set = "bootfs"
driver_components = [ "meta/ti-tca6408a.cm" ]
},
{
package_target = "//src/devices/i2c/drivers/aml-i2c:bazel_package"
package_set = "bootfs"
driver_components = [ "meta/aml-i2c.cm" ]
},
{
package_target = "//src/devices/mcu/drivers/vim3-mcu:package"
package_set = "bootfs"
driver_components = [ "meta/vim3-mcu.cm" ]
},
{
package_target = "//src/devices/ml/drivers/aml-nna:package"
package_set = "bootfs"
driver_components = [ "meta/aml-nna.cm" ]
},
{
package_target = "//src/devices/power/drivers/aml-meson-power:package"
package_set = "bootfs"
driver_components = [ "meta/aml-meson-power.cm" ]
},
{
package_target = "//src/devices/power/drivers/aml-pwm-regulator:package"
package_set = "bootfs"
driver_components = [ "meta/aml-pwm-regulator.cm" ]
},
{
package_target = "//src/devices/power/drivers/fusb302:package"
package_set = "bootfs"
driver_components = [ "meta/fusb302.cm" ]
},
{
package_target = "//src/devices/pwm/drivers/aml-pwm:package"
package_set = "bootfs"
driver_components = [ "meta/aml-pwm.cm" ]
},
{
package_target = "//src/devices/pwm/drivers/aml-pwm-init:package"
package_set = "bootfs"
driver_components = [ "meta/aml-pwm-init.cm" ]
},
{
package_target = "//src/devices/serial/drivers/aml-uart:package-dfv2"
package_set = "bootfs"
driver_components = [ "meta/aml-uart-dfv2.cm" ]
},
{
package_target = "//src/devices/thermal/drivers/aml-thermal:package"
package_set = "bootfs"
driver_components = [ "meta/aml-thermal.cm" ]
},
{
package_target = "//src/devices/temperature/drivers/aml-trip:package"
package_set = "bootfs"
driver_components = [ "meta/aml-trip.cm" ]
},
{
package_target = "//src/devices/suspend/drivers/aml-suspend:package"
package_set = "bootfs"
driver_components = [ "meta/aml-suspend.cm" ]
},
{
package_target = "//src/devices/usb/drivers/dwc2:package"
package_set = "bootfs"
driver_components = [ "meta/dwc2.cm" ]
},
{
package_target = "//src/devices/usb/drivers/aml-usb-phy:bazel_package"
package_set = "bootfs"
driver_components = [ "meta/aml-usb-phy.cm" ]
},
{
package_target = "//src/graphics/display/drivers/aml-canvas:package"
package_set = "bootfs"
driver_components = [ "meta/aml-canvas.cm" ]
},
{
package_target = "//src/graphics/display/drivers/amlogic-display:package"
package_set = "bootfs"
driver_components = [ "meta/amlogic-display.cm" ]
},
{
package_target =
"//src/graphics/display/drivers/vim3-display-detect:package"
package_set = "bootfs"
driver_components = [ "meta/vim3-display-detect.cm" ]
},
{
package_target = "//src/graphics/drivers/aml-gpu:aml-gpu-package"
package_set = "bootfs"
driver_components = [ "meta/aml-gpu.cm" ]
},
{
package_target = "//src/media/audio/drivers/aml-g12-tdm:aml-g12-composite-bazel-package"
package_set = "bootfs"
driver_components = [ "meta/aml-g12-composite.cm" ]
},
{
package_target = "//src/ui/backlight/drivers/vim3-pwm-backlight:package"
package_set = "bootfs"
driver_components = [ "meta/vim3-pwm-backlight.cm" ]
},
{
package_target = "//src/ui/input/drivers/adc-buttons:bazel_package"
package_set = "bootfs"
driver_components = [ "meta/adc-buttons.cm" ]
},
{
package_target = "//src/ui/input/drivers/focaltech:package"
package_set = "bootfs"
driver_components = [ "meta/focaltech.cm" ]
},
# arm64 common drivers
{
package_target = "//src/devices/bus/drivers/pci:package"
package_set = "bootfs"
driver_components = [ "meta/bus-pci.cm" ]
},
{
package_target = "//src/devices/usb/drivers/xhci:package"
package_set = "bootfs"
driver_components = [ "meta/xhci.cm" ]
},
# Base drivers
{
package_target = "//src/connectivity/wlan/drivers/third_party/broadcom/brcmfmac:brcmfmac-vim3"
package_set = "base"
driver_components = [ "meta/brcmfmac.cm" ]
},
{
package_target = "//src/connectivity/bluetooth/hci/vendor/broadcom"
package_set = "base"
driver_components = [ "meta/bt-hci-broadcom.cm" ]
},
{
package_target = "//src/graphics/drivers/msd-arm-mali:msd-arm-mali"
package_set = "base"
driver_components = [ "meta/msd_arm.cm" ]
},
{
package_target = "//src/graphics/drivers/msd-vsi-vip"
package_set = "base"
driver_components = [ "meta/libmsd_vsi.cm" ]
},
{
package_target = "//src/connectivity/bluetooth/hci/transport/uart"
package_set = "base"
driver_components = [ "meta/bt-transport-uart.cm" ]
},
{
package_target = "//src/power/fake-powersource:fake-battery"
package_set = "base"
driver_components = [ "meta/fake_battery.cm" ]
},
]
}
board_input_bundle("board_driver") {
configuration = {
power_manager =
"//src/power/power-manager/node_config/vim3_node_config.json5"
thermal = "//src/power/power-manager/thermal_config/vim3.json5"
}
drivers = [
{
package_target = "//src/devices/board/drivers/vim3:package"
package_set = "bootfs"
driver_components = [ "meta/vim3.cm" ]
},
]
}
board_input_bundle("devicetree_board_driver") {
configuration = {
power_manager = "//src/power/power-manager/node_config/vim3_devicetree_node_config.json5"
thermal = "//src/power/power-manager/thermal_config/vim3_devicetree.json5"
}
drivers = [
{
package_target =
"//src/devices/board/drivers/vim3-devicetree:bazel_package"
package_set = "bootfs"
driver_components = [ "meta/vim3-devicetree.cm" ]
},
]
}
board_input_bundle("vulkan_arm_mali") {
base_packages =
[ "//src/graphics/drivers/arm-mali/icd:libvulkan_arm_g52_r0p0" ]
}
board_input_bundle("rtc_driver") {
drivers = [
{
package_target = "//src/devices/rtc/drivers/nxp:pcf8563"
package_set = "base"
driver_components = [ "meta/pcf8563.cm" ]
},
]
}