hi3531的pcie控制器使能
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控制器使能的更多相关文章
- hi3531的pcie atu资源重映射
1. 设置ATU 区域号寄存器为需要配置的地址转换区编号. 2. 设置ATU Region Lower Base Address Register 和ATU Region Upper Base Add ...
- HI3531由DMA 发起PCIe 事务
Hi3531 PCIe 控制器内含DMA 控制器,DMA 控制器包含有两个DMA 通道(一个 DMA 读通道和一个DMA 写通道).PCIe 控制器内包含的DMA 控制器用于大数据量 的存储器读写事务 ...
- 转载 大话pcie
原文https://blog.csdn.net/abcamus/article/details/76167747 一.PCIe DMA机制 PCIe控制器也提供DMA(Direct Memory ac ...
- PCIE手札
PCIE兼容了大部分PCI总线的特性,区别在于使用串行差分总线代替了并行总线,并实现了协议分层.PCIE的带宽与LANE数量和时钟频率相关,时钟频率支持2.5G和5G,Lane支持x1/x2/x4/x ...
- PCIE 调试过程记录
遇到的问题 PCIE link不稳定 配置空间读写正常,Memory mapping空间读写异常 缘由 之前对PCIE的认识一直停留在概念的阶段,只知道是一个高速通讯协议,主要用于板内.板间的高速BU ...
- (转)科普:SATA、PCIe、AHCI、NVMe
原文链接:https://forum.51nb.com/thread-1670848-1-1.html IT 界总喜欢发明新名词.而且同一个东西,可能有几个不同的名字.同一个名字,又可能指不同的东西. ...
- 带你认识SATA、mSATA 、PCIe和M.2四种接口
http://mst.zol.com.cn/615/6150989.html 犹记得当年Windows7系统体验指数中,那5.9分磁盘分数,在其余四项的7.9分面前,似乎已经告诉我们机械硬盘注定被时代 ...
- Nand Flash 控制器工作原理
对 Nand Flash 存储芯片进行操作, 必须通过 Nand Flash 控制器的专用寄存器才能完成.所以,不能对 Nand Flash 进行总线操作.而 Nand Flash 的写操作也必须块方 ...
- Marvell 88SE9215 AHCI驱动笔记
禁止转载!禁止转载!禁止转载! 一.Marvell 88SE9215.AHCI与SATA简介 1.Marvell 88SE9215 1)概述 88SE9215是一个四端口,兼容3 Gbps和6 Gbp ...
随机推荐
- 自己收集的工作js库---2018-02-07
今年工作进度到这里结束,整理一下今年收集的自用js库,后期会更新,代码已贴github=>https://github.com/lpg-kobe/personal-github /** * @p ...
- 分享我自己的一个最小化安装CentOS6的初始化脚本
在自己的虚拟机上使用的基于CentOS6的系统初始化脚本 #!/bin/bash # #Filename:system_init.sh #Description:系统安装完成后,对系统进行一些配置,以 ...
- Ubuntu14.04 命令行下安装teamviewer
下载teamviewer 链接:https://pan.baidu.com/s/1hs0BppM 密码:sdmk 上传到 /home/[user] cd /home/[user] 移动安装包到 /o ...
- c语言中的#ifdef和#ifndef
#include "stdio.h"#include "conio.h"#define MAX#define MAXIMUM(x,y) (x>y)?x:y ...
- Selenium_WebDriver_定位元素
版权声明:本文为博主原创文章,转载请注明出处. 定位单个元素 WebDriver提供了八种元素定位方法,Java中定位语句形如:driver.findElement(By.id()): 何为元素定位? ...
- python数据分析工具包(1)——Numpy(一)
在本科阶段,我们常用的科学计算工具是MATLAB.下面介绍python的一个非常好用而且功能强大的科学计算库--Numpy. a powerful N-dimensional array object ...
- smallcorgi/Faster-RCNN_TF训练自己的数据
熟悉了github项目提供的训练测试后,可以来训练自己的数据了.本文只介绍改动最少的方法,只训练2个类, 即自己添加的类(如person)和 background,使用的数据格式为pascal_voc ...
- 超级简便的容器化部署工具(使用 ASP.NET Core 演示)
Docker 改变了我们部署网站的方式,从原先的手动编译打包上传,到现在的构建镜像然后推送部署,让我们在配置环境上所花费的时间大大减少了.不仅如此,通过一系列相关的工具配合,可以很轻松的实现 CI.C ...
- Java线程池ThreadPoolExector的源码分析
前言:线程是我们在学习java过程中非常重要的也是绕不开的一个知识点,它的重要程度可以说是java的核心之一,线程具有不可轻视的作用,对于我们提高程序的运行效率.压榨CPU处理能力.多条线路同时运行等 ...
- .NET Core UI框架Avalonia
.NET Core UI框架Avalonia,Avalonia是一个基于WPF XAML的跨平台UI框架,并支持多种操作系统:Windows(.NET Framework,.NET Core),Lin ...