blob: 763b3ea16bda95e6063344d2909c0b532f16b5a4 [file] [log] [blame]
# Copyright 2020 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/images/args.gni")
import("//build/images/boot.gni")
import("//build/images/custom_signing.gni")
import("//build/images/manifest.gni")
import("//build/unification/future/images/devmgr_config.gni")
import("//build/zbi/zbi.gni")
assert(current_toolchain == target_toolchain)
# XXX: Temporary solution: we grab every package in the build and ensure that
# these are contributing to the bootfs_manifest that we generate.
generated_file("system_package.manifest_args") {
testonly = true
outputs = [ target_gen_dir + "/system_package.manifest_args" ]
data_keys = [ "system_image_rsps" ]
walk_keys = [ "system_image_barrier" ]
deps = [ "//build/images:packages" ]
deps += [ "//build/input:system_image" ]
}
generate_manifest("boot.manifest") {
visibility = [ ":*" ]
testonly = true
output_name = "boot.manifest"
deps = [ ":system_package.manifest_args" ]
system_package_manifest_args =
get_target_outputs(":system_package.manifest_args")
sources = system_package_manifest_args
args = [ "@" + rebase_path(system_package_manifest_args[0], root_build_dir) ]
}
action("devmgr_config.txt") {
testonly = true
script = "../manifest.py"
outputs = [ "$target_out_dir/devmgr_config.txt" ]
args = [ "--output=" + rebase_path(outputs[0], root_build_dir) ]
deps = [ ":boot.manifest" ]
foreach(entry, devmgr_config) {
args += [ "--entry=$entry" ]
}
}
devmgr_config("devmgr_config") {
label = ":devmgr_config.txt"
testonly = true
}
zbi("bringup") {
testonly = true
output_dir = root_out_dir
deps = [
":devmgr_config",
":system_package.manifest_args",
"//build/unification/future/images:fuchsia_kernel_cmdline",
"//build/unification/zbi:kernel",
]
deps += [ "//build/input:bootfs" ]
metadata = {
images = [
{
name = "zircon-a"
path = "bringup.zbi"
type = "zbi"
archive = true
bootserver_pave = []
# Bringup builds always mexec from the paver
bootserver_pave += [ "--boot" ]
if (custom_signing_script == "" && !use_vboot) {
bootserver_pave += [
"--zircona",
# TODO(fxbug.dev/32475): `dm reboot-recovery` boots from zircon-b instead of
# zircon-r, so for now zedboot is being paved to this slot.
# "--zirconb",
]
}
},
]
image_paths = [
"IMAGE_ZIRCONA_ZBI=bringup.zbi",
# TODO(mcgrathr): The complete ZBI can be used with a separate
# kernel too, the kernel image in it will just be ignored. So
# just use the primary ZBI for this until all uses are
# converted to using the ZBI alone. Then remove this as
# IMAGE_BOOT_RAM variable should no longer be in use.
"IMAGE_BOOT_RAM=bringup.zbi",
]
images += [
{
archive = true
bootserver_netboot = [ "--boot" ]
name = "fuchsia"
path = "bringup.zbi"
type = "zbi"
},
]
image_paths += [
"IMAGE_NETBOOT_RAM=bringup.zbi",
"IMAGE_NETBOOT_ZBI=bringup.zbi",
]
}
}
if (custom_signing_script != "") {
custom_signed_zbi("signed") {
output_name = "bringup.zbi"
testonly = true
deps = [ ":bringup" ]
zbi_outputs = get_target_outputs(":bringup")
zbi = [ zbi_outputs[0] ]
}
}