ZHDZ012G December   2020  – June 2026 DRA829J , DRA829J-Q1 , DRA829V , DRA829V-Q1 , TDA4VM , TDA4VM-Q1

 

  1.   1
  2. 1受影响的模块
  3. 2命名规则、封装编号法和修订版本标识
    1. 2.1 器件和开发支持工具命名规则
    2. 2.2 支持的器件
    3. 2.3 封装编号法和修订版本标识
  4. 3器件版本 2.0/1.1/1.0 使用说明和公告
    1. 3.1 器件版本 2.0/1.1/1.0 使用说明
      1.      i2134
      2.      i2330
      3.      i2453
    2. 3.2 器件版本 2.0/1.1/1.0 公告
    3.     i2024
    4.     i2038
    5.     i2048
    6.     i2049
    7.     i2050
    8.     i2052
    9.     i2053
    10.     i2054
    11.     i2055
    12.     i2062
    13.     i2063
    14.     i2064
    15.     i2065
    16.     i2067
    17.     i2079
    18.     i2081
    19.     i2083
    20.     i2085
    21.     i2086
    22.     i2087
    23.     i2090
    24.     i2091
    25.     i2092
    26.     i2093
    27.     i2094
    28.     i2095
    29.     i2096
    30.     i2097
    31.     i2098
    32.     i2099
    33.     i2100
    34.     i2101
    35.     i2102
    36.     i2103
    37.     i2103
    38.     i2115
    39.     i2116
    40.     i2117
    41.     i2118
    42.     i2119
    43.     i2120
    44.     i2121
    45.     i2122
    46.     i2123
    47. 3.3 i2124
    48. 3.4 i2126
    49. 3.5 i2127
    50.     i2128
    51.     i2129
    52.     i2131
    53.     i2132
    54.     i2133
    55.     i2134
    56.     i2137
    57.     i2138
    58.     i2139
    59.     i2141
    60.     i2143
    61.     i2144
    62.     i2145
    63.     i2146
    64.     i2147
    65.     i2148
    66.     i2149
    67. 3.6 i2150
    68. 3.7 i2151
    69. 3.8 i2152
    70.     i2153
    71.     i2154
    72.     i2155
    73.     i2157
    74.     i2159
    75.     i2160
    76.     i2161
    77.     i2162
    78.     i2163
    79.     i2164
    80.     i2166
    81.     i2168
    82.     i2171
    83.     i2173
    84.     i2174
    85.     i2177
    86.     i2178
    87.     i2179
    88.     i2180
    89.     i2182
    90.     i2183
    91.     i2184
    92.     i2185
    93.     i2187
    94.     i2188
    95.     i2189
    96.     i2190
    97.     i2191
    98.     i2196
    99.     i2197
    100.     i2198
    101.     i2199
    102.     i2200
    103.     i2205
    104.     i2207
    105.     i2208
    106.     i2210
    107.     i2211
    108.     i2213
    109.     i2214
    110.     i2215
    111.     i2216
    112.     i2217
    113.     i2219
    114.     i2221
    115.     i2227
    116.     i2228
    117.     i2229
    118.     i2230
    119.     i2232
    120.     i2233
    121.     i2234
    122.     i2235
    123.     i2238
    124.     i2239
    125.     i2244
    126.     i2245
    127.     i2246
    128.     i2249
    129.     i2253
    130.     i2257
    131.     i2271
    132.     i2274
    133.     i2275
    134.     i2277
    135.     i2278
    136.     i2279
    137.     i2283
    138.     i2305
    139.     i2306
    140.     i2307
    141.     i2310
    142.     i2311
    143.     i2312
    144.     i2320
    145.     i2329
    146.     i2351
    147.     i2362
    148.     i2366
    149.     i2371
    150.     i2383
    151.     i2399
    152.     i2401
    153.     i2409
    154.     i2414
    155.     i2418
    156.     i2422
    157.     i2424
    158.     i2435
    159.     i2449
    160.     i2454
    161.     i2482
  5.   商标
  6.   修订历史记录

i2093


USB:如果在器件模式下的 DMA 传输期间接收到 USB 复位,DMA 将挂起

