summaryrefslogtreecommitdiff
path: root/firmware/bdb/nvm.h
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/bdb/nvm.h')
-rw-r--r--firmware/bdb/nvm.h139
1 files changed, 0 insertions, 139 deletions
diff --git a/firmware/bdb/nvm.h b/firmware/bdb/nvm.h
deleted file mode 100644
index c0a55402..00000000
--- a/firmware/bdb/nvm.h
+++ /dev/null
@@ -1,139 +0,0 @@
-/* Copyright 2016 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.
- */
-
-#ifndef VBOOT_REFERENCE_BDB_NVM_H_
-#define VBOOT_REFERENCE_BDB_NVM_H_
-
-#include <stdint.h>
-#include "bdb_struct.h"
-#include "bdb_api.h"
-
-enum nvm_type {
- NVM_TYPE_WP_PRIMARY,
- NVM_TYPE_WP_SECONDARY,
- NVM_TYPE_RW_PRIMARY,
- NVM_TYPE_RW_SECONDARY,
-};
-
-#define NVM_RW_MAGIC 0x3052766e
-
-/* Size in bytes of encrypted BUC (Boot Unlock Code) */
-#define BUC_ENC_DIGEST_SIZE 32
-/* Size in bytes of HMAC of struct NVM-RW */
-#define NVM_HMAC_SIZE BDB_SHA256_DIGEST_SIZE
-
-#define NVM_RW_FLAG_BUC_PRESENT (1 << 0)
-#define NVM_RW_FLAG_DFM_DISABLE (1 << 1)
-#define NVM_RW_FLAG_DOSM (1 << 2)
-
-/* This is the minimum size of the data needed to learn the actual size */
-#define NVM_MIN_STRUCT_SIZE 8
-
-#define NVM_HEADER_VERSION_MAJOR 1
-#define NVM_HEADER_VERSION_MINOR 1
-
-/* Maximum number of retries for writing NVM */
-#define NVM_MAX_WRITE_RETRY 2
-
-struct nvmrw {
- /* Magic number to identify struct */
- uint32_t struct_magic;
-
- /* Structure version */
- uint8_t struct_major_version;
- uint8_t struct_minor_version;
-
- /* Size of struct in bytes. 96 for version 1.0 */
- uint16_t struct_size;
-
- /* Number of updates to structure contents */
- uint32_t update_count;
-
- /* Flags: NVM_RW_FLAG_* */
- uint32_t flags;
-
- /* Minimum valid kernel data key version */
- uint32_t min_kernel_data_key_version;
-
- /* Minimum valid kernel version */
- uint32_t min_kernel_version;
-
- /* Type of BUC */
- uint8_t buc_type;
-
- uint8_t reserved0[7];
-
- /* Encrypted BUC */
- uint8_t buc_enc_digest[BUC_ENC_DIGEST_SIZE];
-
- /* SHA-256 HMAC of the struct contents. Add new fields before this. */
- uint8_t hmac[NVM_HMAC_SIZE];
-} __attribute__((packed));
-
-/*
- * List of variables stored in NVM-RW. This should be exported and used by
- * firmware and futility to access data in NVM-RW.
- */
-enum nvmrw_var {
- NVMRW_VAR_UPDATE_COUNT,
- NVMRW_VAR_FLAGS,
- NVMRW_VAR_MIN_KERNEL_DATA_KEY_VERSION,
- NVMRW_VAR_MIN_KERNEL_VERSION,
- NVMRW_VAR_BUC_TYPE,
- NVMRW_VAR_FLAG_BUC_PRESENT,
- NVMRW_VAR_FLAG_DFM_DISABLE,
- NVMRW_VAR_FLAG_DOSM,
-};
-
-/* Size of the version 1.0 */
-#define NVM_RW_MIN_STRUCT_SIZE 96
-/* 4 Kbit EEPROM divided by 4 regions (RO,RW) x (1st,2nd) = 128 KB */
-#define NVM_RW_MAX_STRUCT_SIZE 128
-
-/* For nvm_rw_read and nvm_write */
-struct vba_context;
-
-/**
- * Read NVM-RW contents into the context
- *
- * @param ctx struct vba_context
- * @return BDB_SUCCESS or BDB_ERROR_NVM_*
- */
-int nvmrw_read(struct vba_context *ctx);
-
-/**
- * Write to NVM-RW from the context
- *
- * @param ctx struct vba_context
- * @param type NVM_TYPE_RW_*
- * @return BDB_SUCCESS or BDB_ERROR_NVM_*
- */
-int nvmrw_write(struct vba_context *ctx, enum nvm_type type);
-
-/**
- * Get a value of NVM-RW variable
- *
- * Callers are responsible for init and verify of ctx->nvmrw.
- *
- * @param ctx struct vba_context
- * @param var Index of the variable
- * @param val Destination where the value is stored
- * @return BDB_SUCCESS or BDB_ERROR_NVM_*
- */
-int nvmrw_get(struct vba_context *ctx, enum nvmrw_var var, uint32_t *val);
-
-/**
- * Set a value in NVM-RW variable
- *
- * Callers are responsible for init and verify of ctx->nvmrw.
- *
- * @param ctx struct vba_context
- * @param var Index of the variable
- * @param val Value to be set
- * @return BDB_SUCCESS or BDB_ERROR_NVM_*
- */
-int nvmrw_set(struct vba_context *ctx, enum nvmrw_var var, uint32_t val);
-
-#endif