371 lines
8.1 KiB
C
371 lines
8.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* Static Data for Texas Instruments' BIST logic for J784S4
|
|
*
|
|
* Copyright (C) 2025 Texas Instruments Incorporated - https://www.ti.com/
|
|
*
|
|
*/
|
|
|
|
/* Device IDs of IPs that can be tested under BIST */
|
|
#define TISCI_DEV_MCU_R5FSS2_CORE0 343
|
|
#define TISCI_DEV_MCU_R5FSS2_CORE1 344
|
|
#define TISCI_DEV_RTI32 365
|
|
#define TISCI_DEV_RTI33 366
|
|
|
|
/* WKUP CTRL MMR Registers */
|
|
#define WKUP_CTRL_MMR_CFG0_WKUP_POST_STAT 0x0000C2C0
|
|
#define WKUP_CTRL_MMR_CFG0_WKUP_POST_STAT_POST_MCU_PBIST_DONE_SHIFT 0x00000008
|
|
#define WKUP_CTRL_MMR_CFG0_WKUP_POST_STAT_POST_MCU_LBIST_DONE_SHIFT 0x00000001
|
|
#define WKUP_CTRL_MMR_CFG0_WKUP_POST_STAT_POST_MCU_PBIST_TIMEOUT_SHIFT 0x00000009
|
|
#define WKUP_CTRL_MMR_CFG0_WKUP_POST_STAT_POST_MCU_LBIST_TIMEOUT_SHIFT 0x00000005
|
|
#define WKUP_CTRL_MMR_CFG0_WKUP_POST_STAT_POST_MCU_PBIST_FAIL_MASK 0x00008000
|
|
|
|
/* MCU CTRL MMR Register */
|
|
#define MCU_CTRL_MMR0_CFG0_BASE 0x40f00000
|
|
#define MCU_CTRL_MMR_CFG0_MCU_LBIST_CTRL 0x0000c000
|
|
#define MCU_CTRL_MMR_CFG0_MCU_LBIST_SIG 0x0000c280
|
|
#define MCU_LBIST_BASE (MCU_CTRL_MMR0_CFG0_BASE + \
|
|
MCU_CTRL_MMR_CFG0_MCU_LBIST_CTRL)
|
|
|
|
/* Properties of PBIST instances in: PBIST14 */
|
|
#define PBIST14_DEV_ID 234
|
|
#define PBIST14_NUM_TEST_VECTORS 0x1
|
|
#define PBIST14_ALGO_BITMAP_0 0x00000003
|
|
#define PBIST14_MEM_BITMAP_0 0x000CCCCC
|
|
#define PBIST14_FAIL_INSERTION_TEST_VECTOR_CA0 0x00000000
|
|
#define PBIST14_FAIL_INSERTION_TEST_VECTOR_CA1 0x000001FF
|
|
#define PBIST14_FAIL_INSERTION_TEST_VECTOR_CA2 0x000001FF
|
|
#define PBIST14_FAIL_INSERTION_TEST_VECTOR_CA3 0x00000000
|
|
#define PBIST14_FAIL_INSERTION_TEST_VECTOR_CL0 0x0000007F
|
|
#define PBIST14_FAIL_INSERTION_TEST_VECTOR_CL1 0x00000003
|
|
#define PBIST14_FAIL_INSERTION_TEST_VECTOR_CL2 0x00000008
|
|
#define PBIST14_FAIL_INSERTION_TEST_VECTOR_CL3 0x000001FF
|
|
#define PBIST14_FAIL_INSERTION_TEST_VECTOR_CMS 0x00000000
|
|
#define PBIST14_FAIL_INSERTION_TEST_VECTOR_CSR 0x20000000
|
|
#define PBIST14_FAIL_INSERTION_TEST_VECTOR_I0 0x00000001
|
|
#define PBIST14_FAIL_INSERTION_TEST_VECTOR_I1 0x00000004
|
|
#define PBIST14_FAIL_INSERTION_TEST_VECTOR_I2 0x00000008
|
|
#define PBIST14_FAIL_INSERTION_TEST_VECTOR_I3 0x00000000
|
|
#define PBIST14_FAIL_INSERTION_TEST_VECTOR_RAMT 0x011D2528
|
|
|
|
static struct pbist_inst_info pbist14_inst_info = {
|
|
/* Main Pulsar 2 Instance 1 or MAIN_R52_x */
|
|
.num_pbist_runs = 1,
|
|
.intr_num = PBIST14_DFT_PBIST_CPU_0_INTR_NUM,
|
|
.dev_id = TISCI_DEV_PBIST14,
|
|
.cut = {
|
|
{
|
|
.dev_id = TISCI_DEV_R5FSS2_CORE0,
|
|
.proc_id = PROC_ID_MCU_R5FSS2_CORE0,
|
|
},
|
|
{
|
|
.dev_id = TISCI_DEV_R5FSS2_CORE1,
|
|
.proc_id = PROC_ID_MCU_R5FSS2_CORE1,
|
|
}
|
|
},
|
|
.pbist_config_run = {
|
|
{
|
|
.override = 0,
|
|
.algorithms_bit_map = PBIST14_ALGO_BITMAP_0,
|
|
.memory_groups_bit_map = PBIST14_MEM_BITMAP_0,
|
|
.scramble_value_lo = 0x76543210,
|
|
.scramble_value_hi = 0xFEDCBA98,
|
|
},
|
|
{
|
|
.override = 0,
|
|
.algorithms_bit_map = 0,
|
|
.memory_groups_bit_map = 0,
|
|
.scramble_value_lo = 0,
|
|
.scramble_value_hi = 0,
|
|
},
|
|
},
|
|
.pbist_neg_config_run = {
|
|
.CA0 = PBIST14_FAIL_INSERTION_TEST_VECTOR_CA0,
|
|
.CA1 = PBIST14_FAIL_INSERTION_TEST_VECTOR_CA1,
|
|
.CA2 = PBIST14_FAIL_INSERTION_TEST_VECTOR_CA2,
|
|
.CA3 = PBIST14_FAIL_INSERTION_TEST_VECTOR_CA3,
|
|
.CL0 = PBIST14_FAIL_INSERTION_TEST_VECTOR_CL0,
|
|
.CL1 = PBIST14_FAIL_INSERTION_TEST_VECTOR_CL1,
|
|
.CL2 = PBIST14_FAIL_INSERTION_TEST_VECTOR_CL2,
|
|
.CL3 = PBIST14_FAIL_INSERTION_TEST_VECTOR_CL3,
|
|
.CMS = PBIST14_FAIL_INSERTION_TEST_VECTOR_CMS,
|
|
.CSR = PBIST14_FAIL_INSERTION_TEST_VECTOR_CSR,
|
|
.I0 = PBIST14_FAIL_INSERTION_TEST_VECTOR_I0,
|
|
.I1 = PBIST14_FAIL_INSERTION_TEST_VECTOR_I1,
|
|
.I2 = PBIST14_FAIL_INSERTION_TEST_VECTOR_I2,
|
|
.I3 = PBIST14_FAIL_INSERTION_TEST_VECTOR_I3,
|
|
.RAMT = PBIST14_FAIL_INSERTION_TEST_VECTOR_RAMT
|
|
},
|
|
.num_pbist_rom_test_runs = 1,
|
|
.pbist_rom_test_config_run = {
|
|
{
|
|
.D = 0xF412605Eu,
|
|
.E = 0xF412605Eu,
|
|
.CA2 = 0x7FFFu,
|
|
.CL0 = 0x3FFu,
|
|
.CA3 = 0x0u,
|
|
.I0 = 0x1u,
|
|
.CL1 = 0x1Fu,
|
|
.I3 = 0x0u,
|
|
.I2 = 0xEu,
|
|
.CL2 = 0xEu,
|
|
.CA1 = 0x7FFFu,
|
|
.CA0 = 0x0u,
|
|
.CL3 = 0x7FFFu,
|
|
.I1 = 0x20u,
|
|
.RAMT = 0x08002020u,
|
|
.CSR = 0x00000001u,
|
|
.CMS = 0x01u
|
|
},
|
|
{
|
|
.D = 0x0u,
|
|
.E = 0x0u,
|
|
.CA2 = 0x0u,
|
|
.CL0 = 0x0u,
|
|
.CA3 = 0x0u,
|
|
.I0 = 0x0u,
|
|
.CL1 = 0x0u,
|
|
.I3 = 0x0u,
|
|
.I2 = 0x0u,
|
|
.CL2 = 0x0u,
|
|
.CA1 = 0x0u,
|
|
.CA0 = 0x0u,
|
|
.CL3 = 0x0u,
|
|
.I1 = 0x0u,
|
|
.RAMT = 0x0u,
|
|
.CSR = 0x0u,
|
|
.CMS = 0x0u
|
|
},
|
|
{
|
|
.D = 0x0u,
|
|
.E = 0x0u,
|
|
.CA2 = 0x0u,
|
|
.CL0 = 0x0u,
|
|
.CA3 = 0x0u,
|
|
.I0 = 0x0u,
|
|
.CL1 = 0x0u,
|
|
.I3 = 0x0u,
|
|
.I2 = 0x0u,
|
|
.CL2 = 0x0u,
|
|
.CA1 = 0x0u,
|
|
.CA0 = 0x0u,
|
|
.CL3 = 0x0u,
|
|
.I1 = 0x0u,
|
|
.RAMT = 0x0u,
|
|
.CSR = 0x0u,
|
|
.CMS = 0x0u
|
|
},
|
|
{
|
|
.D = 0x0u,
|
|
.E = 0x0u,
|
|
.CA2 = 0x0u,
|
|
.CL0 = 0x0u,
|
|
.CA3 = 0x0u,
|
|
.I0 = 0x0u,
|
|
.CL1 = 0x0u,
|
|
.I3 = 0x0u,
|
|
.I2 = 0x0u,
|
|
.CL2 = 0x0u,
|
|
.CA1 = 0x0u,
|
|
.CA0 = 0x0u,
|
|
.CL3 = 0x0u,
|
|
.I1 = 0x0u,
|
|
.RAMT = 0x0u,
|
|
.CSR = 0x0u,
|
|
.CMS = 0x0u
|
|
},
|
|
{
|
|
.D = 0x0u,
|
|
.E = 0x0u,
|
|
.CA2 = 0x0u,
|
|
.CL0 = 0x0u,
|
|
.CA3 = 0x0u,
|
|
.I0 = 0x0u,
|
|
.CL1 = 0x0u,
|
|
.I3 = 0x0u,
|
|
.I2 = 0x0u,
|
|
.CL2 = 0x0u,
|
|
.CA1 = 0x0u,
|
|
.CA0 = 0x0u,
|
|
.CL3 = 0x0u,
|
|
.I1 = 0x0u,
|
|
.RAMT = 0x0u,
|
|
.CSR = 0x0u,
|
|
.CMS = 0x0u
|
|
},
|
|
{
|
|
.D = 0x0u,
|
|
.E = 0x0u,
|
|
.CA2 = 0x0u,
|
|
.CL0 = 0x0u,
|
|
.CA3 = 0x0u,
|
|
.I0 = 0x0u,
|
|
.CL1 = 0x0u,
|
|
.I3 = 0x0u,
|
|
.I2 = 0x0u,
|
|
.CL2 = 0x0u,
|
|
.CA1 = 0x0u,
|
|
.CA0 = 0x0u,
|
|
.CL3 = 0x0u,
|
|
.I1 = 0x0u,
|
|
.RAMT = 0x0u,
|
|
.CSR = 0x0u,
|
|
.CMS = 0x0u
|
|
},
|
|
{
|
|
.D = 0x0u,
|
|
.E = 0x0u,
|
|
.CA2 = 0x0u,
|
|
.CL0 = 0x0u,
|
|
.CA3 = 0x0u,
|
|
.I0 = 0x0u,
|
|
.CL1 = 0x0u,
|
|
.I3 = 0x0u,
|
|
.I2 = 0x0u,
|
|
.CL2 = 0x0u,
|
|
.CA1 = 0x0u,
|
|
.CA0 = 0x0u,
|
|
.CL3 = 0x0u,
|
|
.I1 = 0x0u,
|
|
.RAMT = 0x0u,
|
|
.CSR = 0x0u,
|
|
.CMS = 0x0u
|
|
},
|
|
{
|
|
.D = 0x0u,
|
|
.E = 0x0u,
|
|
.CA2 = 0x0u,
|
|
.CL0 = 0x0u,
|
|
.CA3 = 0x0u,
|
|
.I0 = 0x0u,
|
|
.CL1 = 0x0u,
|
|
.I3 = 0x0u,
|
|
.I2 = 0x0u,
|
|
.CL2 = 0x0u,
|
|
.CA1 = 0x0u,
|
|
.CA0 = 0x0u,
|
|
.CL3 = 0x0u,
|
|
.I1 = 0x0u,
|
|
.RAMT = 0x0u,
|
|
.CSR = 0x0u,
|
|
.CMS = 0x0u
|
|
},
|
|
{
|
|
.D = 0x0u,
|
|
.E = 0x0u,
|
|
.CA2 = 0x0u,
|
|
.CL0 = 0x0u,
|
|
.CA3 = 0x0u,
|
|
.I0 = 0x0u,
|
|
.CL1 = 0x0u,
|
|
.I3 = 0x0u,
|
|
.I2 = 0x0u,
|
|
.CL2 = 0x0u,
|
|
.CA1 = 0x0u,
|
|
.CA0 = 0x0u,
|
|
.CL3 = 0x0u,
|
|
.I1 = 0x0u,
|
|
.RAMT = 0x0u,
|
|
.CSR = 0x0u,
|
|
.CMS = 0x0u
|
|
},
|
|
{
|
|
.D = 0x0u,
|
|
.E = 0x0u,
|
|
.CA2 = 0x0u,
|
|
.CL0 = 0x0u,
|
|
.CA3 = 0x0u,
|
|
.I0 = 0x0u,
|
|
.CL1 = 0x0u,
|
|
.I3 = 0x0u,
|
|
.I2 = 0x0u,
|
|
.CL2 = 0x0u,
|
|
.CA1 = 0x0u,
|
|
.CA0 = 0x0u,
|
|
.CL3 = 0x0u,
|
|
.I1 = 0x0u,
|
|
.RAMT = 0x0u,
|
|
.CSR = 0x0u,
|
|
.CMS = 0x0u
|
|
},
|
|
{
|
|
.D = 0x0u,
|
|
.E = 0x0u,
|
|
.CA2 = 0x0u,
|
|
.CL0 = 0x0u,
|
|
.CA3 = 0x0u,
|
|
.I0 = 0x0u,
|
|
.CL1 = 0x0u,
|
|
.I3 = 0x0u,
|
|
.I2 = 0x0u,
|
|
.CL2 = 0x0u,
|
|
.CA1 = 0x0u,
|
|
.CA0 = 0x0u,
|
|
.CL3 = 0x0u,
|
|
.I1 = 0x0u,
|
|
.RAMT = 0x0u,
|
|
.CSR = 0x0u,
|
|
.CMS = 0x0u
|
|
},
|
|
{
|
|
.D = 0x0u,
|
|
.E = 0x0u,
|
|
.CA2 = 0x0u,
|
|
.CL0 = 0x0u,
|
|
.CA3 = 0x0u,
|
|
.I0 = 0x0u,
|
|
.CL1 = 0x0u,
|
|
.I3 = 0x0u,
|
|
.I2 = 0x0u,
|
|
.CL2 = 0x0u,
|
|
.CA1 = 0x0u,
|
|
.CA0 = 0x0u,
|
|
.CL3 = 0x0u,
|
|
.I1 = 0x0u,
|
|
.RAMT = 0x0u,
|
|
.CSR = 0x0u,
|
|
.CMS = 0x0u
|
|
},
|
|
{
|
|
.D = 0x0u,
|
|
.E = 0x0u,
|
|
.CA2 = 0x0u,
|
|
.CL0 = 0x0u,
|
|
.CA3 = 0x0u,
|
|
.I0 = 0x0u,
|
|
.CL1 = 0x0u,
|
|
.I3 = 0x0u,
|
|
.I2 = 0x0u,
|
|
.CL2 = 0x0u,
|
|
.CA1 = 0x0u,
|
|
.CA0 = 0x0u,
|
|
.CL3 = 0x0u,
|
|
.I1 = 0x0u,
|
|
.RAMT = 0x0u,
|
|
.CSR = 0x0u,
|
|
.CMS = 0x0u
|
|
},
|
|
},
|
|
};
|
|
|
|
static struct lbist_inst_info lbist_inst_info_main_r5f2_x = {
|
|
/* Main Pulsar 2 Instance 1 or MAIN_R52_x */
|
|
.lbist_signature = (u32 *)(MAIN_R5F2_LBIST_SIG),
|
|
.intr_num = MCU_R5FSS0_CORE0_INTR_LBIST_BIST_DONE_0,
|
|
.expected_misr = MAIN_R5_MISR_EXP_VAL,
|
|
.lbist_conf = {
|
|
.dc_def = LBIST_DC_DEF,
|
|
.divide_ratio = LBIST_DIVIDE_RATIO,
|
|
.static_pc_def = LBIST_MAIN_R5_STATIC_PC_DEF,
|
|
.set_pc_def = LBIST_SET_PC_DEF,
|
|
.reset_pc_def = LBIST_RESET_PC_DEF,
|
|
.scan_pc_def = LBIST_SCAN_PC_DEF,
|
|
.prpg_def_l = LBIST_PRPG_DEF_L,
|
|
.prpg_def_u = LBIST_PRPG_DEF_U,
|
|
},
|
|
.cut = {
|
|
.dev_id = TISCI_DEV_R5FSS2_CORE0,
|
|
.proc_id = PROC_ID_MCU_R5FSS2_CORE0,
|
|
},
|
|
};
|