工具与软件:
你(们)好
现在、客户需要在 am62x 的 ext_OTP 区域存储和读取 MAC 地址。 根据 TI_SCI 和 E2E 提供的指令、我们在 U-Boot 阶段尝试通过 TISCI 命令读取和写入 ext_OTP、还使用 SDK10中的 OP-TEE 运行 ext_OTP。 但是、这两种方法都无法成功实现读取和写入操作。
在 U-Boot 阶段:
•我们在 TI_SCI 驱动器内集成了 ext_OTP 的读取和写入操作。 但是、我们遇到了以下错误消息:"TI_SCI system-controller@44043000:message not recognized"。
使用 OP-TEE:
•客户端操作:尝试在用户级别通过 OP-TEE 客户端在 ext_OTP 上运行时、我们收到一条错误消息。
root@OK62xx:/# /run/media/boot-mmcblk1p1/fltest_otptest write mmr row=1 val= 0x200 mask=0x1fffe00 row=2 val= 0x0 mask=0xffff ERR [568] TEEC:TEEC_InvokeCommand:730: TEE_IOC_INVOKE failed fltest_otptest: TEEC_InvokeCommand(PREPARE) failed 0xffff0000 origin 0x2
•驱动器侧运行:我们还直接在 OP-TEE 驱动器内集成 ext_oTp 操作、但不会生成任何错误消息。 但是、写入操作未生效、读取数据保持默认值0。
NOTICE: BL31: v2.8(release):fa0a23c5-dirty
NOTICE: BL31: Built : 09:11:17, Nov 15 2024
I/TC:
I/TC: OP-TEE version: 4.2.0-dev (gcc version 11.3.1 20220712 (Arm GNU Toolchain 11.3.Rel1)) #13 Wed Nov 27 01:15:51 UTC 2024 aarch64
I/TC: WARNING: This OP-TEE configuration might be insecure!
I/TC: WARNING: Please check optee.readthedocs.io/.../porting_guidelines.html
I/TC: Primary CPU initializing
I/TC: GIC redistributor base address not provided
I/TC: Assuming default GIC group status and modifier
I/TC: ########init_ti_sci
I/TC: mmr_val is 0
I/TC: SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
I/TC: ti_sci_write_otp
I/TC: ###gpio_base is 9b800000
I/TC: row=0 val= 0x44 mask=0x1fffffc
I/TC: row=1 val= 0x0 mask=0x1ff
I/TC: mmrIdx: 0,rowStart: 0, rowColStart: 2, rowEnd: 1, rowColEnd: 8
I/TC: ti_sci_read_otp_mmr
I/TC: mmr_val is 0
我们的客户要求如下:
AM62x 器件上两个以太网端口中的每个端口都应使用全局唯一的 MAC 地址。 TI 应提供一个 MAC 地址、需要批量将另一个地址编程到每个 AM62x 的 ext_OTP 区域中。
•KeyWriter 工具无法将不同的 MAC 地址批量编程到不同的 AM62x 器件。 通过 OP-TEE 或在内核阶段使用 TI_SCI 运行 ext_oTp、从而使我们的量产测试设备能够自动将不同的 MAC 地址批量编程到不同的 AM62x 器件中。
在实际用例中、应在 U-Boot 阶段读取存储在 ext_otp 区域中的 MAC 地址、将其放入寄存器、并在 Linux 系统引导后设置为 eth1的 MAC 地址。 KeyWriter 工具无法实现此功能。
您能否确认是否可以在 Linux 环境中在 ext_oTp 上操作、并就如何操作提供指导?
此致
Ethan