1. 关闭PCIe 控制器:

通过向系统控制寄存器PERIPHCTRL30[pcie0_app_ltssm_enabl]写入0 关闭PCIe0 控制

器。

通过向系统控制寄存器PERIPHCTRL77[pcie1_app_ltssm_enabl]写入0 关闭PCIe1 控制

器。

2. 使能PCIe 控制器相关的时钟:

设置CRG 寄存器PERI_CRG30[pcie0_cken]使能PCIe0 控制器时钟。

设置CRG 寄存器PERI_CRG30[pcie1_cken]使能PCIe1 控制器时钟。

3. 设置PCIe 控制器的工作模式(RC 模式/EP 模式):

通过系统控制寄存器中的PERIPHCTRL23[pcie0_slv_device_type]寄存器设置PCIe0 控

制器的工作模式。通过系统控制寄存器中的PERIPHCTRL70[pcie1_slv_device_type]寄存器设置PCIe1 控

制器的工作模式。

4. 设置PCIe 控制器软复位以复位PCIe 控制器。

向CRG 寄存器PERI_CRG30[pcie0_srst_req]写1 以复位PCIe0 控制器。

向CRG 寄存器PERI_CRG30[pcie1_srst_req]写1 以复位PCIe1 控制器。

5. 撤销PCIe 控制器软复位。

向CRG 寄存器PERI_CRG30[pcie0_srst_req]写0 以撤销PCIe0 控制器复位。

向CRG 寄存器PERI_CRG30[pcie1_srst_req]写0 以撤销PCIe1 控制器复位。

6. 设置PCIe 控制器的类代码:

当工作在RC 模式时,需要配置对应的控制器的类代码寄存器(CLASS Code

Register)为0x060400(对应为PCI 到PCI 桥设备)。PCIe0 控制器和PCIe1 控制器的

类代码寄存器位于各自的PCIe 配置寄存器空间内。

EP 模式下无需设置(默认值)。

7. 使能PCIe 控制器:

通过向系统控制寄存器PERIPHCTRL30[pcie0_app_ltssm_enable]写入1 使能PCIe0 控制

器。PCIe0 控制器使能后,PCIe0 控制器开始链路建立过程。

通过向系统控制寄存器PERIPHCTRL77[pcie1_app_ltssm_enable]写入1 使能PCIe1 控制

器。PCIe1 控制器使能后,PCIe1 控制器开始链路建立过程。

----结束

若PCIe 控制器与对端设备之间的连接未建立,不可向对端设备发起任何PCIe 事务。

软件通过查询系统控制寄存器PERICTRL39[pcie0_rdlh_link_up]可以确定PCIe0 控制器

是否已与对端设备建立连接。

软件通过查询系统控制寄存器PERICTRL40[pcie1_rdlh_link_up]可以确定PCIe1 控制器

是否已与对端设备建立连接。

请参考系统控制器中关于PERICTRL39 和PERICTRL40 寄存器的定义

