blob: 2c8e4ac6454d416d076a68b7812cb49b443aca12 [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
#include "sw/device/silicon_creator/lib/manifest_def.h"
#include <stdint.h>
/*
* Declarations for the manifest fields populdated by the linker script.
*/
extern char _manifest_code_start[];
extern char _manifest_code_end[];
extern char _manifest_entry_point[];
/**
* Manifest definition.
*
* Definition of the manifest that resides in the `.manifest` section. The
* initializer should explicitly specify the initial values of the members whose
* values are known a compilation time, such as `code_start`, `code_end`, and
* `entry_point`. The remaining fields will be updated in the binary by
* `opentitantool` (overriding the implicitly specified initial value of zero).
*/
OT_SECTION(".manifest")
static manifest_t kManifest_ = {
.code_start = (uint32_t)_manifest_code_start,
.code_end = (uint32_t)_manifest_code_end,
.entry_point = (uint32_t)_manifest_entry_point,
};
const manifest_t *manifest_def_get(void) { return &kManifest_; }