CN100501638C - 一种奔腾ii处理器系统的引导方法 - Google Patents
一种奔腾ii处理器系统的引导方法 Download PDFInfo
- Publication number
- CN100501638C CN100501638C CNB200310112020XA CN200310112020A CN100501638C CN 100501638 C CN100501638 C CN 100501638C CN B200310112020X A CNB200310112020X A CN B200310112020XA CN 200310112020 A CN200310112020 A CN 200310112020A CN 100501638 C CN100501638 C CN 100501638C
- Authority
- CN
- China
- Prior art keywords
- memory
- character
- register
- input
- byte
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000015654 memory Effects 0.000 claims abstract description 117
- 238000001514 detection method Methods 0.000 claims abstract description 38
- 230000006870 function Effects 0.000 claims abstract description 26
- 238000012545 processing Methods 0.000 claims abstract description 9
- 238000012544 monitoring process Methods 0.000 claims description 20
- 230000002146 bilateral effect Effects 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000012360 testing method Methods 0.000 claims description 6
- 238000007689 inspection Methods 0.000 claims description 3
- 235000005282 vitamin D3 Nutrition 0.000 claims description 3
- 239000011647 vitamin D3 Substances 0.000 claims description 3
- YTAHJIFKAKIKAV-XNMGPUDCSA-N [(1R)-3-morpholin-4-yl-1-phenylpropyl] N-[(3S)-2-oxo-5-phenyl-1,3-dihydro-1,4-benzodiazepin-3-yl]carbamate Chemical compound O=C1[C@H](N=C(C2=C(N1)C=CC=C2)C1=CC=CC=C1)NC(O[C@H](CCN1CCOCC1)C1=CC=CC=C1)=O YTAHJIFKAKIKAV-XNMGPUDCSA-N 0.000 claims description 2
- 238000012937 correction Methods 0.000 claims description 2
- 230000004044 response Effects 0.000 claims description 2
- 238000004458 analytical method Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 206010025482 malaise Diseases 0.000 description 1
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种奔腾II处理器系统的引导方法,该方法提供处理器初始化、内存检测和配置、串口驱动、保护模式运行等功能,引导奔腾II处理器系统到正常工作的状态,提供简单命令行处理功能,可以访问全部的内存资源,克服了普通BIOS只能在实模式下运行的缺点,可以方便地扩展各种新的功能,去掉了普通BIOS的许多不必要的功能,使得所需的程序空间远小于普通BIOS;非常适宜于嵌入式系统的各种应用。
Description
技术领域
本发明涉及一种奔腾II处理器系统的引导方法,尤其涉及应用于嵌入式系统的奔腾II处理器系统的引导方法。
背景技术
奔腾II处理器是广泛应用于个人计算机和服务器等大型计算设备的高性能处理器,通过和外围的北桥芯片和南桥芯片的配合,就构成了完整的处理器系统。和同等级性能的嵌入式专用处理器系统相比,使用奔腾II处理器系统在价格上便宜很多,具有很好的性价比,应用前景广阔。
在个人计算机和服务器中,处理器系统的启动都是使用主板自带的BIOS(基本输入输出系统)。但是,对于嵌入式系统,普通主板的BIOS有如下的缺点:
1.普通主板的BIOS过于庞大,有很多功能是不必要的,比如,通常主板BIOS会提供修改BIOS配置的简单用户界面,监测键盘、鼠标、USB接口等,在嵌入式系统中,这些功能都不是一定需要的,而在嵌入式系统中常用的许多功能普通主板的BIOS却又不能够提供;
2.普通主板针对的处理器系统的硬件结构是标准的,而嵌入式系统的硬件结构是定制的,这也使得不可能在嵌入式系统中直接使用个人计算机主板使用的BIOS;
3.普通主板的BIOS的程序只在实模式下运行,只有最多1M的可使用内存空间,不能使用处理器系统所提供的全部内存资源,然而嵌入式系统常用的运行模式是从服务器下载可执行映象文件,这就需要足够的内存资源存放可执行映象文件,只能在实模式下运行的BIOS就无法满足要求。
由上所述,可以看出普通奔腾II处理器系统主板的BIOS不适宜于在嵌入式系统中应用。
发明内容
本发明的目的是提供一种奔腾II处理器系统的引导方法,重点针对嵌入式系统的应用特点,提供处理器初始化,内存检测和配置,串口驱动,总线配置,保护模式运行等功能,引导奔腾II处理器系统到正常工作的状态,同时提供简单的终端命令解析、执行的功能,使得系统可以灵活配置引导方式,便于根据需要扩展。所述方法具有适用范围广、可靠性高、适宜于嵌入式系统应用的特点。
本发明的技术方案如下:
一种奔腾II处理器系统的引导方法,应用于嵌入式系统,包括以下步骤:
a)复位上电跳转:在地址FFFF0h处执行跳转指令,该跳转指令将引导程序入口指向地址空间F0000h-FFFF0h范围内的一设定地址;
b)设置南桥芯片的X总线片选寄存器,扩展所述奔腾II处理器系统可以访问的地址空间为从FFF80000h至FFFFFFFFh,共512k字节;
c)设置北桥芯片的控制动态随机访问存储器的相关寄存器,读取双列直插存储器模块内存条的串行在线检测数据),配置所述动态随机访问存储器;
d)初始化中断描述符表,将中断描述符表的表项数量和内容都设置为空,并将中断描述符表寄存器指向所述中断描述符表,同时禁止CPU响应外部中断;
e)配置全局描述符表,将所述全局描述符表的第一个描述符表项设置为空,将所述全局描述符表的第二个描述符表项设置为指向地址空间00000000h-FFFFFFFFh,将所述第二个描述符表项的属性值设置为可读和可执行,将所述全局描述符表的第三个描述符表项设置为指向地址空间00000000h-FFFFFFFFh,将所述第三个描述符表项的属性值设置为可读和可写,将全局描述符寄存器指向所述全局描述符表;
f)将代码段寄存器指向所述全局描述符表的所述第二个描述符表项,将其他的段寄存器都设置为指向所述全局描述符表的所述第三个描述符表项;
g)设置所述奔腾II处理器系统的0号控制寄存器,使所述CPU从实模式运行状态切换到保护模式运行状态;
h)设置所述南桥芯片的92号端口寄存器,使能第21根地址线,打开所有的物理地址空间;
i)初始化所述奔腾II处理器系统的标准串口驱动器;
j)启动命令行终端处理功能:设置标准输入、标准输出和错误输出的驱动,启动终端命令行处理的主循环函数,监测标准输入设备的输入,解析输入命令和参数,根据命令表调用相应的处理函数,提供命令行处理功能。
所述的引导方法,其中,所述步骤c)中的动态随机访问存储器配置过程包括以下步骤:
c1)清空所述动态随机访问存储器的所有行边界寄存器,设置所述动态随机访问存储器的定时控制器为最大值;
c2)根据外部双列直插存储器模块内存条插座和所述北桥芯片连接的方式来设置所述动态随机访问存储器的内存缓冲强度控制寄存器;
c3)检测所述双列直插存储器模块内存条插座上是否有内存条存在;
c4)从每一个存在的所述双列直插存储器模块内存条中读取串行在线检测数据,所述串行在线检测数据中包含了内存的实际大小、时间参数和内存的配置信息,根据读取的有效数据设置相应的寄存器的相应位。
所述的引导方法,其中,所述步骤c3)的检测双列直插存储器模块内存条是否存在的方法还包括以下步骤:
c31)将当前行的内存尺寸设置为能支持的最大值,禁止其他行的内存,即如果是第i行的内存正在被初始化,则行边界寄存器DRB[O]---DRB[(i-1)]设置为00h,而行边界寄存器DRB[i]---DRB[7]设置为10h;
c32)存储地址00h写入一个32位的测试数据;
c33)存储地址10h写入一个32位的按位反转测试数据;
c34)存储地址00h和08h以外的地址写入64个双字;
c35)从存储地址00h读出一个32位的数据,如果读出的数据与刚才写入的数据相同,表示此行内存初始化成功,否则表示失败或该行不存在内存设备。
所述的引导方法,其中,所述步骤c4)包括以下步骤:
c41)读取所述串行在线检测数据第5个字节,检查该双列直插存储器模块是单边还是双边的;
c42)读取所述串行在线检测数据第3个字节值,设为SPD BYTE 3,以此检查行地址有多少位;
c43)读取所述串行在线检测数据第4个字节值,设为SPD BYTE 4,以此检查列地址有多少位;
c44)读取所述串行在线检测数据的第17个字节值,设为SPD BYTE 17,以此检查所述动态随机访问存储器的内部Banks数;
c45)按以下公式计算所述动态随机访问存储器的行边界寄存器的实际值:
DRB=2((SPD BYTE 3)+(SPD BYTE 4)+((SPD BYTF 17)/2)-20)
如果该列直插存储器模块内存是双边的,那么每一行的内存尺寸是该公式计算结果除以2;如果该列直插存储器模块是单边的,上边公式计算出的结果就是该行内存的实际大小;
c46)根据计算结果设置相应的所述动态随机访问存储器行边界寄存器;
c47)根据读取的所述串行在线检测数据第4个字节的值,即列地址的位数,设置相应的所述动态随机访问存储器页尺寸寄存器,配置每页的大小;c48)读取所述串行在线检测数据第11个字节的值,检查是否支持错误检查和纠正,根据读出结果设置所述北桥芯片的芯片扩展总线配置寄存器的相应位;
c49)根据读取的所述串行在线检测数据第17字节的值,设置所述动态随机访问存储器的分页策略寄存器,确定当前每行的Banks数;
c410)读取所述串行在线检测数据第29个字节,得到所述串行在线检测数据中配置的行地址信号线有效到列地址信号线有效的延迟时间,如果读取的值比当前的行地址信号线有效到列地址信号线有效的延迟时间值大,用读取的值替换当前值;否则保持不变;
c411)使能动态随机访问存储器刷新,选择刷新率,设置所述动态随机访问存储器控制器的相应位。
所述的引导方法,其中,所述步骤i)的初始化所述奔腾II处理器系统的标准串口驱动器包括以下步骤:
i1)设置串口芯片的波特率发生器的波特率;
i2)设置串口芯片的线路控制寄存器;
i3)设置串口芯片的调制解调器控制寄存器,设置寄存器的相应控制位使得RTS引脚有效;
i4)设置串口芯片的缓存控制寄存器,使能发送和接收缓存,并清空缓存中的所有数据。
所述的引导方法,其中,所述步骤j)包括以下步骤:
j1)程序一直监测所述终端的输入,有字符输入时进行步骤j2)的操作;
j2)缓存输入的字符到内存中,检测该输入字符是否是规定有特殊意义的字符,如果是规定有特殊意义的字符则根据输入的字符来执行相应的操作,否则将字符缓存到命令缓存中去;
j3)检查所述命令缓存中的字符串长度,格式是否正确,如不正确,则退出本次循环;
j4)如格式正确则解析输入的字符串,分别解析到命令和参数数组;
j5)在命令表中查询由步骤j4)解析出来的命令,如查询不到,则退出本次循环,否则,进行步骤j6)的操作;
j6)由命令表中找到对应于输入命令的执行函数,将输入的参数按次序赋给执行函数,运行该执行函数。
所述的引导方法,其中,所述步骤j2)还包括以下步骤:
j21)如果输入字符是“\r”或“\n”,执行所述步骤j3)的操作;
j22)如果输入字符是“Ctrl+C”,清空缓存到内存中的所有字符,退出本次对所述终端的监测,作异常取消处理后,开始下一次的监测循环;
j23)如果输入字符是“Ctrl+U”,删除所述命令缓存中存储的所有字符串,但是保留命令提示符字符串,跳转到步骤j1),继续监测所述终端的输入;
j24)如果输入字符是“Ctrl+W”,则删除所述命令缓存中的两个字符,跳转到步骤j1),继续监测所述终端的输入;
j25)如果输入字符是“Ctrl+H”或“BACKSPACE”,则删除所述命令缓存中的一个字符,跳转到步骤j1),继续监测所述终端的输入;
j26)如果输入字符不是上述规定有特殊意义的字符,则被当作普通字符缓存到所述命令缓存中去。
所述的引导方法,其中,所述步骤a)中跳转指令所指定的所述引导程序入口地址是FE000h。
所述的引导方法,其中,所述步骤i1)中所设定的波特率发生器的波特率为9600。
所述的引导方法,其中,所述步骤i2)中设置每字节为8个数据位,1个停止位。
本发明去掉了普通BIOS的许多不必要的功能,所需的程序空间远小于普通的BIOS;同时,可以访问全部的内存资源,克服了普通BIOS只能在实模式下运行的缺点;提供简单命令行处理功能,可以方便地扩展各种新的功能,非常适宜于嵌入式系统的各种应用。
附图说明
图1是本发明的一种奔腾II处理器系统的引导方法的流程示意图;
图2是本发明方法的动态随机访问存储器DRAM控制器的配置流程示意图;
图3是本发明方法的标准串口驱动配置流程示意图;
图4是本发明方法的命令行终端程序命令解析处理流程。
具体实施方式
下面结合附图对本发明的具体实施例作进一步详细说明:
附图1介绍了应用于嵌入式系统的奔腾II处理器系统的引导方法的主要流程。奔腾II处理器系统在复位上电时,其指令地址是指向FFFFO,而从FFFFO到FFFFF只有16个字节空间,所以应该在FFFFO处加入一跳转指令,这跳转地址只能在F0000h-FFFF0h共64K字节空间范围内。根据程序设计的需要我们跳到FE000的位置开始运行引导程序的启动部分。启动部分的程序占据了FE000-FFFE0的8K字节空间,串口驱动和命令行处理的程序所占的地址空间较大,放置在FFF80000-FFFFFE000(启动部分程序配置南桥芯片后会把地址空间扩展到512K字节空间)。首先,启动部分程序扩展处理器系统可以访问的地址空间为512k字节(FFF80000-FFFFFFFF),然后是设置北桥芯片上的动态随机访问存储器DRAM控制器,对于动态随机访问存储器DRAM控制器的设置我们在下面结合附图2做详细说明,接着是初始化中断描述符表,因为在引导中不需要管理中断,所以,我们将中断描述表的表项数量和内容都设置为空,并将这个空表挂接到中断描述表寄存器上。接下来,配置全局描述符表,配置第一个描述符表项为空,配置第二个描述符表项指向的地址空间范围为全部的4G字节的地址空间(00000000-FFFFFFFF),该表项的属性为可读和可执行,配置第三个描述符表项指向的地址空间范围为全部的4G字节的地址空间(00000000-FFFFFFFF),该表项的属性为可读和可写,将该表挂接到全局描述符寄存器上。接下来,将代码段寄存器指向第二个描述符表项,将其他所有的段寄存器都指向第三个数据表项,从而得到一个平坦的地址空间。接下来,使能第21根地址线(A20),打开所有的物理地址空间。接下来,设置CR0寄存器,让处理器从实模式运行状态切换到保护模式运行状态。接下来,启动部分程序运行完毕,执行一个远跳转指令执行初始化标准串口的串口驱动程序,对于串口驱动程序的详细描述,在后面结合附图3详细描述,执行完串口驱动程序后。最后,跳转到终端主循环处理程序,该主循环处理程序的命令处理和解析流程在后面结合附图4做详细说明。
附图2介绍了北桥芯片的所述动态随机访问存储器DRAM控制器的配置方法。具体步骤如下:
c1)清空所有的DRAM行边界寄存器(DRB0-DRB7),设置DRAM的定时控制器为最大值,确保时序的稳定。
c2)配置DRAM内存缓冲强度控制寄存器,根据外部DIMM内存条插座和北桥芯片连接的方式来配置DRAM内存缓冲强度控制寄存器。
c3)通过如下算法判断那个DIMM内存条插座上插有内存设备:
c31)当前行的内存尺寸设置为能支持的最大值,禁止其它行的内存,即:当第i行的内存正在被初始化,DRB[O]---DRB[(i-1)]设置为00h,而DRB[i]---DRB[7]设置为10h;
c32)存储地址00h,写入一个32位的测试数据;
c33)存储地址10h,写入一个32位的按位反转测试数据;
c34)存储地址00h和08h以外的地址,写入64个双字;
c35)存储地址00h,读出一个32位的数据,如果读出的数据与刚才写入的数据相同,表示该行内存初始化成功,否则表示失败或该行不存在内存设备。
c4)从每一个存在的DIMM内存条上读取串行在线检测(SPD)数据,串行在线检测(SPD)数据包含了内存的实际大小、时间参数和一些内存的配置信息。根据读取的有效数据配置相应的寄存器的相应位。具体步骤如下:
c41)读取所述串行在线检测(SPD)数据第5个字节,检查该DIMM是单边还是双边的;
c42)读取所述串行在线检测(SPD)数据第3个字节值,设为SPD BYTE3,检查行地址有多少位;
c43)读取所述串行在线检测(SPD)数据第4个字节值,设为SPD BYTE4,检查列地址有多少位;
c44)读取所述串行在线检测(SPD)数据的第17个字节值,设为SPDBYTE17,检查DRAM的内部Banks数;
c45)按以下公式计算DRAM行边界寄存器的实际值:
DRB=2((SPD BYTE 3)+(SPD BYTE 4)+((SPD BYTE 17)/2)-20)
如果该DIMM内存是双边的,那么每一行的内存尺寸是该公式计算结果除以2;如果该DIMM是单边的,上边公式计算出的结果就是该行内存的实际大小;
c46)根据计算结果设置相应的DRAM行边界寄存器;
c47)根据读取的所述串行在线检测(SPD)数据第4个字节的值,即列地址的位数,设置相应的DRAM页尺寸寄存器,配置每页的大小;
c48)读取所述串行在线检测(SPD)数据第11个字节,检查是否支持ECC,根据读出结果设置所述北桥芯片的芯片扩展总线配置寄存器的相应位;
c49)根据读取的所述串行在线检测(SPD)数据第17字节的值,设置DRAM的分页策略寄存器,确定当前每行的Banks数;
c410)读取所述串行在线检测(SPD)数据第29个字节,得到所述串行在线检测(SPD)数据中配置的行地址信号线有效到列地址信号线有效的延迟时间,如果读取的值比当前的行地址信号线有效到列地址信号线有效的延迟时间值大,用读取的值替换当前值;否则保持不变;
c411)使能DRAM刷新,选择刷新率,设置DRAM控制器的相应位。
通过以上4个主要步骤,可以完成对DRAM的配置。
附图3介绍了串口驱动的配置流程。对于嵌入式系统,一般提供串口作为终端处理的物理接口,串口芯片一般挂接在ISA(产业标准结构)总线上,这里描述在个人计算机中常用的串口芯片的驱动的方法:
i1)设置串口芯片的波特率发生器的波特率,一般为9600。
i2)设置串口芯片的线路控制寄存器,一般设置每字节为8个数据位,1个停止位。
i3)设置串口芯片的调制解调器控制寄存器,设置寄存器的相应控制位使得RTS引脚有效。
i4)设置串口芯片的缓存控制寄存器,使能发送和接收缓存,并清空缓存中的所有数据。
通过以上4个主要步骤,可以完成对串口驱动芯片的配置。
附图4介绍了对从输入终端输入的命令解析处理流程。具体步骤如下:
j1)程序一直监测输入终端的字符输入,有字符输入时进行步骤p2)的操作;
j2)缓存输入的字符到内存中,检测输入字符是否是规定有特殊意义的字符,如果是规定有特殊意义的字符则根据输入的字符来决定下一步的操作,否则将字符缓存到命令缓存中去;
具体方法如下:
j21)如果输入字符是“\r”或“\n”,执行步骤p3)的操作;
j22)如果输入字符是“Ctrl+C”,清空缓存到内存中的所有字符,退出本次对所述输入终端的监测循环,作异常取消处理后,开始下一次的监测循环;
j23)如果输入字符是“Ctrl+U”,删除所述命令缓存中存储的所有字符串,但是保留命令提示符字符串,跳转到步骤p1),继续监测所述输入终端的输入;
j24)如果输入字符是“Ctrl+W”,则删除所述命令缓存中的两个字符,跳转到步骤1),继续监测所述输入终端的输入;
j25)如果输入字符是“Ctrl+H”或“BACKSPACE”,则删除所述命令缓存中的一个字符,跳转到步骤p1),继续监测所述输入终端的输入;
j26)如果输入字符不是上述规定有特殊意义的字符,则被当作普通字符缓存到所述命令缓存中去。
j3)检查所述命令缓存中的字符串长度,格式是否正确,如不正确,则退出本次监测循环;
j4)解析输入的字符串,分别解析到命令和参数数组;
j5)在命令表中查询由步骤p4)解析出来的命令,如查询不到,则退出本次监测循环,否则,进行步骤p6)的操作;
j6)由命令表中找到对应于输入命令的执行函数,将输入的参数按次序赋给执行函数,运行该执行函数。
本发明方法通过上述步骤,所述引导程序完成命令解析,命令参数传递,和命令执行。
应当理解的是,对本领域普通技术人员来说,可以根据本发明的具体实施方式和技术方案的说明做出各种可能的改变或替换,而所有这些改变或替换都应属于本发明的所附权利要求的保护范围。
Claims (10)
1、一种奔腾II处理器系统的引导方法,应用于嵌入式系统,包括以下步骤:
a)上电复位跳转:在地址FFFF0h处执行跳转指令,该跳转指令将引导程序入口指向地址空间F0000h-FFFF0h范围内的一设定地址;
b)设置南桥芯片的X总线片选寄存器,扩展所述奔腾II处理器系统可以访问的地址空间为从FFF80000h至FFFFFFFFh,共512k字节;
c)设置北桥芯片的控制动态随机访问存储器的相关寄存器,读取双列直插存储器模块内存条的串行在线检测数据,配置所述动态随机访问存储器;
d)初始化中断描述符表,将中断描述符表的表项数量和内容都设置为空,并将中断描述符表寄存器指向所述中断描述符表,同时禁止CPU响应外部中断;
e)配置全局描述符表,将所述全局描述符表的第一个描述符表项设置为空,将所述全局描述符表的第二个描述符表项设置为指向地址空间00000000h-FFFFFFFFh,将所述第二个描述符表项的属性值设置为可读和可执行,将所述全局描述符表的第三个描述符表项设置为指向地址空间00000000h-FFFFFFFFh,将所述第三个描述符表项的属性值设置为可读和可写,将全局描述符寄存器指向所述全局描述符表;
f)将代码段寄存器指向所述全局描述符表的所述第二个描述符表项,将其他的段寄存器都设置为指向所述全局描述符表的所述第三个描述符表项;
g)设置所述奔腾II处理器系统的0号控制寄存器,使所述CPU从实模式运行状态切换到保护模式运行状态;
h)设置所述南桥芯片的92号端口寄存器,使能第21根地址线,打开所有的物理地址空间;
i)初始化所述奔腾II处理器系统的标准串口驱动器;
j)启动命令行终端处理功能:设置标准输入、标准输出和错误输出的驱动,启动终端命令行处理的主循环函数,监测标准输入设备的输入,解析输入命令和参数,根据命令表调用相应的处理函数,提供命令行处理功能。
2、根据权利要求1所述的引导方法,其特征在于,所述步骤c)中的动态随机访问存储器配置过程包括以下步骤:
c1)清空所述动态随机访问存储器的所有行边界寄存器,设置所述动态随机访问存储器的定时控制器为最大值;
c2)根据外部双列直插存储器模块内存条插座和所述北桥芯片连接的方式来设置所述动态随机访问存储器的内存缓冲强度控制寄存器;
c3)检测所述双列直插存储器模块内存条插座上是否有内存条存在;
c4)从每一个存在的所述双列直插存储器模块内存条中读取串行在线检测数据,所述串行在线检测数据中包含了内存的实际大小、时间参数和内存的配置信息,根据读取的有效数据设置相应的寄存器的相应位。
3、根据权利要求2所述的引导方法,其特征在于,所述步骤c3)的检测双列直插存储器模块内存条是否存在的方法还包括以下步骤:
c31)将当前行的内存尺寸设置为能支持的最大值,禁止其他行的内存,即如果是第i行的内存正在被初始化,i为0-7的整数,则行边界寄存器DRB[0]---DRB[(i-1)]设置为00h,而行边界寄存器DRB[i]---DRB[7]设置为10h;
c32)存储地址00h写入一个32位的测试数据;
c33)存储地址10h写入一个32位的按位反转测试数据;
c34)存储地址00h和08h以外的地址写入64个双字;
c35)从存储地址00h读出一个32位的数据,如果读出的数据与刚才写入的数据相同,表示此行内存初始化成功,否则表示失败或该行不存在内存设备。
4、根据权利要求2所述的引导方法,其特征在于,所述步骤c4)包括以下步骤:
c41)读取所述串行在线检测数据第5个字节,检查该双列直插存储器模块是单边还是双边的;
c42)读取所述串行在线检测数据第3个字节值,设为SPD BYTE 3,以此检查行地址有多少位;
c43)读取所述串行在线检测数据第4个字节值,设为SPD BYTE 4,以此检查列地址有多少位;
c44)读取所述串行在线检测数据的第17个字节值,设为SPD BYTE17,以此检查所述动态随机访问存储器的内部Banks数;
c45)按以下公式计算所述动态随机访问存储器的行边界寄存器的实际值:
DRB=2((SPD BYTE 3)+(SPD BYTE 4)+((SPD BYTE 17)/2)-20)
如果该列直插存储器模块内存是双边的,那么每一行的内存尺寸是该公式计算结果除以2;如果该列直插存储器模块是单边的,上边公式计算出的结果就是该行内存的实际大小;
c46)根据计算结果设置相应的所述动态随机访问存储器行边界寄存器;
c47)根据读取的所述串行在线检测数据第4个字节的值,即列地址的位数,设置相应的所述动态随机访问存储器页尺寸寄存器,配置每页的大小;
c48)读取所述串行在线检测数据第11个字节的值,检查是否支持错误检查和纠正,根据读出结果设置所述北桥芯片的芯片扩展总线配置寄存器的相应位;
c49)根据读取的所述串行在线检测数据第17字节的值,设置所述动态随机访问存储器的分页策略寄存器,确定当前每行的Banks数;
c410)读取所述串行在线检测数据第29个字节,得到所述串行在线检测数据中配置的行地址信号线有效到列地址信号线有效的延迟时间,如果读取的值比当前的行地址信号线有效到列地址信号线有效的延迟时间值大,用读取的值替换当前值;否则保持不变;
c411)使能动态随机访问存储器刷新,选择刷新率,设置所述动态随机访问存储器控制器的相应位。
5、根据权利要求1、2、3或4所述的引导方法,其特征在于,所述步骤i)的初始化所述奔腾II处理器系统的标准串口驱动器包括以下步骤:
i1)设置串口芯片的波特率发生器的波特率;
i2)设置串口芯片的线路控制寄存器;
i3)设置串口芯片的调制解调器控制寄存器,设置寄存器的相应控制位使得RTS引脚有效;
i4)设置串口芯片的缓存控制寄存器,使能发送和接收缓存,并清空缓存中的所有数据。
6、根据权利要求5所述的引导方法,其特征在于,所述步骤j)包括以下步骤:
j1)程序一直监测所述终端的输入,有字符输入时进行步骤j2)的操作;
j2)缓存输入的字符到内存中,检测该输入字符是否是规定有特殊意义的字符,如果是规定有特殊意义的字符则根据输入的字符来执行相应的操作,否则将字符缓存到命令缓存中去;
j3)检查所述命令缓存中的字符串长度,格式是否正确,如不正确,则退出本次循环;
j4)解析输入的字符串,分别解析到命令和参数数组;
j5)在命令表中查询由步骤j4)解析出来的命令,如查询不到,则退出本次循环,否则,进行步骤j6)的操作;
j6)由命令表中找到对应于输入命令的执行函数,将输入的参数按次序赋给执行函数,运行该执行函数。
7、根据权利要求6所述的引导方法,其特征在于,所述步骤j2)还包括以下步骤:
j21)如果输入字符是“\r”或“\n”,执行所述步骤j3)的操作;
j22)如果输入字符是“Ctrl+C”,清空缓存到内存中的所有字符,退出本次对所述终端的监测,作异常取消处理后,开始下一次的监测循环;
j23)如果输入字符是“Ctrl+U”,删除所述命令缓存中存储的所有字符串,但是保留命令提示符字符串,跳转到步骤j1),继续监测所述终端的输入;
j24)如果输入字符是“Ctrl+W”,则删除所述命令缓存中的两个字符,跳转到步骤j1),继续监测所述终端的输入;
j25)如果输入字符是“Ctrl+H”或“BACKSPACE”,则删除所述命令缓存中的一个字符,跳转到步骤j1),继续监测所述终端的输入;
j26)如果输入字符不是上述规定有特殊意义的字符,则被当作普通字符缓存到所述命令缓存中去。
8、根据权利要求1所述的引导方法,其特征在于,所述步骤a)中跳转指令所指定的所述引导程序入口地址是FE000h。
9、根据权利要求5所述的引导方法,其特征在于,所述步骤i1)中所设定的波特率发生器的波特率为9600。
10、根据权利要求5所述的引导方法,其特征在于,所述步骤i2)中设置每字节为8个数据位,1个停止位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200310112020XA CN100501638C (zh) | 2003-11-05 | 2003-11-05 | 一种奔腾ii处理器系统的引导方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200310112020XA CN100501638C (zh) | 2003-11-05 | 2003-11-05 | 一种奔腾ii处理器系统的引导方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1542587A CN1542587A (zh) | 2004-11-03 |
CN100501638C true CN100501638C (zh) | 2009-06-17 |
Family
ID=34336349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200310112020XA Expired - Lifetime CN100501638C (zh) | 2003-11-05 | 2003-11-05 | 一种奔腾ii处理器系统的引导方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100501638C (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100343808C (zh) * | 2005-12-15 | 2007-10-17 | 北京中星微电子有限公司 | 一种嵌入式系统执行启动装载的方法 |
CN115037798B (zh) * | 2022-08-11 | 2022-12-27 | 成都金诺信高科技有限公司 | 一种时统报文数据包分发方法 |
-
2003
- 2003-11-05 CN CNB200310112020XA patent/CN100501638C/zh not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
CN1542587A (zh) | 2004-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI442318B (zh) | 間接暫存器存取之系統及方法 | |
US6073206A (en) | Method for flashing ESCD and variables into a ROM | |
US7340566B2 (en) | System and method for initializing a memory device from block oriented NAND flash | |
US7193923B2 (en) | Semiconductor memory device and access method and memory control system for same | |
US20120011393A1 (en) | Bios recovery | |
CN102460384A (zh) | 程序、控制方法以及控制装置 | |
CN102169459A (zh) | 一种访问数据的方法、装置和智能卡 | |
US9046915B2 (en) | Circuit and method for initializing a computer system | |
US20030120868A1 (en) | Method and system to cache metadata | |
US9336082B2 (en) | Validating persistent memory content for processor main memory | |
US7222217B2 (en) | Cache residency test instruction | |
US20120159104A1 (en) | Secure memory access system and method | |
CN100377086C (zh) | 嵌入式系统中直接从文件系统运行程序的实现方法 | |
CN111897743A (zh) | 数据储存装置及逻辑至物理地址映射表的载入方法 | |
US11526441B2 (en) | Hybrid memory systems with cache management | |
US8667325B2 (en) | Method, apparatus and system for providing memory sparing information | |
CN100501638C (zh) | 一种奔腾ii处理器系统的引导方法 | |
US7934073B2 (en) | Method for performing jump and translation state change at the same time | |
US6687821B1 (en) | System for dynamically configuring system logic device coupled to the microprocessor to optimize application performance by reading from selection table located in non-volatile memory | |
KR20200123799A (ko) | 디바이스를 디버깅할 때 메타데이터에 액세스하기 위한 장치 및 방법 | |
KR100534613B1 (ko) | 플래쉬 메모리를 이용한 시스템 부팅 장치 및 그 방법 | |
CN107480052B (zh) | 一种定位宕机时bios代码的方法及装置 | |
CN101571831A (zh) | 存储器子系统及管理方法、包含该子系统的计算机系统 | |
JP2003216343A (ja) | マイクロコンピュータシステムおよびそのデータアクセス方法 | |
JPH10293684A (ja) | コンピュータシステムおよびその立ち上げ制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term |
Granted publication date: 20090617 |
|
CX01 | Expiry of patent term |