Lines Matching defs:otp

72 static void enable_non_secure_access(uint32_t otp)
74 otp_nsec_access[otp / __WORD_BIT] |= BIT(otp % __WORD_BIT);
76 if (bsec_shadow_register(otp) != BSEC_OK) {
81 static bool non_secure_can_access(uint32_t otp)
83 return (otp_nsec_access[otp / __WORD_BIT] &
84 BIT(otp % __WORD_BIT)) != 0U;
93 uint32_t otp;
108 otp = offset / sizeof(uint32_t);
110 if (otp < STM32MP1_UPPER_OTP_START) {
120 otp = STM32MP1_UPPER_OTP_START;
133 "st,non-secure-otp", NULL)) == NULL) {
145 for (i = otp; i < (otp + size); i++) {
172 static uint32_t otp_bank_offset(uint32_t otp)
174 assert(otp <= STM32MP1_OTP_MAX_ID);
176 return ((otp & ~BSEC_OTP_MASK) >> BSEC_OTP_BANK_SHIFT) *
182 * otp: OTP number.
187 static uint32_t bsec_check_error(uint32_t otp, bool check_disturbed)
189 uint32_t bit = BIT(otp & BSEC_OTP_MASK);
190 uint32_t bank = otp_bank_offset(otp);
324 * otp: OTP number.
327 uint32_t bsec_shadow_register(uint32_t otp)
337 result = bsec_read_sr_lock(otp, &value);
339 ERROR("BSEC: %u Sticky-read bit read Error %u\n", otp, result);
345 otp);
360 mmio_write_32(bsec_base + BSEC_OTP_CTRL_OFF, otp | BSEC_READ);
366 result = bsec_check_error(otp, true);
382 * otp: OTP number.
385 uint32_t bsec_read_otp(uint32_t *val, uint32_t otp)
391 if (otp > STM32MP1_OTP_MAX_ID) {
396 (otp * sizeof(uint32_t)));
404 * otp: OTP number.
407 uint32_t bsec_write_otp(uint32_t val, uint32_t otp)
416 result = bsec_read_sw_lock(otp, &value);
418 ERROR("BSEC: %u Sticky-write bit read Error %u\n", otp, result);
424 otp);
431 (otp * sizeof(uint32_t)), val);
442 * otp: OTP number.
445 uint32_t bsec_program_otp(uint32_t val, uint32_t otp)
456 result = bsec_read_sp_lock(otp, &sp_lock);
458 ERROR("BSEC: %u Sticky-prog bit read Error %u\n", otp, result);
462 result = bsec_read_permanent_lock(otp, &perm_lock);
464 ERROR("BSEC: %u permanent bit read Error %u\n", otp, result);
492 mmio_write_32(bsec_base + BSEC_OTP_CTRL_OFF, otp | BSEC_WRITE);
501 result = bsec_check_error(otp, true);
517 * otp: OTP number.
520 uint32_t bsec_permanent_lock_otp(uint32_t otp)
531 if (otp > STM32MP1_OTP_MAX_ID) {
545 if (otp < STM32MP1_UPPER_OTP_START) {
546 addr = otp >> ADDR_LOWER_OTP_PERLOCK_SHIFT;
548 ((otp & DATA_LOWER_OTP_PERLOCK_MASK) << 1U);
550 addr = (otp >> ADDR_UPPER_OTP_PERLOCK_SHIFT) + 2U;
552 (otp & DATA_UPPER_OTP_PERLOCK_MASK);
569 result = bsec_check_error(otp, false);
678 * otp: OTP number.
681 uint32_t bsec_set_sr_lock(uint32_t otp)
683 uint32_t bank = otp_bank_offset(otp);
684 uint32_t otp_mask = BIT(otp & BSEC_OTP_MASK);
690 if (otp > STM32MP1_OTP_MAX_ID) {
703 * otp: OTP number.
707 uint32_t bsec_read_sr_lock(uint32_t otp, bool *value)
709 uint32_t bank = otp_bank_offset(otp);
710 uint32_t otp_mask = BIT(otp & BSEC_OTP_MASK);
713 if (otp > STM32MP1_OTP_MAX_ID) {
726 * otp: OTP number.
729 uint32_t bsec_set_sw_lock(uint32_t otp)
731 uint32_t bank = otp_bank_offset(otp);
732 uint32_t otp_mask = BIT(otp & BSEC_OTP_MASK);
738 if (otp > STM32MP1_OTP_MAX_ID) {
751 * otp: OTP number.
755 uint32_t bsec_read_sw_lock(uint32_t otp, bool *value)
757 uint32_t bank = otp_bank_offset(otp);
758 uint32_t otp_mask = BIT(otp & BSEC_OTP_MASK);
761 if (otp > STM32MP1_OTP_MAX_ID) {
774 * otp: OTP number.
777 uint32_t bsec_set_sp_lock(uint32_t otp)
779 uint32_t bank = otp_bank_offset(otp);
780 uint32_t otp_mask = BIT(otp & BSEC_OTP_MASK);
786 if (otp > STM32MP1_OTP_MAX_ID) {
799 * otp: OTP number.
803 uint32_t bsec_read_sp_lock(uint32_t otp, bool *value)
805 uint32_t bank = otp_bank_offset(otp);
806 uint32_t otp_mask = BIT(otp & BSEC_OTP_MASK);
809 if (otp > STM32MP1_OTP_MAX_ID) {
822 * otp: OTP number.
826 uint32_t bsec_read_permanent_lock(uint32_t otp, bool *value)
828 uint32_t bank = otp_bank_offset(otp);
829 uint32_t otp_mask = BIT(otp & BSEC_OTP_MASK);
832 if (otp > STM32MP1_OTP_MAX_ID) {
942 * otp: OTP number.
945 uint32_t bsec_check_nsec_access_rights(uint32_t otp)
948 if (otp > STM32MP1_OTP_MAX_ID) {
952 if (otp >= STM32MP1_UPPER_OTP_START) {
953 if (!non_secure_can_access(otp)) {