详细信息:

USB 控制器包含一个 DMA 主器件端口,用于在系统存储器之间传输数据。如果在 DMA 传输处于活动状态时接收到总线复位(对超高速器件进行 2.0 复位或温复位/热复位),则该 DMA 主器件端口可能无法正确终止传输。这可能会锁定 DMA 主器件。

USB 主机可发出 USB 2.0 总线复位或超高速温复位/热复位,以响应 USB 器件的异常操作。USB 主机将首先尝试通过事务重试从错误情况(例如数据包中的 CRC 错误)恢复,然后再发出复位。在此期间,控制器中的 USB 数据缓冲区将暂时不可用于新 DMA 传输。这为完成待处理的 DMA 传输提供了机会。以下方面会影响 DMA 处于活动状态时接收复位的概率:

  • 主机检测器件异常行为所需的时间。
  • 主机重试事务所需的时间,以及器件响应重试所需的时间。
  • 主机发起复位信号传输所需的时间。
  • 器件完成所有可用片上缓冲区的待处理传输所需的时间。

如果系统延迟极高,则可能会在 DMA 传输仍在进行或待处理时接收到复位。

该问题会影响所有速度,但发生概率非常低。

该问题仅影响器件模式。

权变措施:

以下两个选项可用于从这种不太可能发生的情况中恢复。发生 DMA 锁定后,需要进行 USB 子系统复位才能恢复。

选项 1:使用其他系统级机制来检测锁定并复位 USB 子系统。如果 DMA 在复位后锁定,主机将无法枚举该器件。主机可再次重试复位该器件,但后续重试将失败,因为总线复位不足以从 DMA 锁定中恢复。枚举失败后,主机软件必须将问题提交到系统层面,以便可以使用备选机制将锁定情况传递给器件。

选项 2:以下软件权变措施可用于检测 DMA 锁定和复位子系统。以下是权变措施程序。

  1. 当总线复位后发生第一个描述符缺失中断时,软件会检查 AXI 是否空闲。可通过读取 DMA_AXI_CAP 寄存器中的 AXI_IDLE MMR 位来检查 AXI 状态。如果 AXI 空闲,软件将继续执行步骤 2。如果 AXI 未空闲,软件将继续执行步骤 6。
  2. 按照以下步骤启动虚拟 DMA 传输。
    • 配置虚拟 IN1 端点。
    • 为 IN1 准备 TRB 和数据包。为该传输使能完成中断 (IOC)。
    • 触发 IN1 的门铃
    • 启动 T2 计时器,其中 T2 < 50ms。如果 DMA 未挂起,建议的 T2 时间为 40ms,以便 DMA 有足够的时间完成虚拟传输
  3. 等待 IOC 中断。如果接收到 IOC 中断,则继续执行步骤 3。如果 T2 计时器到期且未收到 IOC,则继续执行步骤 6。
  4. 通过读取控制器寄存器空间中的 BUF_ADDR、BUF_DATA 和 BUF_CTRL MMR,检查 IN1 数据是否正确。如果数据正确,则继续执行步骤 5。如果数据不正确,则继续执行步骤 6。
  5. 如果到达此步骤,则 DMA 主器件不会挂起。软件可以继续执行进一步的编程,为 SETUP 数据包提供服务。可以退出权变措施流程。
  6. 如果到达此步骤,则 DMA 主器件会挂起。软件执行以下步骤以从挂起中恢复 USB 子系统:
    • 强制器件断开连接。
    • 启动 T1 计时器,其中 T1 >= 200ms。T1 需要大于 200ms,主机才能识别到器件断开连接。如果系统可以承受更长的停机时间,则可以使用更高的 T1 延迟。在极罕见的情况下,此延迟后的任何 USB 传输仍处于挂起状态,复位子系统可能会锁定系统总线并导致芯片完全复位。较高的 T1 延迟提供更多的时间等待任何待处理的系统总线传输完成。
    • 软件使用相应的 LPSC 发起 USB 子系统的强制复位。
    • 等待直至 T1 计时器到期。
    • 按照上电复位后在器件模式下设置 USB 所执行的相同步骤,重新启动 USB 子系统。