hi3531的pcie控制器使能的更多相关文章

  1. hi3531的pcie atu资源重映射

    1. 设置ATU 区域号寄存器为需要配置的地址转换区编号. 2. 设置ATU Region Lower Base Address Register 和ATU Region Upper Base Add ...

  2. HI3531由DMA 发起PCIe 事务

    Hi3531 PCIe 控制器内含DMA 控制器,DMA 控制器包含有两个DMA 通道(一个 DMA 读通道和一个DMA 写通道).PCIe 控制器内包含的DMA 控制器用于大数据量 的存储器读写事务 ...

  3. 转载 大话pcie

    原文https://blog.csdn.net/abcamus/article/details/76167747 一.PCIe DMA机制 PCIe控制器也提供DMA(Direct Memory ac ...

  4. PCIE手札

    PCIE兼容了大部分PCI总线的特性,区别在于使用串行差分总线代替了并行总线,并实现了协议分层.PCIE的带宽与LANE数量和时钟频率相关,时钟频率支持2.5G和5G,Lane支持x1/x2/x4/x ...

  5. PCIE 调试过程记录

    遇到的问题 PCIE link不稳定 配置空间读写正常,Memory mapping空间读写异常 缘由 之前对PCIE的认识一直停留在概念的阶段,只知道是一个高速通讯协议,主要用于板内.板间的高速BU ...

  6. (转)科普:SATA、PCIe、AHCI、NVMe

    原文链接:https://forum.51nb.com/thread-1670848-1-1.html IT 界总喜欢发明新名词.而且同一个东西,可能有几个不同的名字.同一个名字,又可能指不同的东西. ...

  7. 带你认识SATA、mSATA 、PCIe和M.2四种接口

    http://mst.zol.com.cn/615/6150989.html 犹记得当年Windows7系统体验指数中,那5.9分磁盘分数,在其余四项的7.9分面前,似乎已经告诉我们机械硬盘注定被时代 ...

  8. Nand Flash 控制器工作原理

    对 Nand Flash 存储芯片进行操作, 必须通过 Nand Flash 控制器的专用寄存器才能完成.所以,不能对 Nand Flash 进行总线操作.而 Nand Flash 的写操作也必须块方 ...

  9. Marvell 88SE9215 AHCI驱动笔记

    禁止转载!禁止转载!禁止转载! 一.Marvell 88SE9215.AHCI与SATA简介 1.Marvell 88SE9215 1)概述 88SE9215是一个四端口,兼容3 Gbps和6 Gbp ...

随机推荐

  1. Hadoop学习笔记一

    云帆大数据视频学习笔记,记录如下. 一.主机名设置的规范 /etc/hosts文件中添加如下的记录: 192.168.1.128 hadoop-yarn.cloudyhadoop.com had-ya ...

  2. BZOJ 3173: [Tjoi2013]最长上升子序列 [splay DP]

    3173: [Tjoi2013]最长上升子序列 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1613  Solved: 839[Submit][St ...

  3. Vs Code JavaScript开发插件推荐

    1 vscode-icons 使用效果 安装好后如何设置? Ctrl+Shift+P 然后输入theme 2 document this 如何使用? 在方法或者要注释的地方上 按 快捷键 Ctrl + ...

  4. nginx隐藏版本号

    在实际运用nginx中我们最好将我们的版本号直接隐藏,因为有些版本号的nginx被爆出了漏洞,所以我们为了安全起见,最好将我们的版本号隐藏. 1.对于未安装的nginx我们使用源码编译安装才可以将版本 ...

  5. mystricpy的实现???

    #include<iostream>using namespace std;char* mystrcpy(char* dest,const char* src){char* temp=de ...

  6. htmlUtil 网页爬取工具

    Htmlunit是一款模拟浏览抓取页面内容的Java框架,具有js解析引擎(rhino),可以解析页面的js脚本,得到完整的页面内容,特殊适合于这种非完整页面的站点抓取 /** * 获取页面的TITL ...

  7. Linux下配置SNAT上网

    局域网有一台主机A,没有公网的IP, 也就是没有办法直接连到互联网上下载东西,同时内网有另外一台主机B,有公网接入.这个时候为了让A连接到互联网,我把B设置成NAT主机,A的网关指向B.准确的来说,现 ...

  8. Python:main函数

    什么是函数? 一个程序可以包含多个模块,程序越复杂,包含的模块和功能就越多,模块细分里面包含多个类,类这个概念在任何一门面向对象语言里面都很重要,在类里面最主要的就是包含的函数,函数式实现某一个功能的 ...

  9. CodeForces 820C

    题意略. 这道题目的出题者竟然被hack了!? 我的思路是:在游戏开始时,为了尽量少地用字母,我应该尽量选取计算机输出的前a个字母中已经使用过的字母.但是为了使电脑也尽量少用字母,我添加的这b个字母应 ...

  10. Python学习/复习神器-->各种方法/技巧在哪用和典型例子(一)

    就我个人在学习Python的过程中,经常会出现学习了新方法后,如果隔上几天不用,就忘了的情况,或者刚学习的更好的方法没有得到应用,还是沿用已有的方法,这样很不利于学习和掌握新姿势,从而拉长学习时间,增 ...