/* SPDX-License-Identifier: GPL-2.0-only */ #include <endian.h> #include <fmap_config.h> #include <commonlib/bsd/cbfs_serialized.h> struct cbfs_header header = { .magic = cpu_to_be32(CBFS_HEADER_MAGIC), .version = cpu_to_be32(CBFS_HEADER_VERSION), /* * The offset and romsize fields within the master header are absolute * values within the boot media. As such, romsize needs to reflect * the end 'offset' for a CBFS. To achieve that the current buffer * representing the CBFS region's size is added to the offset of * the region within a larger image. */ .romsize = cpu_to_be32(FMAP_SECTION_COREBOOT_START + FMAP_SECTION_COREBOOT_SIZE - FMAP_SECTION_FLASH_START), /* * The 4 bytes are left out for two reasons: * 1. the cbfs master header pointer resides there * 2. some cbfs implementations assume that an image that resides * below 4GB has a bootblock and get confused when the end of the * image is at 4GB == 0. */ .bootblocksize = cpu_to_be32(4), .align = cpu_to_be32(CBFS_ALIGNMENT), .offset = cpu_to_be32(FMAP_SECTION_COREBOOT_START - FMAP_SECTION_FLASH_START), .architecture = cpu_to_be32(CBFS_ARCHITECTURE_UNKNOWN), };