请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TDA4VH-Q1 工具与软件:
您好!
我有一个关于 OTP Keywriter 的问题。 我们将使用此应用程序将 HS-SE FS 芯片转换为 HS-SE 型号。
电路板:J784s4定制电路板
PDK 09.02.00.30
Linux
SPL 引导
在我们的生产中,我们希望在 Keywriter 完成其工作后触发重新启动。
为了模拟 Keywriter 行为、我们在不启用 OTP 编程电压的情况下添加了编译变体。
void EnableHighVoltageProgramming(void)
{
uint32_t gpioIndex = 0;
/* Configure GPIO base address */
GPIO_v0_HwAttrs gpioCfg;
GPIO_socGetInitCfg(gpioIndex, &gpioCfg);
gpioCfg.baseAddr = CSL_WKUP_GPIO0_BASE;
GPIO_socSetInitCfg(gpioIndex, &gpioCfg);
#ifdef ENABLE_KEYWRITER_HIGH_VOLTAGE_PROGRAMMING
/* Set GPIO to HIGH */
UART_printf("Enable OTP Programming Voltage\n");
GPIO_init();
GPIO_write(gpioIndex, 1);
UART_printf("WKUP_GPIO6_VPP_CTRL output high\n");
#endif
}
在 Keywriter 的所谓干运行变体中、软重新引导可以按预期工作。 此例程的实现如下所示:
void NORETURN TriggerSoftReboot(void)
{
UART_printf("Soft reboot triggered...\n");
Board_STATUS board_status = Board_unlockMMR();
UART_printf("Soft reboot: MMR unlock status: %d\n", board_status);
s32 reset_status;
while (true)
{
reset_status = system_reset(SOC_DOMGRP_J784S4_SYSTEM);
UART_printf("Soft reboot: system_reset status DOMGRP_J784S4_SYSTEM: %d\n", reset_status);
Osal_delay (100);
reset_status = system_reset(SOC_DOMGRP_J784S4_MCU);
UART_printf("Soft reboot: system_reset status DOMGRP_J784S4_MCU: %d\n", reset_status);
Osal_delay (100);
}
}
但是、如果具有启用编程电压的 Keywriter 型号(未干运行)、则 j784s4会成功地从 HS-HS FS 转换到 HS -SE 型号。
但软重启无法按预期工作-不执行软重启。
是否 M4内核、dmsc 固件在公钥真正融合后阻止任何软重启?
此致
Thomas