首页 A20 GATE解析

A20 GATE解析

举报
开通vip

A20 GATE解析A20 GATE解析 1.     A20 GATE起源 8086时代,CPU地址线只有A[19:0]共20根,而20根地址线所能访问的实际内存地址为0-FFFFFh,但实模式下CPU指令能访问的地址却是0-10FFEFh(即FFFF:FFFF),当访问从100000h到10FFEFh这64K-16字节地址时,实际访问的寄存器会回绕到0-FFEFh,那个时代有些程序在设计时利用了这个特性。 到了80286时代,CPU地址线有A[23:0]共24根,引入保护模式后可以访问的内存地址扩展到0-FFFFFFh(16MB...

A20 GATE解析
A20 GATE解析 1.     A20 GATE起源 8086时代,CPU地址线只有A[19:0]共20根,而20根地址线所能访问的实际内存地址为0-FFFFFh,但实模式下CPU指令能访问的地址却是0-10FFEFh(即FFFF:FFFF),当访问从100000h到10FFEFh这64K-16字节地址时,实际访问的寄存器会回绕到0-FFEFh,那个时代有些程序在 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 时利用了这个特性。 到了80286时代,CPU地址线有A[23:0]共24根,引入保护模式后可以访问的内存地址扩展到0-FFFFFFh(16MB),而此时为了兼容利用8086的1MB+地址回绕特性的程序,引入了A20GATE的概念。 图1-1 80286 CPU的A20GATE 如图1-1,此时的CPU已经没有多余的引脚,就利用了8042 KBC Controller的一个引脚来完成这个功能,当对8042编程令A20 GATE引脚输出为低时,A20地址线被始终拉低,从而模拟8086的1MB+地址回绕特性来兼容早期的某些软件;当对8042编程令A20 GATE引脚输出为高时,A20地址线可被CPU正常驱动,从而保证进入保护模式时正常访问1MB以上的内存地址。 2.     近代的A20 GATE 引入南北桥+CPU架构后,KBC Controller通常被集成到Super I/O芯片中,同时引入Alt_A20_GATE和A20M#来实现兼容8086的A20 GATE特性。 图2-1 南北桥架构的A20GATE A20M#:从南桥输出到CPU的引脚,低有效,当这个引脚有效时,CPU的A20地址线被始终拉低,模拟8086的1MB+地址回绕特性。 Alt_A20_GATE:Intel南桥中有此定义,如图2-2,又称Fast A20,由南桥来解码I/O port 92h的bit1配合KBC Controller的A20GATE引脚对A20M#进行控制,仅当I/O port 92h的bit1为0,且A20GATE引脚为低时,A20M#有效。 上电或重启时,Super I/O的A20GATE信号输出为高。 同时大部分Super I/O芯片也提供I/O port 92h的解码,如图2-3,当对92h的bit1写入0/1时,Super I/O输出的A20GATE信号随之变低/高。 当南桥和Super I/O同时对92h解码时,南桥的优先级会高于Super I/O。 图2-2 南桥芯片FAST_A20定义 图2-3 Super I/O芯片FAST_A20定义 注:对于主流市场来说,由于A20GATE存在的必要性越来越小,从Intel Heavedale/Lynnfield(CPU与北桥集成在一起)开始,CPU内部提供寄存器(MSR)来关闭A20M#的功能,但BIOS一般会在CPU组中做出这个选项,对于工控行业为了继续兼容某些软件,需要把该选项设成A20M#打开的状态。 3.     非常规A20 GATE设计 上电后或重启后CPU运行于实模式,对于AMI Core8 BIOS代码,很快就会进入保护模式来初始化芯片寄存器,进入保护模式(Elink: PutCPUInFlatMode)之前需要打开A20 GATE,此处通常只会使用编程KBC Controller的方式来操作。 3.1    Notebook平台 Notebook平台通常没有Super I/O芯片,KBC Controller集成在EC芯片中,而A20GATE一般使用EC的GPIO来做,如果希望完全模拟常规的A20 GATE设计,则EC需要侦测开机和重启,在BIOS开始运行之前,让A20 GATE引脚变高,同时把写入60h/64h端口控制A20 GATE信号的指令解释为A20 GATE引脚的高低电平变化。 如果A20 GATE在BIOS开始运行的时候一直拉低,而PutCPUInFlatMode又无法把A20 GATE打开(Port 92h的bit1上电默认值为0),会导致进入保护模式后BIOS无法正常运行下去;由于92h的bit1在INIT#有效时会被置1(见图2-2),所以可能会出现POST/DOS阶段三键重启和OS下重启不同的结果。 3.2    Legacy Free平台 对于没有EC和Super I/O的设计,南桥的A20GATE信号通常只做一下上拉或下拉,对应解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 如下, 上拉:这是当前常用的一种做法,缺点是无法再通过软件方式来关掉A20(如图2-1所示,A20GATE为高令与非门输出固定),有可能导致某些软件(某些版本的Ghost或某些版本的Linux Grub)不兼容。 下拉:此时BIOS需要配合更改,在PutCPUInFlatMode之前通过写92h端口把A20 GATE打开,否则会出现没打开A20 GATE就进入保护模式而导致无法正常运行下去的现象,此方案的好处是可以正常打开和关闭A20 GATE,软件兼容性好。 注: 软件对A20 GATE的判断和访问是通过BIOS在Runtime提供的INT 15h服务来实现的,Legacy Free的主板AMI Core8 BIOS中必须把Token GATE_A20_STATUS设为2(01h =  Supported on keyboard Controller/02h =  Supported on port 92.) 附录    KBC Controller访问A20 GATE例程 ; Procedure:    enable_8042_bit_20 ;                disable_8042_bit_20 ; ; Description:  This procedures will enable/disable the Gate-A20 ; line through KBC. ; ; Input:    None. ; ; Output:     None. enable_8042_bit_20 PROC NEAR PUBLIC mov    ah, 0DFh        ; Data for output port to enable A20. jmp    ed_00 enable_8042_bit_20 ENDP disable_8042_bit_20 PROC NEAR PUBLIC mov    ah, 0DDh          ; Data for output port to disable A20. ed_00:: mov    al, 0D1h out    64h, al ed_01: jcxz    $+2 in    al, 64h cmp    al, 0FFh je    kbc_not_present test    al, 02h jnz    ed_01 kbc_not_present: mov    al, ah out    60h, al call    ib_free ret    disable_8042_bit_20 ENDP
本文档为【A20 GATE解析】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_005190
暂无简介~
格式:doc
大小:194KB
软件:Word
页数:6
分类:企业经营
上传时间:2018-12-02
浏览量:35