| /* |
| * Copyright (c) 2018 The Fuchsia Authors |
| * |
| * SPDX-License-Identifier: BSD-3-Clause |
| */ |
| |
| #ifndef _ZIRCON_ZIRCON_H_ |
| #define _ZIRCON_ZIRCON_H_ |
| |
| #include <lib/zbi-format/driver-config.h> |
| #include <zircon/hw/gpt.h> |
| #include <libavb/libavb.h> |
| #include <libzbi/zbi.h> |
| |
| /* called before booting to allow board specific additions to the bootdata */ |
| int zircon_preboot(zbi_header_t *zbi, size_t capacity); |
| |
| AvbIOResult read_rollback_index(AvbOps *ops, size_t rollback_index_location, |
| uint64_t *out_rollback_index); |
| |
| AvbIOResult write_rollback_index(AvbOps *ops, size_t rollback_index_location, |
| uint64_t rollback_index); |
| |
| AvbIOResult read_is_device_unlocked(AvbOps *ops, bool *out_is_unlocked); |
| |
| // Add bootloader file items. |
| zbi_result_t AddBootloaderFiles(const char *name, const void *data, size_t len); |
| |
| // Loads and verifies an image from RAM. |
| // |
| // This will do the normal boot flow validation on the given image and copy |
| // it into the kernel load buffer described by the "loadaddr"/"loadsize" env |
| // vars. |
| // |
| // If this function succeeds, you may call zircon_ram_boot() to boot the |
| // loaded image. |
| // |
| // Args: |
| // image: buffer containing the image. |
| // size: image size. |
| // |
| // Returns 0 on success. |
| int zircon_ram_load(const void *image, size_t size); |
| |
| // Boots a Zircon image previously loaded via zircon_ram_load(). |
| // |
| // This function will not return unless a failure occurs. |
| void zircon_ram_boot(void); |
| |
| // Constructs a zbi container containing the Vim3 specific ZBI items. |
| int get_board_zbi_items_container(void* buffer, size_t capacity); |
| |
| #endif |