工具与软件:
为什么可以通过调用函数'SDL_LBIST_getPOSTStatus (&postResult)'- SDL_LBIST_post_not_run 来读取我的 LBIST 状态?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
为什么可以通过调用函数'SDL_LBIST_getPOSTStatus (&postResult)'- SDL_LBIST_post_not_run 来读取我的 LBIST 状态?
您好!
请读取以下寄存器的值:
WKUP_CTRL_MMR 寄存器:
0x43000030:CTRLMMR_WKUP_DEVSTAT
0x43000038:CTRLMMR_WKUP_POST_SEL_STAT
0x4300003c:CTRLMMR_WKUP_POST_OPT
0x4300c000:
0x4300c004:
0x4300c008:
0x4300c00c:
0x4300c018:
0x4300c01c:CTRLMMR_WKUP_SMS_LBIST_MISR
0x4300c280:CTRLMMR_WKUP_SMS_LBIST_ SIG
0x4300C2C0:CTRLMMR_WKUP_POST_STAT
0x4300d008:CTRLMMR_WKUP_LOCK3_KICK0
0x4300C2C4:
0x4300C2CC:
MCU_CTRL_MMR 寄存器:
0x40F0C000:CTRLMMR_MCU_LBIST_CTRL
0x40F0C018:CTRLMMR_MCU_LBIST_STAT
0x40F0C01C:CTRLMMR_MCU_LBIST_MISR
0x40F0C280:CTRLMMR_MCU_LBIST_SIG
0x40F0D008:CTRLMMR_MCU_LOCK3_KICK0
0x40F0D00C:CTRLMMR_MCU_LOCK3_KICK1
预量产器件未对相应的 LBIST_SIG 寄存器(例如0x4300C280)进行编程。 该寄存器反映了预期的 MISR 值、因此需要不匹配。 因此、在本例中、输出为 SDL_LBIST_POST_NOT_RUN。 预生产器件的权变措施是对 ExpectedValue 进行硬编码、以匹配计算值(我希望每次运行时都相同)。 这是一个解决方法、实际上不会测试 POST 行为。 您必须等待生产器件来运行这些文件。
CTRLMMR_WKUP_POST_OPT (0xA0F0E) 和 CTRLMMR_WKUP_POST_SEL_STAT (0x0)中的值确实指示启用了后 DMSC 和 MCU LBIST/PBIST 电子保险丝。
实际的 HWPOST 行为由 MCU_BOOTMODE[9:8]引脚决定-这些引脚应该是[00]或[01]以便运行 POST。
CTRLMMR_WKUP_POST_STAT (0x4300_C2C0)通常应在成功完成时读取0x103、而不设置其他超时或错误位。 这至少表示帖子完成。 如果您绕过 POST、此寄存器将读数为0。 这表明、在您的情况下、帖子已成功完成。 然后、将 LBIST 计算出的 MISR 值与预期的 MISR 值(该采样中未对这些值进行编程)进行匹配、以真正指示 LBIST 成功。
LBIST_TIMEOUT/FAIL 位确实用于指示故障、在成功情况下这些位预计为0。 LBIST_MISR 寄存器将保存计算值、LBIST_SIG 寄存器将具有预期值。LBIST SIG 寄存器将仅在生产/RTM 样片上编程、以及快速后置模式。
只有在使用生产样片时、HWPOST 才可行。 这不会来自任何电流 XJ721S2xxxx/XJ784S4xxxx 样片、官方生产样片将具有 TDA4VLxxxxxxx/TDA4VHxxxxxxx 名称。
此致、
Josiitaa.