arm: stm32mp: bsec: add permanent lock support in bsec driver
authorPatrick Delaunay <patrick.delaunay@st.com>
Wed, 12 Feb 2020 18:37:38 +0000 (19:37 +0100)
committerPatrick Delaunay <patrick.delaunay@st.com>
Tue, 24 Mar 2020 13:05:35 +0000 (14:05 +0100)
commit7ae22d72781de76b3c23b018a3fccc172e9875de
tree44288593d3a084fa1b2a13288f38a6d663a5b6e9
parentdf2d1b8fc472bd0c7ec20d86337d437241d9b013
arm: stm32mp: bsec: add permanent lock support in bsec driver

Add BSEC lock access (read / write) at 0xC0000000 offset of misc driver.
The write access only available for Trusted boot mode, based on new
SMC STM32_SMC_WRLOCK_OTP.

With the fuse command, the permanent lock status is accessed with
0x10000000 offset (0xC0000000 - 0x8000000 for OTP sense/program
divided by u32 size), for example:

Read lock status of fuse 57 (0x39)

  STM32MP> fuse sense 0 0x10000039 1

  Sensing bank 0:

  Word 0x10000039: 00000000

Set permanent lock of fuse 57 (0x39)

  STM32MP> fuse prog 0 0x10000039 1

  Sensing bank 0:

  Word 0x10000039: 00000000

WARNING: the OTP lock is updated only after reboot

WARING: Programming lock or fuses is an irreversible operation!
        This may brick your system.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Acked-by: Patrice Chotard <patrice.chotard@st.com>
arch/arm/mach-stm32mp/bsec.c
arch/arm/mach-stm32mp/cpu.c
arch/arm/mach-stm32mp/include/mach/stm32.h
arch/arm/mach-stm32mp/include/mach/stm32mp1_smc.h
doc/board/st/stm32mp1.rst