summaryrefslogtreecommitdiff
path: root/firmware/2lib
diff options
context:
space:
mode:
authorJoel Kitching <kitching@google.com>2019-03-06 18:41:33 +0800
committerchrome-bot <chrome-bot@chromium.org>2019-03-11 23:52:13 -0700
commit6988559fb77e99a6ac2fc420cf83922ea162081e (patch)
tree72335cef7c2c4026a9e67a3d06ea50774f2b01fe /firmware/2lib
parent9e53b92e50165b777111f159daa2b4e3b3c8b355 (diff)
downloadvboot-6988559fb77e99a6ac2fc420cf83922ea162081e.tar.gz
vboot: move general constants to a separate header
coreboot uses the C preprocessor on its linker scripts to allow evaluation of macros when defining memory layout. Move constants from 2api.h to an independent file in order to allow for coreboot to use these constants in its memlayout file, without needing to include the entire vboot API. Note this commit creates two new header files: - firmware/2lib/include/2constants.h: contains the constants - firmware/include/vb2_constants.h: externally importable header Also, rename VB2_WORKBUF_RECOMMENDED_SIZE to VB2_FIRMWARE_WORKBUF_RECOMMENDED_SIZE for clarity. BUG=b:124141368, b:124192753 TEST=Build locally TEST=/work/vboot/src/repohooks/pre-upload.py TEST=make clean && make runtests TEST=make clean && COV=1 make coverage && make coverage_html BRANCH=none Change-Id: Id17c6955b67e51cb048b10b4be0901c0e9110a1f Signed-off-by: Joel Kitching <kitching@google.com> Reviewed-on: https://chromium-review.googlesource.com/1504490 Commit-Ready: Joel Kitching <kitching@chromium.org> Tested-by: Joel Kitching <kitching@chromium.org> Reviewed-by: Hung-Te Lin <hungte@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Julius Werner <jwerner@chromium.org>
Diffstat (limited to 'firmware/2lib')
-rw-r--r--firmware/2lib/include/2api.h37
-rw-r--r--firmware/2lib/include/2constants.h50
2 files changed, 51 insertions, 36 deletions
diff --git a/firmware/2lib/include/2api.h b/firmware/2lib/include/2api.h
index 34eb779d..f228fb30 100644
--- a/firmware/2lib/include/2api.h
+++ b/firmware/2lib/include/2api.h
@@ -22,48 +22,13 @@
#include <stdint.h>
#include "2common.h"
+#include "2constants.h"
#include "2crypto.h"
#include "2fw_hash_tags.h"
#include "2id.h"
#include "2recovery_reasons.h"
#include "2return_codes.h"
-/*
- * Size of non-volatile data used by vboot.
- *
- * If you only support non-volatile data format V1, then use VB2_NVDATA_SIZE.
- * If you support V2, use VB2_NVDATA_SIZE_V2 and set context flag
- * VB2_CONTEXT_NVDATA_V2.
- */
-#define VB2_NVDATA_SIZE 16
-#define VB2_NVDATA_SIZE_V2 64
-
-/* Size of secure data spaces used by vboot */
-#define VB2_SECDATA_SIZE 10
-#define VB2_SECDATAK_SIZE 14
-
-/*
- * Recommended size of work buffer for firmware verification stage
- *
- * TODO: The recommended size really depends on which key algorithms are
- * used. Should have a better / more accurate recommendation than this.
- */
-#define VB2_WORKBUF_RECOMMENDED_SIZE (12 * 1024)
-
-/*
- * Recommended size of work buffer for kernel verification stage
- *
- * This is bigger because vboot 2.0 kernel preambles are usually padded to
- * 64 KB.
- *
- * TODO: The recommended size really depends on which key algorithms are
- * used. Should have a better / more accurate recommendation than this.
- */
-#define VB2_KERNEL_WORKBUF_RECOMMENDED_SIZE (80 * 1024)
-
-/* Recommended buffer size for vb2api_get_pcr_digest */
-#define VB2_PCR_DIGEST_RECOMMENDED_SIZE 32
-
/* Flags for vb2_context.
*
* Unless otherwise noted, flags are set by verified boot and may be read (but
diff --git a/firmware/2lib/include/2constants.h b/firmware/2lib/include/2constants.h
new file mode 100644
index 00000000..aa9e99e2
--- /dev/null
+++ b/firmware/2lib/include/2constants.h
@@ -0,0 +1,50 @@
+/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ *
+ * General vboot-related constants.
+ *
+ * Constants that need to be exposed to assembly files or linker scripts
+ * may be placed here and imported via vb2_constants.h.
+ */
+
+#ifndef VBOOT_REFERENCE_2CONSTANTS_H_
+#define VBOOT_REFERENCE_2CONSTANTS_H_
+
+/*
+ * Size of non-volatile data used by vboot.
+ *
+ * If you only support non-volatile data format V1, then use VB2_NVDATA_SIZE.
+ * If you support V2, use VB2_NVDATA_SIZE_V2 and set context flag
+ * VB2_CONTEXT_NVDATA_V2.
+ */
+#define VB2_NVDATA_SIZE 16
+#define VB2_NVDATA_SIZE_V2 64
+
+/* Size of secure data spaces used by vboot */
+#define VB2_SECDATA_SIZE 10
+#define VB2_SECDATAK_SIZE 14
+
+/*
+ * Recommended size of work buffer for firmware verification stage.
+ *
+ * TODO: The recommended size really depends on which key algorithms are
+ * used. Should have a better / more accurate recommendation than this.
+ */
+#define VB2_FIRMWARE_WORKBUF_RECOMMENDED_SIZE (12 * 1024)
+
+/*
+ * Recommended size of work buffer for kernel verification stage.
+ *
+ * This is bigger because vboot 2.0 kernel preambles are usually padded to
+ * 64 KB.
+ *
+ * TODO: The recommended size really depends on which key algorithms are
+ * used. Should have a better / more accurate recommendation than this.
+ */
+#define VB2_KERNEL_WORKBUF_RECOMMENDED_SIZE (80 * 1024)
+
+/* Recommended buffer size for vb2api_get_pcr_digest. */
+#define VB2_PCR_DIGEST_RECOMMENDED_SIZE 32
+
+#endif /* VBOOT_REFERENCE_2CONSTANTS_H_ */