xref: /aosp_15_r20/external/coreboot/src/security/vboot/vbnv_layout.h (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef __VBOOT_VBNV_LAYOUT_H__
4 #define __VBOOT_VBNV_LAYOUT_H__
5 
6 #define VBOOT_VBNV_BLOCK_SIZE 16	/* Size of NV storage block in bytes */
7 
8 /* Constants for NV storage.  We use this rather than structs and
9  * bitfields so the data format is consistent across platforms and
10  * compilers.
11  */
12 #define HEADER_OFFSET                0
13 #define HEADER_MASK                     0xC0
14 #define HEADER_SIGNATURE                0x40
15 #define HEADER_FIRMWARE_SETTINGS_RESET  0x20
16 #define HEADER_KERNEL_SETTINGS_RESET    0x10
17 
18 #define BOOT_OFFSET                  1
19 #define BOOT_DEBUG_RESET_MODE           0x80
20 #define BOOT_DISABLE_DEV_REQUEST        0x40
21 #define BOOT_DISPLAY_REQUEST            0x20
22 #define BOOT_TRY_B_COUNT_MASK           0x0F
23 
24 #define RECOVERY_OFFSET              2
25 #define LOCALIZATION_OFFSET          3
26 
27 #define DEV_FLAGS_OFFSET             4
28 #define DEV_BOOT_USB_MASK               0x01
29 #define DEV_BOOT_SIGNED_ONLY_MASK       0x02
30 #define DEV_ENABLE_UDC                  0x40
31 
32 #define MISC_FLAGS_OFFSET            8
33 #define MISC_FLAGS_BATTERY_CUTOFF_MASK  0x08
34 
35 #define KERNEL_FIELD_OFFSET         11
36 #define CRC_OFFSET                  15
37 
38 #endif /* __VBOOT_VBNV_LAYOUT_H__ */
39