]> git.proxmox.com Git - ceph.git/blame - ceph/src/spdk/dpdk/drivers/net/sfc/base/ef10_signed_image_layout.h
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / spdk / dpdk / drivers / net / sfc / base / ef10_signed_image_layout.h
CommitLineData
11fdf7f2
TL
1/* SPDX-License-Identifier: BSD-3-Clause
2 *
f67539c2
TL
3 * Copyright(c) 2019-2020 Xilinx, Inc.
4 * Copyright(c) 2016-2019 Solarflare Communications Inc.
11fdf7f2
TL
5 */
6
9f95a23c
TL
7/*
8 * This is NOT the original source file. Do NOT edit it.
9 * To update the image layout headers, please edit the copy in
10 * the sfregistry repo and then, in that repo,
11 * "make layout_headers" or "make export" to
12 * regenerate and export all types of headers.
13 */
14
11fdf7f2
TL
15/* These structures define the layouts for the signed firmware image binary
16 * saved in NVRAM. The original image is in the Cryptographic message
17 * syntax (CMS) format which contains the bootable firmware binary plus the
18 * signatures. The entire image is written into NVRAM to enable the firmware
19 * to validate the signatures. However, the bootrom still requires the
20 * bootable-image to start at offset 0 of the NVRAM partition. Hence the image
21 * is parsed upfront by host utilities (sfupdate) and written into nvram as
22 * 'signed_image_chunks' described by a header.
23 *
24 * This file is used by the MC as well as host-utilities (sfupdate).
25 */
26
27
28#ifndef CI_MGMT_SIGNED_IMAGE_LAYOUT_H
29#define CI_MGMT_SIGNED_IMAGE_LAYOUT_H
30
31/* Signed image chunk type identifiers */
32enum {
33 SIGNED_IMAGE_CHUNK_CMS_HEADER, /* CMS header describing the signed data */
34 SIGNED_IMAGE_CHUNK_REFLASH_HEADER, /* Reflash header */
35 SIGNED_IMAGE_CHUNK_IMAGE, /* Bootable binary image */
36 SIGNED_IMAGE_CHUNK_REFLASH_TRAILER, /* Reflash trailer */
37 SIGNED_IMAGE_CHUNK_SIGNATURE, /* Remaining contents of the signed image,
38 * including the certifiates and signature */
39 NUM_SIGNED_IMAGE_CHUNKS,
40};
41
42/* Magic */
43#define SIGNED_IMAGE_CHUNK_HDR_MAGIC 0xEF105161 /* EF10 SIGned Image */
44
45/* Initial version definition - version 1 */
46#define SIGNED_IMAGE_CHUNK_HDR_VERSION 0x1
47
48/* Header length is 32 bytes */
49#define SIGNED_IMAGE_CHUNK_HDR_LEN 32
50/* Structure describing the header of each chunk of signed image
51 * as stored in nvram
52 */
53typedef struct signed_image_chunk_hdr_e {
54 /* Magic field to recognise a valid entry
55 * should match SIGNED_IMAGE_CHUNK_HDR_MAGIC
56 */
57 uint32_t magic;
58 /* Version number of this header */
59 uint32_t version;
60 /* Chunk type identifier */
61 uint32_t id;
62 /* Chunk offset */
63 uint32_t offset;
64 /* Chunk length */
65 uint32_t len;
66 /* Reserved for future expansion of this structure - always set to zeros */
67 uint32_t reserved[3];
68} signed_image_chunk_hdr_t;
69
70#endif /* CI_MGMT_SIGNED_IMAGE_LAYOUT_H */