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.

[参考译文] AM623:optee:未确认消息

Guru**** 2468610 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1466424/am623-optee-message-not-acknowledged

器件型号:AM623

工具与软件:

您好、TI 专家!  

我有 AM6234的开发环境、其中包含我们自己的评估板。

软件 PROCESSOR-SDK-LINUX-RT 版本是 SDK-AM62X-10.01.10.04。

我可以在 optee 下正常地读取 OTP 电子保险丝、如下图:所示

我在 optee 器件上写入 OTP efuse、并且遇到以下错误:

我正在使用 SDK 版本 OTP-AM62X-08.06.00.42、它可以在 optee 下正常地读取和写入 PROCESSOR-SDK-LINUX-RT 电子保险丝

这是对应于 此 PROCESSOR-SDK-LINUX-RT:的 SDK-AM62X-10.01.10.04的配置文件

// ti-processor-sdk-linux-rt-am62xx-evm-10.01.10.04\board-support\ti-u-boot-2024.04+git\board\ti\am62x\sec-cfg.yaml

    otp_config:
        subhdr:
            magic: 0x4081
            size: 69
        otp_entry:
            -  # 1
                host_id: 128
                host_perms: 2
            -  # 2
                host_id: 128
                host_perms: 2
            -  # 3
                host_id: 128
                host_perms: 2
            -  # 4
                host_id: 128
                host_perms: 2
            -  # 5
                host_id: 128
                host_perms: 2
            -  # 6
                host_id: 128
                host_perms: 2
            -  # 7
                host_id: 128
                host_perms: 2
            -  # 8
                host_id: 128
                host_perms: 2
            -  # 9
                host_id: 128
                host_perms: 2
            -  # 10
                host_id: 128
                host_perms: 2
            -  # 11
                host_id: 128
                host_perms: 2
            -  # 12
                host_id: 128
                host_perms: 2
            -  # 13
                host_id: 128
                host_perms: 2
            -  # 14
                host_id: 128
                host_perms: 2
            -  # 15
                host_id: 128
                host_perms: 2
            -  # 16
                host_id: 128
                host_perms: 2
            -  # 17
                host_id: 128
                host_perms: 2
            -  # 18
                host_id: 128
                host_perms: 2
            -  # 19
                host_id: 128
                host_perms: 2
            -  # 20
                host_id: 128
                host_perms: 2
            -  # 21
                host_id: 128
                host_perms: 2
            -  # 22
                host_id: 128
                host_perms: 2
            -  # 23
                host_id: 128
                host_perms: 2
            -  # 24
                host_id: 128
                host_perms: 2
            -  # 25
                host_id: 128
                host_perms: 2
            -  # 26
                host_id: 128
                host_perms: 2
            -  # 27
                host_id: 128
                host_perms: 2
            -  # 28
                host_id: 128
                host_perms: 2
            -  # 29
                host_id: 128
                host_perms: 2
            -  # 30
                host_id: 128
                host_perms: 2
            -  # 31
                host_id: 128
                host_perms: 2
            -  # 32
                host_id: 128
                host_perms: 2
        write_host_id: 11

对应于 SDK 版本 SDK-AM62X-08.06.00.42 PROCESSOR-SDK-LINUX-RT 的配置文件如下:

// ti-processor-sdk-linux-rt-am62xx-evm-08.06.00.42\board-support\k3-image-gen-2022.01\soc\am62x\evm\sec-cfg.c

	/* OTP access configuration */
	.otp_config = {
		.subhdr = {
			.magic = BOARDCFG_OTP_CFG_MAGIC_NUM,
			.size = sizeof(struct boardcfg_extended_otp),
		},
		/* Host ID 0 is DMSC. This means no host has write access to OTP array */
		.write_host_id = HOST_ID_A53_1,
		/* This is an array with 32 entries */
		.otp_entry = {
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
			{
				.host_id = HOST_ID_ALL,
				.host_perms = 0x2,
			},
		},
	},

相应的调试源代码如下:

// ti-processor-sdk-linux-rt-am62xx-evm-10.01.10.04\board-support\optee-os-4.4.0+git\core\arch\arm\plat-k3\drivers\ti_sci.c

/**
 * ti_sci_get_response() - Receive response from mailbox channel
 *
 * @xfer:	Transfer to initiate and wait for response
 *
 * Return: 0 if all goes well, else appropriate error message
 */
static inline int ti_sci_get_response(struct ti_sci_xfer *xfer)
{
	struct k3_sec_proxy_msg *msg = &xfer->rx_message;
	struct ti_sci_msg_hdr *hdr = NULL;
	unsigned int retry = 5;
	int ret = 0;

	for (; retry > 0; retry--) {
		/* Receive the response */
		ret = k3_sec_proxy_recv(msg);
		if (ret) {
			EMSG("Message receive failed (%d)", ret);
			return ret;
		}

		/* msg is updated by Secure Proxy driver */
		hdr = (struct ti_sci_msg_hdr *)msg->buf;

		/* Sanity check for message response */
		if (hdr->seq == message_sequence)
			break;

		IMSG("Message with sequence ID %u is not expected", hdr->seq);
	}
	if (!retry) {
		EMSG("Timed out waiting for message");
		return TEE_ERROR_BUSY;
	}

	DMSG("Message Header Details:");
	DMSG("  Type: 0x%x", hdr->type);
	DMSG("  Host: %d", hdr->host);
	DMSG("  Sequence: %u", hdr->seq);
	DMSG("  Flags: 0x%x", hdr->flags);
	DMSG("  Expected Sequence: %u", message_sequence);

	if (!(hdr->flags & TI_SCI_FLAG_RESP_GENERIC_ACK)) {
		DMSG("Message not acknowledged");
		return TEE_ERROR_ACCESS_DENIED;
	}

	return 0;
}

请问如何解决这个问题?

此致、

Li

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    [quote userid="565545" url="~/support/processors-group/processors/f/processors-forum/1466424/am623-optee-message-not-acknowledged 我正在 optee 上编写 OTP 电子保险丝并且遇到以下错误:

    随附的图像显示不可读写失败。 请澄清问题并以文本形式分享相应的故障日志。

    另请启用并共享 TIFS 日志。

    谢谢!

    Prashant

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这是硬件问题、OTP VPP 未连接