/* 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, }, };