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