DDMA / SDMA 寄存器块(Data DMA / System DMA)

DDMA 基址CORE_BASE + 0x8000 | 地址范围0x8000 ~ 0x8FFF SDMA 基址CORE_BASE + 0x9000 | 地址范围0x9000 ~ 0x9FFF

来源:RK3588 TRM §36.4.3 Detail Registers Description

DDMA 和 SDMA 寄存器布局完全一致,仅基址不同(DDMA 0x8xxx,SDMA 0x9xxx)。DDMA 用于数据搬运,SDMA 用于系统级搬运。以下以 DDMA 为例展开位域,SDMA 将偏移 0x8xxx 替换为 0x9xxx 即可。


cfg_outstanding(DDMA: 0x8000 / SDMA: 0x9000)

读写 outstanding 数配置。

Bit属性复位值字段名描述
31:16RO0x0保留
15:8RW0x0wr_os_cnt最大写 outstanding 数
7:0RW0x0rd_os_cnt最大读 outstanding 数

rd_weight_0(DDMA: 0x8004 / SDMA: 0x9004)

读仲裁权重 0:各模块读 burst 权重。

Bit属性复位值字段名描述
31:24RW0x0rd_weight_pdpPPU 读 burst 权重
23:16RW0x0rd_weight_dpuDPU 读 burst 权重
15:8RW0x0rd_weight_kernel权重读 burst 权重
7:0RW0x0rd_weight_feature特征读 burst 权重

wr_weight_0(DDMA: 0x8008 / SDMA: 0x9008)

写仲裁权重。

Bit属性复位值字段名描述
31:16RO0x0保留
15:8RW0x0wr_weight_pdpPPU 写权重
7:0RW0x0wr_weight_dpuDPU 写权重

cfg_id_error(DDMA: 0x800C / SDMA: 0x900C)

错误 ID 记录。

Bit属性复位值字段名描述
31:10RO0x0保留
9:6RW0x0wr_resp_id错误写 ID
5RO0x0保留
4:0RW0x0rd_resp_id错误读 ID

rd_weight_1(DDMA: 0x8010 / SDMA: 0x9010)

读仲裁权重 1:PC 读 burst 权重。

Bit属性复位值字段名描述
31:8RO0x0保留
7:0RW0x0rd_weight_pcPC 读 burst 权重

cfg_dma_fifo_clr(DDMA: 0x8014 / SDMA: 0x9014)

清除 DMA FIFO。

Bit属性复位值字段名描述
31:1RO0x0保留
0RW0x0dma_fifo_clr清除 DMA FIFO

cfg_dma_arb(DDMA: 0x8018 / SDMA: 0x9018)

DMA 仲裁模式配置。

Bit属性复位值字段名描述
31:10RO0x0保留
9RW0x0wr_arbit_model写仲裁模型
8RW0x0rd_arbit_model读仲裁模型
7RO0x0保留
6:4RW0x0wr_fix_arb写固定仲裁
3RO0x0保留
2:0RW0x0rd_fix_arb读固定仲裁

cfg_dma_rd_qos(DDMA: 0x8020 / SDMA: 0x9020)

各模块读 QoS 配置。

Bit属性复位值字段名描述
31:10RO0x0保留
9:8RW0x0rd_pc_qosPC 读 QoS
7:6RW0x0rd_ppu_qosPPU 读 QoS
5:4RW0x0rd_dpu_qosDPU 读 QoS
3:2RW0x0rd_kernel_qosKernel 读 QoS
1:0RW0x0rd_feature_qosFeature 读 QoS

cfg_dma_rd_cfg(DDMA: 0x8024 / SDMA: 0x9024)

AXI 读通道信号配置。

Bit属性复位值字段名描述
31:13RO0x0保留
12RW0x0rd_arlockAXI arlock
11:8RW0x0rd_arcacheAXI arcache
7:5RW0x0rd_arprotAXI arprot
4:3RW0x0rd_arburstAXI arburst
2:0RW0x0rd_arsizeAXI arsize

cfg_dma_wr_cfg(DDMA: 0x8028 / SDMA: 0x9028)

AXI 写通道信号配置。

Bit属性复位值字段名描述
31:13RO0x0保留
12RW0x0wr_awlockAXI awlock
11:8RW0x0wr_awcacheAXI awcache
7:5RW0x0wr_awprotAXI awprot
4:3RW0x0wr_awburstAXI awburst
2:0RW0x0wr_awsizeAXI awsize

cfg_dma_wstrb(DDMA: 0x802C / SDMA: 0x902C)

AXI 写选通。

Bit属性复位值字段名描述
31:0RW0x0wr_wstrbAXI 写选通信号

cfg_status(DDMA: 0x8030 / SDMA: 0x9030)

DMA 状态。

Bit属性复位值字段名描述
31:9RO0x0保留
8RW0x0idel空闲状态
7:0RO0x0保留

dt_wr_amount(DDMA: 0x8034 / SDMA: 0x9034)

数据写入量统计。用于 ioctl GetDtWrAmount

Bit属性复位值字段名描述
31:0RO0x0dt_wr_amount数据写入量

dt_rd_amount(DDMA: 0x8038 / SDMA: 0x9038)

数据读取量统计。用于 ioctl GetDtRdAmount

Bit属性复位值字段名描述
31:0RO0x0dt_rd_amount数据读取量

wt_rd_amount(DDMA: 0x803C / SDMA: 0x903C)

权重读取量统计。用于 ioctl GetWtRdAmount

Bit属性复位值字段名描述
31:0RO0x0wt_rd_amount权重读取量

清除操作:写 rd_weight_1(0x8010) 值 0x80000101 再写 0x00000101(两次写入进行 latch/clear)。