[PATCH 0/4] Add support for K3 BIST

Neha Malcom Francis n-francis at ti.com
Wed Nov 27 15:53:42 CET 2024


This series implements a driver for the BIST (Built-In Self Test) module
for K3 devices. The BIST driver must ideally support triggering of BIST
tests, both PBIST (Memory BIST) and LBIST (Logic BIST) on a core. Both
tests are destructive in nature. Please see links [1] and [2] for
further information regarding the two.

At boot up, BIST is executed by hardware for the MCU domain
automatically as part of HW POST. So BIST has been checked only for the
MCU domain when U-Boot comes up in the usual U-Boot to Linux boot flow.
To facilitate the use-case where some safe firmware is intended to be
run on a safe core, it is best to have triggered the BIST tests on that
core. As an example, we take triggering the BIST tests on the MAIN R52_x
cores. The triggering patch is kept as DONOTMERGE.

The general procedure for triggering BIST on a core is:
	1. Power on the core under test following a sequence
	2. Trigger the BIST test
	3. Reset the core under test following a sequence

An RFC was posted earlier with an incomplete version of the driver along
with a bug as mentioned in the cover-letter. The workaround to this was
to trigger the BIST tests from A72 SPL where the DM (Device Manager
firmware that handles power management) is already up and can perform
the power sequences for us.

Boot logs (with LOG_DEBUG enabled):
https://gist.github.com/nehamalcom/b6831be41b35023be33c566e6d2e4820

Link to RFC:
https://patchwork.ozlabs.org/project/uboot/cover/20240903114402.2155740-1-n-francis@ti.com

[1] https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/latest/exports/docs/sdl/sdl_docs/userguide/j721e/modules/pbist.html#introduction
[2] https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/latest/exports/docs/sdl/sdl_docs/userguide/j721e/modules/lbist.html#introduction

Neha Malcom Francis (4):
  arm: dts: k3-j784s4-main: Add PBIST_14 node
  drivers: misc: k3_bist: Add K3 BIST driver
  configs: j784s4_evm_a72_defconfig: Enable BIST
  DONOTMERGE: arm: mach-k3: j784s4_init: Trigger LBIST and PBIST on MAIN
    R5 2_0

 arch/arm/mach-k3/j784s4/j784s4_init.c         |  48 +
 configs/j784s4_evm_a72_defconfig              |   1 +
 drivers/misc/Kconfig                          |   8 +
 drivers/misc/Makefile                         |   1 +
 drivers/misc/k3_bist.c                        | 856 ++++++++++++++++++
 drivers/misc/k3_bist_static_data.h            | 576 ++++++++++++
 drivers/misc/k3_lbist_static_data.h           | 460 ++++++++++
 dts/upstream/src/arm64/ti/k3-j784s4-main.dtsi |  12 +
 include/k3_bist.h                             |  44 +
 9 files changed, 2006 insertions(+)
 create mode 100644 drivers/misc/k3_bist.c
 create mode 100644 drivers/misc/k3_bist_static_data.h
 create mode 100644 drivers/misc/k3_lbist_static_data.h
 create mode 100644 include/k3_bist.h

-- 
2.34.1



More information about the U-Boot mailing list