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++;
	}
}
相关推荐
IDOlaoluo1 小时前
OpenSSL 1.0.1e 下载解压和运行方法(小白适用 附安装包)
linux
豆是浪个1 小时前
Linux(Centos 7.6)命令详解:sar
linux·运维·centos
fie88891 小时前
CentOS下Bind服务的安装与故障排查
linux·运维·centos
Xの哲學2 小时前
Linux RCU (Read-Copy-Update) 机制深度分析
linux·网络·算法·架构·边缘计算
東雪蓮☆2 小时前
Linux 网络流量监控 Shell 脚本详解(支持邮件告警)
linux·运维·服务器
小跌—3 小时前
Linux:进程信号理解
linux·c++·算法
東雪蓮☆3 小时前
使用 Shell 脚本监控服务器 IOWait 并发送邮件告警
linux·运维·服务器
Lin_Aries_04213 小时前
在 CentOS 9 上安装 Docker 的完整指南
linux·docker·centos
丁满与彭彭5 小时前
嵌入式学习笔记--Linux系统编程阶段--DAY06进程间通信-消息队列
linux·笔记·学习
egoist20235 小时前
[linux仓库]性能加速的隐形引擎:深度解析Linux文件IO中的缓冲区奥秘
linux·运维·开发语言·缓存·缓冲区