国产处理器龙芯地址空间详解

原创程序猿的未来人生2020-06-13 09:04:07

MIPS基本逻辑地址空间

MIPS64架构下包含一个64位地址空间和一个32位地址空间,32位地址空间是64位地址空间的子集。32位地址空间被分成四段,即常说的kuseg,kseg0~2如下图。其64位地址空间可被分割成更多的段。

kuseg:0x0000 0000-0x7FFF FFFF(低端2G) :用户太可用地址,必须通过MMU进行地址映射后才能正常访问。

kseg0:0x8000 0000 - 0x9FFF FFFF(512M):最高位清零就是对应的物理地址,映射到连续的低端512M物理地址。该地址空间通过高速缓存存取,主要用来存放操作系统核心。

kseg1:0xA000 0000 - 0xBFFF FFFF(512M):高3位清零就是对应的物理地址,映射到连续的低端512M物理地址。该地址空间不通过高速缓存存取,该区域主要用做I/O寄存器,系统ROM和启动时入口向量(0xBFC00000)就存于这个地址段内,因为系统启动时cache还未进行初始化。

kseg1:0xC000 0000 - 0xFFFF FFFF (1G):该地址段只能在核心态使用,并且需要经过MMU转换。

龙芯物理地址空间规范

龙芯物理地址空间设计的规则约定如下:

  • 0x0000_0000~0x0FFF_FFFF 的低 256MB 空间为低端内存空间。 其中0x000 0000~0x001F FFFF为兼容老版本固件保留的2M地址空间;0x0F00_0000~0x0FFF_FFFF 是为固件PMON保留的 16M 地址空间,用于与内核的信息交互,如固件传参、关机和重启功能、Smbios、 Vbios 等。

  • 0x1000_0000~0x1FFF_FFFF 为 PCI 等 IO 设备空间及部分芯片配置寄存器空间;
  • 0x3000_0000~0x3FFF_FFFF 为窗口配置寄存器的空间范围;
  • 0x4000_0000~0x7FFF_FFFF 为 PCI 设备 memory 空间范围;
  • 0x2000_0000~0x2FFF_FFFF 和 0x8000_0000~高端内存基址-0x0000_0001 为保留空洞;
  • 高端内存基址缺省值为 0x9000_0000。

System RAM地址范围如下图:

龙芯DMA 地址映射规范

编写驱动时涉及设置DMA地址,龙芯不同芯片的DMA地址设置不同,需要特别注意,否则驱动可能无法正常运行。其相关DMA地址设置方法如下:

  • 7A 作为桥片时 DMA 地址与内存物理地址的对应关系为 1:1 映射:即 dmaaddr = phyaddr

  • 2H 作为桥片时 DMA 地址与内存物理地址的对应关系分为两种情况: 内存地址为低 256M 时与 DMA 地址关系为 1:1 映射; 内存地址大于 256M 时与 DMA 的映射关系为 dmaaddr = phyaddr - 0x80000000。

  • 780e 作为桥片时 DMA 地址与内存物理地址的对应关系分为两种情况: 内存地址在低 256M 映射关系为 dmaaddr=phyaddr | 0x80000000; 内存地址大于 256M 的部分为 1:1 映射。

-------------------------------------------------------------------------------------------------------------------------------------------------

总结:龙芯2k物理地址空间为

0-0xFFFFFFF (0-256M)

0x90000000-0xFFFFFFFF(256M-2G)

虚拟地址空间:

kuseg:0x0000 0000-0x7FFF FFFF(低端2G) :用户太可用地址,必须通过MMU进行地址映射后才能正常访问。

kseg0:0x8000 0000 - 0x9FFF FFFF(512M):最高位清零就是对应的物理地址,映射到连续的低端512M物理地址。该地址空间通过高速缓存存取,主要用来存放操作系统核心。由于物理地址不连续所以,虚拟地址(0x80000000~0x80000000+256M)==>对应物理地址0-0xFFFFFFF (0-256M,即低端256M)  虚拟地址(0x90000000~0x90000000+256M)=====>对应物理地址(0x90000000~0x90000000+256M),pmon起来后由于256M-512M是寄存器空间,所以只能使用低端256M物理内存

kseg1:0xA000 0000 - 0xBFFF FFFF(512M):高3位清零就是对应的物理地址,映射到连续的低端512M物理地址。该地址空间不通过高速缓存存取,该区域主要用做I/O寄存器,系统ROM和启动时入口向量(0xBFC00000)就存于这个地址段内,因为系统启动时cache还未进行初始化。

kseg1:0xC000 0000 - 0xFFFF FFFF (1G):该地址段只能在核心态使用,并且需要经过MMU转换

