ZHCU943A November 2020 – July 2022 TPS25750
说明 | 'PBMc' 任务结束补丁加载序列。在所有补丁数据传输完毕后发送此任务。此任务将启动对已传输的二进制补丁数据进行的 CRC 校验,如果 CRC 成功,则会执行补丁中包含的 patch_init 函数。 | |||
---|---|---|---|---|
INPUT DATAX | 无 | |||
OUTPUT DATAX | 位 | 名称 | 说明 | |
319:288 | acCalculatedCRC | 在固件中为配置数据计算的 CRC。 | ||
287:256 | acTransferredCRC | 随配置数据一同传输的 CRC。 | ||
255:240 | 保留 | 读数为 0。 | ||
239:224 | acIndicatedDataSize | 传输的配置数据中指示的 DataSize。 | ||
223:216 | acHeaderVersion | 传输的配置数据中指示的标头版本。 | ||
215:208 | acFailCode | 如果应用程序配置数据未能应用,则会显示此错误代码,指示未能应用的原因。 | ||
0x00 | AC_FAIL_NONE:无失败。 | |||
0x01 | AC_FAIL_WRONG_HEADER_VERSION:标头版本应为 1,但不是 1。 | |||
0x02 | AC_FAIL_TOO_MUCH_DATA:DataSize 字段表明您正在尝试加载已分配了 SRAM 的更多配置数据。 | |||
0x03 | AC_FAIL_CRC_CHECK_FAIL:CRC 比较失败。 | |||
207:200 | acState | AppConfig 状态机的当前内部状态。 | ||
0x00 | AC_NODATA:尚未找到配置数据,因为我们尚未开始查找。 | |||
0x01 | AC_LOADING_DEFAULT:尝试从出厂默认值加载配置数据。 | |||
0x02 | AC_LOADING_SRAM:尝试从 SRAM 加载配置数据。 | |||
0x03 | AC_LOADING_FLASH:尝试从闪存加载配置数据。 | |||
0x04 | AC_LOADING_I2C:尝试从 I2C 加载配置数据。 | |||
0x05 | AC_LOADING_DONE:配置数据加载完成,我们找到了有效数据。 | |||
0x06 | AC_ERROR:通用错误状态。 | |||
0x07 | AC_DONE_SUCCESS:完全完成了应用程序自定义过程,并成功应用了记录。 | |||
0x08 | AC_DONE_FAIL:完全完成了应用程序自定义过程,但未应用记录。 | |||
199:192 | configBundleGood | 如果顶级状态机找到有效的配置捆绑包,则为 1,否则为 0。 | ||
191:160 | rpRomVersionExpected | 传输的捆绑包补丁标头中的 romVersionExpected | ||
159:144 | rpBundleTotalSize | 传输的捆绑包补丁标头中的 bundleTotalSize。 | ||
143:128 | rpBundleFlags | 传输的捆绑包补丁标头中的 bundleFlags。 | ||
127:96 | rpPatchBodyCrc | 传输的捆绑包补丁标头中的 patchBodyCrc。 | ||
95:64 | rpPatchHeaderCrc | 传输的捆绑包补丁标头中的 patchHeaderCrc。 | ||
OUTPUT DATAX | 位 | 名称 | 说明 | |
55:48 | rpBundleSignature | 传输的捆绑包补丁标头中的 bundleSignature。 | ||
47:40 | rpState | RomPatch 状态机的当前内部状态。 | ||
0x00 | RP_NOPATCH:未加载任何补丁。 | |||
0x01 | RP_LOADING:在加载补丁数据的过程中。 | |||
0x02 | RP_LOADINGDONE:已收到所有补丁数据。 | |||
0x03 | RP_RUNNING:一个补丁已加载并正在运行。也可能指示有一个 NULL 补丁处于活动状态。 | |||
0x04 | RP_EARLYLOAD_SKIPPED:指示早期引导过程不需要等待 I2C 上的补丁。 | |||
0x05 | RP_UARTBOOTED:检查 RAM 中的补丁。 | |||
0x06 | RP_ERROR:通用错误状态。 | |||
39:32 | patchBundleGood | 如果顶级状态机找到良好的 ROM 补丁,则为 0x01,否则为 0x00。 | ||
31:24 | AppConfigPatchCompleteStatus | 0x00 | ||
0x40 | 警告。 | |||
0x80 | 失败。 | |||
23:16 | DevicePatchCompleteStatus | 一个指示 RomPatch 状态机是否成功执行的返回代码。此值始终有效,并且反映了 RomPatch 机制的内部状态,但仅当传输的捆绑包确实包含补丁数据时才必须纳入考量。 | ||
0x00 | 成功。 | |||
0x20 | 未就绪。 | |||
0x40 | 不是补丁。 | |||
0x41 | 补丁标头校验和不匹配。 | |||
0x42 | 补丁与此版本的 ROM 不兼容。 | |||
0x43 | 补丁代码校验和不匹配。 | |||
0x44 | 收到 null 补丁。 | |||
0x45 | 收到错误补丁。 | |||
15:8 | cpReturn | 始终返回成功,无法使其失败。 | ||
字节 1:返回代码 | ||||
7:4 | rpReturnIndicator | rpReturn 值的最高有效半字节。 | ||
0x0 | 成功。 | |||
0x2 | 参考。 | |||
0x4 | 警告。 | |||
0x8 | 错误。 | |||
3:0 | acReturnIndicator | acReturn 值的最高有效半字节。 | ||
0x0 | 成功。 | |||
0x2 | 参考。 | |||
0x4 | 警告。 | |||
0x8 | 错误。 | |||
任务完成 | 当输出具有有效的 DevicePatchCompleteStatus 和 AppConfigPatchCompleteStatus 时,'PBMc' 任务完成。如果 DATAX 输入不包含总补丁大小,则此任务被拒绝。如果 MODE 寄存器 (0x03) 等于 'APP',则此任务将被拒绝。 | |||
副作用 | 在此任务完成之前,它会将 I2C 从器件地址从补丁地址更改回正常值。成功完成此任务后,PD 控制器会将 MODE 寄存器 (0x03) 更改为 'APP' 并进入应用程序模式。 | |||
其他信息 | 当 CMDx 寄存器变为 0 时,应检查 Output DATAX 寄存器的状态。如果 MODE 寄存器为 'APP'(表明 PD 控制器处于 APP 模式),则它将拒绝 'PBMc' 任务。 |