/***************************************************************************//** * \file cy_efuse.h * \version 2.40 * * Provides the API declarations of the eFuse driver. * ******************************************************************************** * \copyright * Copyright 2017-2020 Cypress Semiconductor Corporation * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *******************************************************************************/ #if !defined(CY_EFUSE_H) #define CY_EFUSE_H /** * \addtogroup group_efuse * \{ * * Electronic Fuses (eFuses) are non-volatile memory where each bit is one-time * programmable (OTP). * * The functions and other declarations used in this driver are in cy_efuse.h. * You can include cy_pdl.h to get access to all functions * and declarations in the PDL. * * The eFuse driver enables reading the state of any bit. * - CAT1A devices does not support writing to eFuse memory. Writing an * eFuse bit is typically done by a production programmer. * Fuses are programmed via the PSoC Programmer tool that parses the hex file * and extracts the necessary information; the fuse data must be located at the * dedicated section in the hex file. For more details see * [PSoC 6 Programming Specifications] * (http://www.cypress.com/documentation/programming-specifications/psoc-6-programming-specifications) * - CAT1B devices support writing to eFuse memory. * \note Blowing eFuses is normally performed during device provisioning; eFuses are not intended to be * programmed by the customer * - CAT1C devices does not support writing to eFuse memory. * * One eFuse macro consists of 256 bits (32 * 8). * Consult the device-specific datasheet to determine how many * macros a device has. These are implemented as a regular Advanced * High-performance Bus (AHB) peripheral with the following characteristics: * - eFuses are used to control the device life-cycle stage (NORMAL, SECURE, * and SECURE_WITH_DEBUG) and the protection settings; * - eFuse memory can be programmed (eFuse bit value changed from '0' to '1') * only once; if an eFuse bit is blown, it cannot be cleared again; * * \section group_efuse_configuration Configuration Considerations * * The eFuse driver provides the simplest way to read and write eFuse memory. * No configuration is needed. * * \section group_efuse_more_information More Information * * Refer to the technical reference manual (TRM) and the device datasheet. * * \section group_efuse_changelog Changelog *
| Version | Changes | Reason for Change |
|---|---|---|
| 2.40 | *Updated API \ref Cy_EFUSE_WriteWord and \ref Cy_EFUSE_ReadWord. | *Bug fixes. | *
| 2.30.1 | *Minor documentation updates. | *Added a note for CAT1B family of devices. | *
| 2.30 | *Updated Cy_EFUSE_WriteBit API. | *Fix minor compilation warning. | *
| 2.20 | *Updated driver to support the CAT1C family of devices. | *Added new family of devices. | *
| 2.10 | *Implementation for newly introduced APIs for CAT1B devices has been updated. | *Updated driver APIs support for CAT1B devices. | *
| 2.0 | *Added the following functions: \ref Cy_EFUSE_Init,\n \ref Cy_EFUSE_DeInit,\n \ref Cy_EFUSE_Enable,\n * \ref Cy_EFUSE_Disable,\n \ref Cy_EFUSE_WriteBit,\n \ref Cy_EFUSE_WriteByte,\n \ref Cy_EFUSE_WriteWord,\n * \ref Cy_EFUSE_WriteWordArray,\n \ref Cy_EFUSE_ReadBit,\n \ref Cy_EFUSE_ReadByte,\n \ref Cy_EFUSE_ReadWord,\n * \ref Cy_EFUSE_ReadWordArray,\n \ref Cy_EFUSE_WriteBootRow,\n \ref Cy_EFUSE_ReadBootRow. | *New driver APIs support for CAT1B devices. | *
| 1.10.4 | *Minor documentation updates. | *Removed MISRA 2004 compliance details and verified MISRA 2012 compliance. | *
| 1.10.3 | *Minor documentation updates. | *Documentation enhancement. | *
| 1.10.2 | *Fix driver header path. | *Folder structure changed. | *
| 1.10.1 | *Added header guard CY_IP_MXEFUSE. | *To enable the PDL compilation with wounded out IP blocks. | *
| 1.10 | *Flattened the organization of the driver source code into the single * source directory and the single include directory. * | *Driver library directory-structure simplification. | *
| 1.0 | *Initial version | ** |