国产处理器龙芯地址空间详解相关推荐

  1. 龙芯2h芯片不能进入pmon_国产处理器龙芯地址空间详解

    MIPS基本逻辑地址空间 MIPS64架构下包含一个64位地址空间和一个32位地址空间,32位地址空间是64位地址空间的子集.32位地址空间被分成四段,即常说的kuseg,kseg0~2如下图.其64 ...

  2. 阿里云服务器采用AMD CPU处理器ECS实例规格详解

    阿里云服务器有AMD CPU处理器,阿里云服务器ECS通用型g7a.计算型c7a和内存型r7a采用2.55 GHz主频的AMD EPYCTM MILAN处理器,单核睿频最高3.5 GHz:通用型g6a ...

  3. 澳禁止华为参与5G网络建设;锤子将编写自己的OS;国产处理器兆芯可运行Windows,已试制出Intel i5级处理器丨Q新闻...

    编辑 | 小智 本周要闻:澳大利亚禁止华为参与 5G 网络建设:罗永浩自掏腰包为开源社区捐款,并表示锤子将自己编写 OS:亚马逊云计算大降价,服务器价格砍掉一半:Deepin 15.7 发布:金色财经 ...

  4. 龙芯php,龙芯平台硬解1080和4k视频

    环境 操作系统:Fedora 28 适用架构:MIPS64EL 显卡 首先,要有一块amd的独立显卡(集成显卡比较弱).龙芯支持的具体型号请参考官方链接. 龙芯3.10内核对比社区4.4版本对GPU驱 ...

  5. 银河系列超级计算机处理器,龙芯到底算什么CPU,通用还是专用?中国的“银河”系列超级计算机用的不是自己的CPU吗(不是说龙芯)...

    满意答案 4772三国志5 推荐于 2017.11.25 采纳率:45%    等级:12 已帮助:5465人 楼主,你好,我想告诉你,就cpu自身而言,没有通用和专用之说,只要你有回途径搞到,并且能 ...

  6. CPU处理器一致性协议MESI详解

    CPU处理器缓存一致性协议MESI详解 缓存一致性的由来 MESI协议简介 Exclusive状态 Shared状态 Modified和Invalid状态 MESI状态切换 Modified状态跳转 ...

  7. 国产软硬件龙芯系列迅为2K1000开发板配置 nand flash

    开发板使用手册 让研发速度快上加快 更新包含了开发环境搭建.系统编译与烧写和pmon基础知识.启动流程分析.网络加载系统.烧写系统到nand以及新增pmon 移植教程.新增pmon下操作GPIO章节和 ...

  8. 国产处理器兆芯可运行Windows,已试制出Intel i5级处理器

    上海兆芯处理器的整体性能已经能够对标国际主流标准,以 ZX-C 系列 CPU 及 KX-5000 为例,已经可以对标 Intel 第六代 i3 处理器,主机频率可以达到 2GHz,对于日常办公应用.4 ...

  9. 国产处理器瑞芯微RK3568对比RK3399性能解析-迅为开发板

    迅为iTOP-RK3568开发板 iTOP-RK3568开发板采用瑞芯微RK3568处理器,22nm工艺制程,集成4核A55架构处理器和Mali G52 2EE图形处理器,接口丰富,支持4K解码和10 ...

最新文章

  1. redis sentinel集群配置及haproxy配置
  2. 为你的水晶报表装载本地图片
  3. latex箭头表示符号
  4. Concurrent集合 Atomic类
  5. 计算机毕业设计制作模仿网站的期末作业通过神器——各种扒站方法(网站,软件)
  6. 谷歌 recaptcha_在Spring Boot应用程序中使用Google reCaptcha
  7. python 内置方法 BUILT-IN METHODS
  8. python新式类c3算法_python中的MRO和C3算法
  9. padding不显示背景色_PS常用快捷键有哪些?小白职场必备快捷键,再也不担心被难到...
  10. FFmpeg系列(二)-Android项目引入FFmpeg库播放视频
  11. c# 存储图片到oracle,c# winform 读取oracle中blob字段的图片并且显示到pictureBox里 保存进库...
  12. Synchronized方法锁、对象锁、类锁区别
  13. java springmvc是什么意思_springmvc的简单理解与使用
  14. vscode如何调整字体大小
  15. 逻辑函数的化简-代数法化简
  16. CrossApp推出移动应用开发神器 CrossApp Style
  17. Vue家谱视图结构- vue-tree-chart
  18. 【深度学习环境搭建<三>】Ubuntu 中Anaconda + Pycharm 开发环境安装
  19. 概率论中PDF、PMF和CDF的区别与联系
  20. python爬取公众号文章数据库,爬取微信公众号所有文章的请教

热门文章

  1. CentOS 6.4 搭建 Java 开发环境详解
  2. 水准路线平差c语言程序,水准网平差程序的设计与实现
  3. texstudio 使用方法_Texstudio使用技巧——基于个人
  4. 基于matlab活体检测,人脸识别中活体检测算法综述.PDF
  5. [跑步] 如何锻炼脚踝
  6. 明年春天见!罗永浩发声:还完债当天就重返科技行业
  7. Unity3D游戏开发之网络游戏服务器架构设计(如何做一名主程)
  8. 关于案例式C语言上机指导与习题解答中实验4_15题的解答
  9. 15.React-router6的编程式导航
  10. 微信公众号支付和移动支付