diff options
author | Jack Rosenthal <jrosenth@chromium.org> | 2021-11-04 12:11:58 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-11-05 04:22:34 +0000 |
commit | 252457d4b21f46889eebad61d4c0a65331919cec (patch) | |
tree | 01856c4d31d710b20e85a74c8d7b5836e35c3b98 /chip/stm32/otp-stm32f4.c | |
parent | 08f5a1e6fc2c9467230444ac9b582dcf4d9f0068 (diff) | |
download | chrome-ec-stabilize-14526.84.B-ish.tar.gz |
ish: Trim down the release branchstabilize-wristpin-14469.59.B-ishstabilize-voshyr-14637.B-ishstabilize-quickfix-14695.187.B-ishstabilize-quickfix-14695.124.B-ishstabilize-quickfix-14526.91.B-ishstabilize-14695.85.B-ishstabilize-14695.107.B-ishstabilize-14682.B-ishstabilize-14633.B-ishstabilize-14616.B-ishstabilize-14589.B-ishstabilize-14588.98.B-ishstabilize-14588.14.B-ishstabilize-14588.123.B-ishstabilize-14536.B-ishstabilize-14532.B-ishstabilize-14528.B-ishstabilize-14526.89.B-ishstabilize-14526.84.B-ishstabilize-14526.73.B-ishstabilize-14526.67.B-ishstabilize-14526.57.B-ishstabilize-14498.B-ishstabilize-14496.B-ishstabilize-14477.B-ishstabilize-14469.9.B-ishstabilize-14469.8.B-ishstabilize-14469.58.B-ishstabilize-14469.41.B-ishstabilize-14442.B-ishstabilize-14438.B-ishstabilize-14411.B-ishstabilize-14396.B-ishstabilize-14395.B-ishstabilize-14388.62.B-ishstabilize-14388.61.B-ishstabilize-14388.52.B-ishstabilize-14385.B-ishstabilize-14345.B-ishstabilize-14336.B-ishstabilize-14333.B-ishrelease-R99-14469.B-ishrelease-R98-14388.B-ishrelease-R102-14695.B-ishrelease-R101-14588.B-ishrelease-R100-14526.B-ishfirmware-cherry-14454.B-ishfirmware-brya-14505.B-ishfirmware-brya-14505.71.B-ishfactory-kukui-14374.B-ishfactory-guybrush-14600.B-ishfactory-cherry-14455.B-ishfactory-brya-14517.B-ish
In the interest of making long-term branch maintenance incur as little
technical debt on us as possible, we should not maintain any files on
the branch we are not actually using.
This has the added effect of making it extremely clear when merging CLs
from the main branch when changes have the possibility to affect us.
The follow-on CL adds a convenience script to actually pull updates from
the main branch and generate a CL for the update.
BUG=b:204206272
BRANCH=ish
TEST=make BOARD=arcada_ish && make BOARD=drallion_ish
Signed-off-by: Jack Rosenthal <jrosenth@chromium.org>
Change-Id: I17e4694c38219b5a0823e0a3e55a28d1348f4b18
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3262038
Reviewed-by: Jett Rink <jettrink@chromium.org>
Reviewed-by: Tom Hughes <tomhughes@chromium.org>
Diffstat (limited to 'chip/stm32/otp-stm32f4.c')
-rw-r--r-- | chip/stm32/otp-stm32f4.c | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/chip/stm32/otp-stm32f4.c b/chip/stm32/otp-stm32f4.c deleted file mode 100644 index 45ce38d159..0000000000 --- a/chip/stm32/otp-stm32f4.c +++ /dev/null @@ -1,119 +0,0 @@ -/* 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 implementation for STM32F411 */ - -#include "common.h" -#include "console.h" -#include "flash.h" -#include "otp.h" -#include "registers.h" -#include "util.h" - -/* - * OTP is only used for saving the USB serial number. - */ -#ifdef CONFIG_SERIALNO_LEN -/* Which block to use */ -#define OTP_SERIAL_BLOCK 0 -#define OTP_SERIAL_ADDR \ - REG32_ADDR(STM32_OTP_BLOCK_DATA(OTP_SERIAL_BLOCK, 0)) - -/* Number of word used in the block */ -#define OTP_SERIAL_BLOCK_SIZE (CONFIG_SERIALNO_LEN / sizeof(uint32_t)) -BUILD_ASSERT(CONFIG_SERIALNO_LEN % sizeof(uint32_t) == 0); -BUILD_ASSERT(OTP_SERIAL_BLOCK_SIZE < STM32_OTP_BLOCK_SIZE); - -/* - * Write an OTP block - * - * @param block block to write. - * @param size Number of words to write. - * @param data Destination buffer for data. - */ -static int otp_write(uint8_t block, int size, const char *data) -{ - if (block >= STM32_OTP_BLOCK_NB) - return EC_ERROR_PARAM1; - if (size >= STM32_OTP_BLOCK_SIZE) - return EC_ERROR_PARAM2; - return crec_flash_physical_write(STM32_OTP_BLOCK_DATA(block, 0) - - CONFIG_PROGRAM_MEMORY_BASE, - size * sizeof(uint32_t), data); -} - -/* - * Check if an OTP block is protected. - * - * @param block protected block. - * @return non-zero if that block is read only. - */ -static int otp_get_protect(uint8_t block) -{ - uint32_t lock; - - lock = REG32(STM32_OTP_LOCK(block)); - return ((lock & STM32_OPT_LOCK_MASK(block)) == 0); -} - -/* - * Set a particular OTP block as read only. - * - * @param block block to protect. - */ -static int otp_set_protect(uint8_t block) -{ - int rv; - uint32_t lock; - - if (otp_get_protect(block)) - return EC_SUCCESS; - - lock = REG32(STM32_OTP_LOCK(block)); - lock &= ~STM32_OPT_LOCK_MASK(block); - rv = crec_flash_physical_write(STM32_OTP_LOCK(block) - - CONFIG_PROGRAM_MEMORY_BASE, - sizeof(uint32_t), (char *)&lock); - if (rv) - return rv; - else - return EC_SUCCESS; -} - -const char *otp_read_serial(void) -{ - int i; - - for (i = 0; i < OTP_SERIAL_BLOCK_SIZE; i++) { - if (OTP_SERIAL_ADDR[i] != -1) - return (char *)OTP_SERIAL_ADDR; - } - return NULL; -} - -int otp_write_serial(const char *serialno) -{ - int i, ret; - char otp_serial[CONFIG_SERIALNO_LEN]; - - if (otp_get_protect(OTP_SERIAL_BLOCK)) - return EC_ERROR_ACCESS_DENIED; - - /* Copy in serialno. */ - for (i = 0; i < CONFIG_SERIALNO_LEN - 1; i++) { - otp_serial[i] = serialno[i]; - if (serialno[i] == 0) - break; - } - for (; i < CONFIG_SERIALNO_LEN; i++) - otp_serial[i] = 0; - - ret = otp_write(OTP_SERIAL_BLOCK, OTP_SERIAL_BLOCK_SIZE, otp_serial); - if (ret == EC_SUCCESS) - return otp_set_protect(OTP_SERIAL_BLOCK); - else - return ret; -} -#endif |