summaryrefslogtreecommitdiff
path: root/include/otp.h
diff options
context:
space:
mode:
authorGwendal Grignou <gwendal@chromium.org>2017-07-20 09:48:50 -0700
committerchrome-bot <chrome-bot@chromium.org>2017-07-28 17:45:13 -0700
commit1b25735b732e7766aceb3f060e4ca205aba6d358 (patch)
tree4ac67bc0f1e1449177698490b49be94f54cf2c59 /include/otp.h
parent734ebcbbb4e1e6f816225c59acef08ebd1094a2c (diff)
downloadchrome-ec-1b25735b732e7766aceb3f060e4ca205aba6d358.tar.gz
Add OTP support
One Time Programmable memory can be used to store permanent data like serial numbers. Reorganize the code to support writing serial number to OTP, in addition to pstate (if using its own memory bank) or autogenerate from unique id (hammer). + Add CONFIG_OTP to enable OTP code + Add CONFIG_SERIALNO_LEN to indicate the size of the serial number string. Currently set to 28, when USB serial number is needed. + Expose flash_read|write_pstate_serial and add otp_read|write_serail, remove more generic flash_read|write_serial. + Make board_read|write_serial generic, declared outside of USB subsystem. Priority order to read|write serial string: - board definition (like hammer) - pstate location, if stored in its private memory bank - otp area If none of these methods are available, a compilation error is raised. BUG=chromium:746471 BRANCH=none TEST=compile Change-Id: I3d16125a6c0f424fb30e38123e63cf074b3cb2d3 Signed-off-by: Gwendal Grignou <gwendal@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/580289 Reviewed-by: Nick Sanders <nsanders@chromium.org>
Diffstat (limited to 'include/otp.h')
-rw-r--r--include/otp.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/include/otp.h b/include/otp.h
new file mode 100644
index 0000000000..7851411202
--- /dev/null
+++ b/include/otp.h
@@ -0,0 +1,32 @@
+/* Copyright 2017 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.
+ */
+
+/* OTP memory module for Chrome EC */
+
+#ifndef __CROS_EC_OTP_H
+#define __CROS_EC_OTP_H
+
+/*
+ * OTP: One Time Programable memory is used for storing persistent data.
+ */
+
+/**
+ * Set the serial number in OTP memory.
+ *
+ * @param serialno ascii serial number string.
+ *
+ * @return success status.
+ */
+int otp_write_serial(const char *serialno);
+
+/**
+ * Get the serial number from flash.
+ *
+ * @return char * ascii serial number string.
+ * NULL if error.
+ */
+const char *otp_read_serial(void);
+
+#endif /* __CROS_EC_OTP_H */