龙芯2E及其福珑盒子主板的地址空间
来源:互联网 发布:xmonad linux 编辑:程序博客网 时间:2024/04/30 07:45
龙芯2E福珑盒子的配置如下:
龙芯2E使用的显示芯片为 Radeon 7000。
龙芯CPU的虚拟地址空间为:
0x0000 0000 ~ 0x7FFF FFFF2Gkuseg32-bits user space0x8000 0000 ~ 0x9FFF FFFF512Mkseg0unmapped cached space0xA000 0000 ~ 0xBFFF FFFF512Mkseg1unmapped uncached space0xC000 0000 ~ 0xFFFF FFFF1Gkseg2mapped space系统从以下地址开始执行:
Virtual Address == 0xBFC0 0000Physical Address == 0x1FC0 0000启动期间,硬件从ROM中读取指令(PMON是烧在ROM中的),使用寄存器交换数据,不使用cache和RAM交换数据;
PMON中的start.S中的一段代码把自己从ROM中拷贝到RAM,然后再跳转到0x8000 0000,即kseg0开始处执行,这里开始使用cache和RAM;
PMON代码中的 _start 符号是在编译时分配的,其值为 0x8010 0000(还是 0x8000 0000?待考察),
龙芯对RAM,ROM,IO寄存器及外部RAM进行统一编址,除了DDR内存外,其它的地址都是经过北桥连接并翻译的,具体情况如下:
龙芯2E 的物理地址空间分为两部分,一部分是DDR内存空间,地址为 0 ~ 0x0FFF FFFF(0~256M) 及 0x2000 0000 以上(512M~?)。另一部分为 0x1000 0000 ~ 0x1FFF FFFF(256M~512M),这部分地址为Bonito北桥所占用。即只要是CPU发出的寻址地址在这之间的,就会被Bonito北桥所吸收,并在北桥所管辖的范围内查找。北桥所管辖的这256M空间又细分为如下各部分:
其中,标有颜色的部分是我们常常打交道的。现在我们的龙芯电脑上有256M的内存,因此0~256M这一块物理地址肯定有对应的实体,但是256M~512M这一块物理地址不一定有对应的实体,这一部分地址是被北桥所接收了,后面的部分由北桥进行处理,北桥会判断外部某些设备是没有接入,如果没接入,则它不会为那个设备分配IO寄存器及数据存储空间。
PCI自己内部也有一套地址空间(32位和64位都行),它和CPU的地址空间里面就存在某个映射关系。
当设备进行DMA时,还有一套将PCI地址转换成CPU地址的机制。这就要用于北桥中的Base Address Registers,北桥中一共有3个这样的寄存器,分别为 PCIBASE0, PCIBASE1, PCIBASE2。PCIBASE0, PCIBASE1 都可以映射多达 256M 的空间。具体映射的大小还取决于 PCIMEMBASECFG 的设置。PCIBASE2 用于映射 Bonito 的内部寄存器,映射区间为 64k 大小。
通常我们只使用了 PCIBASE0,代码中PCIMEMBASECFG的值使它可以映射256M的内存,它在代码中被赋值为 PCI_LOCAL_MEM_PCI_BASE(被定义为 0x8000 0000)。因此,当 PCI设备访问地址在 0x8000.0000~0x8FFF.FFFF 时这个地址会先减掉 0x8000 0000 变成要访问的内存地址 ,然后对内存进行操作(读或写)。此时,北桥充当了一个译码器的角色。
此块龙芯主板使用的显卡是 Radeon 7000,它在PCI扫描映射后的物理内存地址(即Framebuffer地址)是
0x1400 0000 ~ 0x15FF FFFF
共32M
- 龙芯2E及其福珑盒子主板的地址空间
- 福珑2E主板结构
- css3盒子布局-定义盒子的弹性空间(box-flex)
- E - 盒子游戏
- 进程的地址空间
- Linux的地址空间
- S3C2440的地址空间
- 进程的地址空间
- 进程的地址空间
- 地址空间的认知
- 进程的地址空间
- 进程的地址空间
- 进程地址空间[2]
- 进程地址空间2
- Js中的盒子模型及其几个常用的属性
- css3盒子布局--管理盒子的空间(box-pack和box-align)
- 盒子模型 元素的定位 z-index空间位置
- 内存虚拟地址空间的划分空间
- javascript跨域问题
- RMI 规范
- vim 正则表达式获取双引号中的字符
- 大白话系列之C#委托与事件讲解(一)
- 大白话系列之C#委托与事件讲解(二)
- 龙芯2E及其福珑盒子主板的地址空间
- opendpi手册(读书笔记)
- js控制窗口
- C#如何判断文件处于打开状态
- JS控制文本框textarea输入字数限制
- 任务队列
- nginx配置文件
- 网络抓包终结迅雷!
- 可怕的人兽杂交~揭秘人兽杂交怪物