coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
cbfs_serialized.h File Reference
#include <stdint.h>
#include <vb2_sha.h>
Include dependency graph for cbfs_serialized.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  cbfs_header
 
struct  cbfs_file
 
struct  cbfs_file_attribute
 
struct  cbfs_file_attr_compression
 
struct  cbfs_file_attr_hash
 
struct  cbfs_file_attr_position
 
struct  cbfs_file_attr_align
 
struct  cbfs_file_attr_stageheader
 
struct  cbfs_payload_segment
 this is the sub-header for payload components. More...
 
struct  cbfs_payload
 
struct  cbfs_optionrom
 

Macros

#define CBFS_HEADER_MAGIC   0x4F524243 /* BE: 'ORBC' */
 
#define CBFS_HEADER_VERSION1   0x31313131 /* BE: '1111' */
 
#define CBFS_HEADER_VERSION2   0x31313132 /* BE: '1112' */
 
#define CBFS_HEADER_VERSION   CBFS_HEADER_VERSION2
 
#define CBFS_ALIGNMENT   64
 
#define CBFS_FILE_MAGIC   "LARCHIVE"
 This is a component header - every entry in the CBFS will have this header. More...
 
#define CBFS_METADATA_MAX_SIZE   256
 
#define CBFS_ATTRIBUTE_ALIGN   4
 

Enumerations

enum  cbfs_compression { CBFS_COMPRESS_NONE = 0 , CBFS_COMPRESS_LZMA = 1 , CBFS_COMPRESS_LZ4 = 2 }
 
enum  cbfs_type {
  CBFS_TYPE_QUERY = 0 , CBFS_TYPE_DELETED = 0x00000000 , CBFS_TYPE_NULL = 0xffffffff , CBFS_TYPE_BOOTBLOCK = 0x01 ,
  CBFS_TYPE_CBFSHEADER = 0x02 , CBFS_TYPE_LEGACY_STAGE = 0x10 , CBFS_TYPE_STAGE = 0x11 , CBFS_TYPE_SELF = 0x20 ,
  CBFS_TYPE_FIT = 0x21 , CBFS_TYPE_OPTIONROM = 0x30 , CBFS_TYPE_BOOTSPLASH = 0x40 , CBFS_TYPE_RAW = 0x50 ,
  CBFS_TYPE_VSA = 0x51 , CBFS_TYPE_MBI = 0x52 , CBFS_TYPE_MICROCODE = 0x53 , CBFS_TYPE_FSP = 0x60 ,
  CBFS_TYPE_MRC = 0x61 , CBFS_TYPE_MMA = 0x62 , CBFS_TYPE_EFI = 0x63 , CBFS_TYPE_STRUCT = 0x70 ,
  CBFS_TYPE_CMOS_DEFAULT = 0xaa , CBFS_TYPE_SPD = 0xab , CBFS_TYPE_MRC_CACHE = 0xac , CBFS_TYPE_CMOS_LAYOUT = 0x01aa
}
 
enum  cbfs_architecture {
  CBFS_ARCHITECTURE_UNKNOWN = 0xFFFFFFFF , CBFS_ARCHITECTURE_X86 = 0x00000001 , CBFS_ARCHITECTURE_ARM = 0x00000010 , CBFS_ARCHITECTURE_AARCH64 = 0x0000aa64 ,
  CBFS_ARCHITECTURE_MIPS = 0x00000100 , CBFS_ARCHITECTURE_RISCV = 0xc001d0de , CBFS_ARCHITECTURE_PPC64 = 0x407570ff
}
 
enum  cbfs_file_attr_tag {
  CBFS_FILE_ATTR_TAG_UNUSED = 0 , CBFS_FILE_ATTR_TAG_UNUSED2 = 0xffffffff , CBFS_FILE_ATTR_TAG_COMPRESSION = 0x42435a4c , CBFS_FILE_ATTR_TAG_HASH = 0x68736148 ,
  CBFS_FILE_ATTR_TAG_POSITION = 0x42435350 , CBFS_FILE_ATTR_TAG_ALIGNMENT = 0x42434c41 , CBFS_FILE_ATTR_TAG_IBB = 0x32494242 , CBFS_FILE_ATTR_TAG_PADDING = 0x47444150 ,
  CBFS_FILE_ATTR_TAG_STAGEHEADER = 0x53746748
}
 
enum  cbfs_payload_segment_type {
  PAYLOAD_SEGMENT_CODE = 0x434F4445 , PAYLOAD_SEGMENT_DATA = 0x44415441 , PAYLOAD_SEGMENT_BSS = 0x42535320 , PAYLOAD_SEGMENT_PARAMS = 0x50415241 ,
  PAYLOAD_SEGMENT_ENTRY = 0x454E5452
}
 

