本发明专利技术提供了一种龙芯CPU主板bios的实现方法,将龙芯CPU与北桥芯片进行地址映射转换;将DMA设备地址进行映射转换;对PCI地址空间进行配置;以及将coreboot与pmon融合成新bios后,调试;以及,调试内核中断系统。通过本发明专利技术提供的方法,解决了在BIOS层龙芯CPU和AMD桥片之间的地址映射转换问题,PMON中DMA设备寻址问题,龙芯刀片PCI配置空间读写问题以及从coreboot到pmon移植和调试的问题。而且龙芯主板外部设备的中断处理方式,保证了龙芯主板上外部设备正常工作。
【技术实现步骤摘要】
本专利技术涉及主板bios及中断的实现,具体地说,提供了一种龙芯CPU主板bios以及中断的实现方法。
技术介绍
龙芯3号系列CPU包括4核心3A,8核心3B,16核心3C的CPU,以及后续开发的其他系列的CPU。龙芯3号CPU是一款通用的多核的CPU,采用MIPS架构,完全可以实现Intel和 AMD X86架构CPU的功能,而且在节能、安全等方面有独特的优势,尽管在性能方面比X86 CPU还稍微落后一些,但在绝大部分领域可以完全代替X86 CPU。尽管龙芯3A和;3B CPU已经面世,但一直没有解决“用”的关键问题,即一直没有找到与龙芯CPU配套且能正常工作的南北桥chipsets和外围设备,就像一个人有了大脑, 但无法找到配合大脑的躯体和四肢,仍是一个不能实用只是概念意义的CPU。为解决龙芯CPU的实用问题,曾经探讨了 “龙芯3 CPU+SIS公司chipsets”,“龙芯 3 CPU+nVIDIA公司chipsets”的可能性,并研发了主板样品,但最终没有成功。目前采用“龙芯3 CPU+AMD公司北桥RS780E+AMD公司南桥SB710”方案,取得了成功,并最终实现了产品化。如图1所示。但是在主板成型之后,如何能够使主板运行,就需要软件方面的支持,这包括 BIOS、内核等的支持。PMON是一个兼有BIOS和boot loader部分功能的开放源码软件,支持MIPS、ARM、 PowerPC等架构,多用于嵌入式系统。Coreboot是一个自由开源软件项目,它的目的是替代现有计算机上面传统的bios,主要支持x86平台。在内核方面,龙芯的中断系统与X86完全不一样。龙芯的中断系统采用异常处理表而不是X86的IDT表(中断描述符表),采用设备的中断控制器来控制中断而不支持 APIC ;而AMD桥片支持的都是X86平台。因此在内核方面如何与龙芯CPU进行配合是个问题。
技术实现思路
为了得到一种在龙芯主板上可以运行的bios以及Iinux内核,解决地址映射、PCI 配置空间读写以及中断分配等问题,本专利技术提供了一种龙芯CPU主板bios及中断系统的实现方法。一种龙芯CPU主板bios以及中断的实现方法,步骤如下将龙芯CPU与北桥芯片进行地址映射转换;将DMA设备地址进行映射转换;对PCI地址空间进行配置;以及将coreboot与pmon融合成新bios后,调试;以及,调试内核中断系统。优选的,所述地址映射转换过程为先将龙芯CPU物理地址空间映射到HT总线地址空间,再将HT总线地址空间映射到PCI地址空间。再优选的,所述龙芯CPU物理地址空间映射到HT总线地址空间是通过一级 crossbar实现的。再优选的,所述龙芯CPU物理地址空间映射时只映射48位地址空间。再优选的,所述HT总线地址空间映射到PCI地址空间是通过HT to PCIbridge实现。优选的,所述DMA设备地址映射转换是通过修改北桥芯片内与DMA寻址相关的寄存器初值实现。再优选的,所述寄存器可以进行8位,16位和32位读写操作。优选的,所述bios是将PMON的CPU、内存和串口的调试部分与coreboot的南北桥控制器和设备的初始化部分融合。优选的,所述bios调试时在初始化南桥后,PCI扫描前,关闭掉所有可能影响调试的设备控制器。优选的,所述内核中断系统是通过将龙芯CPU的中断控制器与8259A控制器级联, 来响应和控制南北桥外部设备的中断请求。优选的,所述中断系统采用异常处理表来对中断分类。优选的,采用中断控制器处理中断。再优选的,所述中断系统采用南桥8259A控制器与龙芯3A CPU的中断控制器相配合,来实现外部设备中断的响应。再优选的,龙芯3A主板通过配置南桥设备的中断阵脚、中断线路和触发方式,来分配南桥设备的中断号。通过本专利技术提供的方法,解决了在BIOS层龙芯CPU和AMD桥片之间的地址映射转换问题,PMON中DMA设备寻址问题,龙芯刀片PCI配置空间读写问题以及从coreboot到 pmon移植和调试的问题。而且龙芯主板外部设备的中断处理方式,保证了龙芯主板上外部设备正常工作。附图说明图1是曙光公司的龙芯主板CB50-A图2是AMD桥片设备的地址范围图3是龙芯刀片分层的物理地址结构图4是龙芯3A物理地址映射图图5是PCI兼容配置模式图6是MIPS架构下地址格式图7是龙芯bios运行流程图图8是CPU中断结构示意图图9龙芯3A主板外部中断响应过程具体实施例方式一、龙芯CPU与北桥地址映射的转换在x86平台中,系统的地址分为物理地址、总线地址和虚拟地址。Linux中,进程的 4GB(虚拟)内存分为用户空间、内核空间。用户空间分布为0 3GB(即PAGE_0FFSET,在 0X86中它等于OxCOOOOOOO),剩下的IG为内核空间。程序员只能使用虚拟地址。系统中每个进程有各自的私有用户空间(0 3G),这个空间对系统中的其他进程是不可见的。CPU发出取指令请求时的地址是当前上下文的虚拟地址,MMU再从页表中找到这个虚拟地址的物理地址,完成取指。而且x86平台使用了名为内存映射(MMIO)的技术,该技术是PCI规范的一部分,10设备端口被映射到内存空间,映射后,CPU访问10端口就如同访问内存一样。 图2是coreboot中AMD桥片的几个设备的MEM映射地址,‘h’表示十六进制。龙芯CPU是MIPS架构的CPU,与x86 CPU的地址分配和寻址方式有所不同。龙芯 3A采用48位的物理地址空间,47 44位区分标示16个节点,44 0为每个节点的内部地址;龙芯刀片服务器是由两个节点组成的CC-NUMA的架构,整个系统的地址空间可分为4 个层次,即物理地址区间、节点内一二级crossbar路由的地址空间、HT的地址空间、PCI的地址空间。下一层次是上一层的一个子区间,见图3所示。系统中必须有一个nodejd为0的主节点,负责系统的启动,龙芯刀片服务器另一个节点的node_id由硬件跳线设置为01,因此整个系统的物理地址空间范围为 Wx0000_0000_0000 0x2000_0000_0000],其中为节点 0 的物理地址范围,为节点01的物理地址范围。在南北桥芯片上连接的设备都是PCI设备。PCI系统有4GB的memory空间和64K 的10空间,CPU要访问PCI设备的配置空间、memory空间、和10空间需要经过一系列的转换过程即48位的CPU地址空间一40位的HT地址空间一PCI的地址空间。如图4所示。1. CPU的物理地址空间到HT地址空间的转换龙芯3A把CPU物理地址空间映射到HT 的40位地址空间,这种映射是通过一级crossbar 的地址路由窗口或者一级crossbar的默认设置实现的。因为HT只有40位的地址空间对多余的位不予考虑。2. HT地址空间到PCI地址空间的转换HT 40位地址空间的到PCI地址空间的映射是通过HT to PCI bridge实现的,这是硬件保证的不需要软件做任何配置。映射后PCI设备的起始MEM地址为0x10000000,10 起始地址为0x18000000。这个地址在PMON程序中作为PCI的MEM BASE或者10 BASE。而对于每个PCI设备,PMON通过建立了一个本文档来自技高网...
【技术保护点】
1.一种龙芯CPU主板bios以及中断的实现方法,其特征在于:步骤如下:将龙芯CPU与北桥芯片进行地址映射转换;将DMA设备地址进行映射转换;对PCI地址空间进行配置;以及将coreboot与pmon融合成新bios后,调试;以及,调试内核中断系统。
【技术特征摘要】
1.一种龙芯CPU主板bios以及中断的实现方法,其特征在于步骤如下 将龙芯CPU与北桥芯片进行地址映射转换;将DMA设备地址进行映射转换; 对PCI地址空间进行配置;以及将coreboot与pmon融合成新bios后,调试;以及, 调试内核中断系统。2.如权利要求1所述的方法,其特征在于所述地址映射转换过程为先将龙芯CPU物理地址空间映射到HT总线地址空间,再将HT总线地址空间映射到PCI地址空间。3.如权利要求2所述的方法,其特征在于所述龙芯CPU物理地址空间映射到HT总线地址空间是通过一级crossbar实现的。4.如权利要求3所述的方法,其特征在于所述龙芯CPU物理地址空间映射时只映射 48位地址空间。5.如权利要求2所述的方法,其特征在于所述HT总线地址空间映射到PCI地址空间是通过HT to PCI bridge实现。6.如权利要求1所述的方法,其特征在于所述DMA设备地址映射转换是通过修改北桥芯片内与DMA寻址相关的寄存器初值实现。7.如权利要求6所述的方法,...
【专利技术属性】
技术研发人员:邵宗有,刘新春,杨晓君,尹宁宁,郑臣明,李永成,李丰旺,
申请(专利权)人:曙光信息产业股份有限公司,
类型:发明
国别省市:12
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。