i.MX8MP平台开发分享(RDC软件配置篇)

Uboot中已经将RDC的配置写入到了OCRAM中,NXP在ATF中预设了SIP服务,SIP服务下有厂商自定义的smc命令ID。例如下面的DDR、GPC、SRC和HAB的smc回调函数。

在SRC中断处理函数中,对于SRC_M4_START指令,先读取OCRAM中的配置,然后初始化RDC。

RDC初始化

初始化过程很简单,设置master分配、外设访问权限和内存区域访问权限。

c 复制代码
void imx_rdc_init(const struct imx_rdc_cfg *rdc_cfg)
{
	const struct imx_rdc_cfg *rdc = rdc_cfg;

	while (rdc->type != RDC_INVALID) {
		switch (rdc->type) {
		case RDC_MDA:
			/* MDA config */
			mmio_write_32(MDAn(rdc->index), rdc->setting.rdc_mda);
			break;
		case RDC_PDAP:
			/* peripheral access permission config */
			mmio_write_32(PDAPn(rdc->index), rdc->setting.rdc_pdap);
			break;
		case RDC_MEM_REGION:
			/* memory region access permission config */
			mmio_write_32(MRSAn(rdc->index), rdc->setting.rdc_mem_region[0]);
			mmio_write_32(MREAn(rdc->index), rdc->setting.rdc_mem_region[1]);
			mmio_write_32(MRCn(rdc->index), rdc->setting.rdc_mem_region[2]);
			break;
		default:
			break;
		}

		rdc++;
	}
}
相关推荐
河藕Hou1 小时前
Linux - 磁盘/逻辑卷的分区&格式化&挂载
linux
半桔1 小时前
【网络编程】网络通信基石:从局域网到跨网段通信原理探秘
linux·运维·网络协议·php
叫我詹躲躲1 小时前
Linux 服务器磁盘满了?教你快速找到大文件,安全删掉不踩坑!
linux·前端·curl
叫我詹躲躲2 小时前
3 分钟搞定 Linux 磁盘清理:实用命令 + 自动脚本,新手也会
linux·curl
Garc2 小时前
Zookeeper删除提供者服务中的指定IP节点
linux·运维·服务器
过往入尘土2 小时前
Linux:虚拟世界的大门
linux·人工智能
Wang's Blog2 小时前
Linux小课堂: Linux 系统的多面性与 CentOS 下载指南
linux·运维·centos
FengyunSky2 小时前
高通Camx内存问题排查
android·linux·后端
matlab的学徒3 小时前
nginx+springboot+redis+mysql+elfk
linux·spring boot·redis·nginx
HappyGame023 小时前
Linux网络编程(上)
linux·网络