Variables

struct cbfs_header __packed
 

Macro Definition Documentation

◆ CBFS_ALIGNMENT

#define CBFS_ALIGNMENT   64

Definition at line 65 of file cbfs_serialized.h.

◆ CBFS_ATTRIBUTE_ALIGN

#define CBFS_ATTRIBUTE_ALIGN   4

Definition at line 122 of file cbfs_serialized.h.

◆ CBFS_FILE_MAGIC

#define CBFS_FILE_MAGIC   "LARCHIVE"

This is a component header - every entry in the CBFS will have this header.

This is how the component is arranged in the ROM:

-----------— <- 0 component header -----------— <- sizeof(struct component) component name -----------— <- offset data ... -----------— <- offset + len

Definition at line 95 of file cbfs_serialized.h.

◆ CBFS_HEADER_MAGIC

#define CBFS_HEADER_MAGIC   0x4F524243 /* BE: 'ORBC' */

Definition at line 44 of file cbfs_serialized.h.

◆ CBFS_HEADER_VERSION

#define CBFS_HEADER_VERSION   CBFS_HEADER_VERSION2

Definition at line 47 of file cbfs_serialized.h.

◆ CBFS_HEADER_VERSION1

#define CBFS_HEADER_VERSION1   0x31313131 /* BE: '1111' */

Definition at line 45 of file cbfs_serialized.h.

◆ CBFS_HEADER_VERSION2

#define CBFS_HEADER_VERSION2   0x31313132 /* BE: '1112' */

Definition at line 46 of file cbfs_serialized.h.

◆ CBFS_METADATA_MAX_SIZE

#define CBFS_METADATA_MAX_SIZE   256

Definition at line 96 of file cbfs_serialized.h.

Enumeration Type Documentation

◆ cbfs_architecture

Enumerator
CBFS_ARCHITECTURE_UNKNOWN 
CBFS_ARCHITECTURE_X86 
CBFS_ARCHITECTURE_ARM 
CBFS_ARCHITECTURE_AARCH64 
CBFS_ARCHITECTURE_MIPS 
CBFS_ARCHITECTURE_RISCV 
CBFS_ARCHITECTURE_PPC64 

Definition at line 70 of file cbfs_serialized.h.

◆ cbfs_compression

Enumerator
CBFS_COMPRESS_NONE 
CBFS_COMPRESS_LZMA 
CBFS_COMPRESS_LZ4 

Definition at line 9 of file cbfs_serialized.h.

◆ cbfs_file_attr_tag

Enumerator
CBFS_FILE_ATTR_TAG_UNUSED 
CBFS_FILE_ATTR_TAG_UNUSED2 
CBFS_FILE_ATTR_TAG_COMPRESSION 
CBFS_FILE_ATTR_TAG_HASH 
CBFS_FILE_ATTR_TAG_POSITION 
CBFS_FILE_ATTR_TAG_ALIGNMENT 
CBFS_FILE_ATTR_TAG_IBB 
CBFS_FILE_ATTR_TAG_PADDING 
CBFS_FILE_ATTR_TAG_STAGEHEADER 

Definition at line 126 of file cbfs_serialized.h.

◆ cbfs_payload_segment_type

Enumerator
PAYLOAD_SEGMENT_CODE 
PAYLOAD_SEGMENT_DATA 
PAYLOAD_SEGMENT_BSS 
PAYLOAD_SEGMENT_PARAMS 
PAYLOAD_SEGMENT_ENTRY 

Definition at line 195 of file cbfs_serialized.h.

◆ cbfs_type

enum cbfs_type
Enumerator
CBFS_TYPE_QUERY 
CBFS_TYPE_DELETED 
CBFS_TYPE_NULL 
CBFS_TYPE_BOOTBLOCK 
CBFS_TYPE_CBFSHEADER 
CBFS_TYPE_LEGACY_STAGE 
CBFS_TYPE_STAGE 
CBFS_TYPE_SELF 
CBFS_TYPE_FIT 
CBFS_TYPE_OPTIONROM 
CBFS_TYPE_BOOTSPLASH 
CBFS_TYPE_RAW 
CBFS_TYPE_VSA 
CBFS_TYPE_MBI 
CBFS_TYPE_MICROCODE 
CBFS_TYPE_FSP 
CBFS_TYPE_MRC 
CBFS_TYPE_MMA 
CBFS_TYPE_EFI 
CBFS_TYPE_STRUCT 
CBFS_TYPE_CMOS_DEFAULT 
CBFS_TYPE_SPD 
CBFS_TYPE_MRC_CACHE 
CBFS_TYPE_CMOS_LAYOUT 

Definition at line 15 of file cbfs_serialized.h.

Variable Documentation

◆ __packed