【zz】linux启动过程(2)-setup.S分析

II、实模式下的初始化


实模式下的初始化,主要是指从内核引导成功后,到进入保护模式之前系统所做的一些处理。在内 核源码中对应的程序是 /Arch/i386/boot/setup.S;以下部分主要是针对此文件进行的分析。这部分的分析主要是要弄懂它的处理流程和 INITSEG(9000:0000)段参数表的建立,此参数表包含了很多硬件参数,这些都是以后进行保护模式下初始化,以及核心建立的基础。

1. 几个其它相关文件:

<1> /Arch/i386/boot/bootsect.S

<2> /include/linux/config.h

<3> /include/asm/boot.h

<4> /include/ asm/segment.h

<5> /include/linux/version.h

<6> /include/linux/compile.h

2. 实模式下的初始化过程分析:





INITSEG(9000:0000)段参数表:(参见Include/linux/tty.h)

参数名

偏移量(段址均为0x9000) 长度Byte

参考文件

PARAM_CURSOR_POS0x00002Arch/i386/boot/video.S
extended mem Size0x00022Arch/i386/boot/setup.S

PARAM_VIDEO_PAGE

0x00042Arch/i386/boot/video.S
PARAM_VIDEO_MODE0x00061Arch/i386/boot/video.S
PARAM_VIDEO_COLS0x00071Arch/i386/boot/video.S
没用0x00082Include/linux/tty.h
PARAM_VIDEO_EGA_BX0x000a2Arch/i386/boot/video.S
没用0x000c2Include/linux/tty.h
PARAM_VIDEO_LINES0x000e1Arch/i386/boot/video.S
PARAM_HAVE_VGA0x000f1Arch/i386/boot/video.S
PARAM_FONT_POINTS0x00102Arch/i386/boot/video.S
PARAM_LFB_WIDTH0x00122Arch/i386/boot/video.S
PARAM_LFB_HEIGHT0x00142Arch/i386/boot/video.S
PARAM_LFB_DEPTH0x00162Arch/i386/boot/video.S
PARAM_LFB_BASE0x00184Arch/i386/boot/video.S
PARAM_LFB_SIZE0x001c4Arch/i386/boot/video.S
暂未用①0x00204Include/linux/tty.h
PARAM_LFB_LINELENGTH0x00242Arch/i386/boot/video.S
PARAM_LFB_COLORS0x00266Arch/i386/boot/video.S
暂未用②0x002c2Arch/i386/boot/video.S
PARAM_VESAPM_SEG0x002e2Arch/i386/boot/video.S
PARAM_VESAPM_OFF0x00302Arch/i386/boot/video.S
PARAM_LFB_PAGES0x00322Arch/i386/boot/video.S
保留0x0034--0x003f Include/linux/tty.h
APM BIOS Version③0x00402Arch/i386/boot/setup.S
BIOS code segment0x00422Arch/i386/boot/setup.S
BIOS entry offset0x00444Arch/i386/boot/setup.S
BIOS 16 bit code seg0x00482Arch/i386/boot/setup.S
BIOS data segment0x004a2Arch/i386/boot/setup.S
支持32位标志④0x004c2Arch/i386/boot/setup.S
BIOS code seg length0x004e4Arch/i386/boot/setup.S
BIOS data seg length0x00522Arch/i386/boot/setup.S
hd0 参数0x008016Arch/i386/boot/setup.S
hd0 参数0x009016Arch/i386/boot/setup.S
PS/2 device 标志⑤0x01ff1Arch/i386/boot/setup.S


* 注 : ① Include/linux/tty.h : CL_MAGIC and CL_OFFSET here
  1.  

    1. Include/linux/tty.h :
unsigned char rsvd_size; /* 0x2c */
unsigned char rsvd_pos; /* 0x2d */

③ 0表示没有APM BIOS

④ 0x0002置位表示支持32位模式

⑤ 0表示没有,0x0aa表示有鼠标器
http://hi.baidu.com/sunblackshine/blog/item/8f928ac5983978a18326ac75.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值