Built-in Self-test (BIST) is a feature that allows self testing of the memory areas and logic circuitry in an Integrated Circuit (IC) without any external test equipment. In an embedded system, these tests are typically used during boot time or shutdown of the system to check the health of an SoC.
PBIST is used to test the memory regions in the SoC and provides detection for permanent faults. The primary use case for PBIST is when it is invoked at start-up providing valuable information on any stuck-at bits in the memory.
There can be multiple instances of PBIST in the SoC, and each has a number of memory regions associated with it. SDL provides support for PBIST features such as execution of PBIST test-for-diagnostic to test the PBIST logic and execution of PBIST. The same API is used with different configuration parameters to execute each instance. Checking of the status of HW POST PBIST execution is also supported.
Some things to note:
The PBIST Module of the SDL supports execution of the software-initiated PBIST for the various supported instances. It provides the following services:
| PBIST Instance | Negative Test Time | Positive Test Time | Total Test Time |
|---|---|---|---|
| A53 MPU CLUSTER0 | 1418 us | 39232 us | 40650 us |
| CODEC PBIST3 | 171 us | 9238 us | 9409 us |
| PBIST1 | 1066 us | 17519 us | 18585 us |
| WKUP_PBIST1 | 490 us | 28992 us | 29482 us |
| PBIST_GPU | 417 us | 11042 us | 11459 us |
| MAIN PBIST0 | 1600 us | 14180 us | 15780 us |
| All instances | 5162 us | 120203 us | 125365 us |
The following shows an example of SDL PBIST API usage by the application to execute the PBIST test and test-for-diagnostic.
Include the below file to access the APIs
Note: Do not initialize the ESM to detect PBIST completion events
Before executing the following PBIST tests, the IP under test must be brought to a certain power and reset state. The included PBIST example shows the sequence needed for each of the PBIST instances.
Once the core(s) are brought to the required state, the following APIs can be run.
Run the PBIST test-for-diagnostic:
Perform the PBIST test