注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

路雷米的博客

人生最难的就是在热爱和生计之间做选择, 愿每个人这一生 既对得起梦想又担得责任

 
 
 

日志

 
 

INT 15 A20 Control  

2016-05-20 18:50:31|  分类: BIOS-Related |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

[http://blog.csdn.net/hgf1011/article/details/5993447]

1.  Overview

 

INT15是一个Misc  Function 很多乱七八糟的功能都被放在 INT15中实现。比较常见的有这样几个功能:

1.CPU Micro Code Update

2.VBIOS  call back Function

3. A20 Control   Function

之前我并不知道INT15 A20 Control Function的功能,一次偶然机会 debug 一个PXE网络ghost的问题 发现每次DOS下的ghost软件运行到一半就报错了, 然后利用DOS下的单步执行的功能就发现每次执行完加载HIMEM.SYS之后就挂了,而HIMEM.SYS是一个和高端内存相关的一只Driver 于是就怀疑可能和A20有关,后来按照CRB Release History Update了一个INT15CBbin文件 bug就解了,当时因为赶时间就没有仔细去找原因,也不太明白为什么,直到最近查文档才偶然发现原来INT15 有一直A20 Control FunctionA20 Control Function调用的格式如下所示:

INT 15 AX=2400 disable A20
INT 15 AX=2401 enable A20
INT 15 AX=2402 query status A20
INT 15 AX=2403 query A20 support (kbd or port 92)

2. A20 Control

 

A20的问题指的是早期的8088 CPU地址线只有20位,最高只能寻址0x100000的地址空间,对于超出这个地址空间的寻址会导致地址回绕的现象。后来CPU地址线发展的原来越多(24,32,36…)为了完全兼容8088实模式下的运行方式就发现一个开关用于控制A20,通常该开关使用KBC 8042的一个没有用的pin来控制,但是因为KBC的芯片并不完全兼容,后来又出现了port  0x92以及0xee 的控制方式。这些控制方式的sample code分别如下所示:

1.KBC Control

call    empty_8042

mov     al,#0xd1            ! command write

out     #0x64,al

call    empty_8042

mov     al,#0xdf            ! A20 on

out     #0x60,al

call    empty_8042

 

2.Port 0x92 Control

inb     $0x92, %al        #

orb     $02, %al          # "fast A20" version

outb    %al, $0x92                       # some chips have only this

3. Port 0XEE Control

FAST A20 GATE          EEh          N/A         82360SL         8  

Inb FAST A20 GATE                          #enable A20

outb 0x00 FAST A20 GATE            #disable A20     

因为控制的方式并不统一,这样系统软件开启A20的实现方式也就没法统一,而唯一知晓平台A20控制方式的就只有SBIOS,于是就指定INT15A20 Control Function 把具体的实现丢给SBIOS

  评论这张
 
阅读(83)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018