Software APIs
sw
device
lib
arch
boot_stage.h
Go to the documentation of this file.
1
// Copyright lowRISC contributors (OpenTitan project).
2
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
3
// SPDX-License-Identifier: Apache-2.0
4
5
#ifndef OPENTITAN_SW_DEVICE_LIB_ARCH_BOOT_STAGE_H_
6
#define OPENTITAN_SW_DEVICE_LIB_ARCH_BOOT_STAGE_H_
7
8
#ifdef __cplusplus
9
extern
"C"
{
10
#endif // __cplusplus
11
12
/**
13
* @file
14
* @brief This header contains declarations of boot stage information.
15
*
16
* This header contains the boot stage specific symbol declarations that can be
17
* used by the consumer of this library to determine which stage in the boot
18
* sequence the binary is executing from.
19
*
20
* Definitions for these symbols can be found in other files in this directory,
21
* which should be linked in depending on which boot stage an executable is
22
* intended for.
23
*/
24
25
/**
26
* A `boot_stage_t` represents a particular boot stage.
27
*/
28
typedef
enum
boot_stage
{
29
/**
30
* Undefined boot stage.
31
*/
32
kBootStageNotSet
= 0,
33
/**
34
* The ROM boot stage. Represents the non-mutable code that is used to
35
* establish the hardware root of trust in the boot sequence.
36
*/
37
kBootStageRom
= 1,
38
/**
39
* The ROM_EXT boot stage. Represents the first mutable boot stage, which is
40
* signed by the Silicon Creator entity.
41
*/
42
kBootStageRomExt
= 2,
43
/**
44
* The First Silicon Owner boot stage.
45
*/
46
kBootStageOwner
= 3,
47
}
boot_stage_t
;
48
49
/**
50
* Indicates the boot stage that this program has been linked for.
51
*
52
* This can be used, for example, for conditioning an operation on the precise
53
* boot stage.
54
*/
55
extern
const
boot_stage_t
kBootStage
;
56
57
#ifdef __cplusplus
58
}
// extern "C"
59
#endif // __cplusplus
60
61
#endif // OPENTITAN_SW_DEVICE_LIB_ARCH_BOOT_STAGE_H_
Return to
OpenTitan Documentation