FWH_SEL1 的说明

来源:互联网 发布:拼音汉字对照数据库 编辑:程序博客网 时间:2024/05/03 08:40

之前执导FWH_SEL1是用来选FWH 的片子,但是太清楚这么具体。spec上也没有说清楚

============================================================================

Q:小弟之前做的一个案子,对于FWH_SEL1的设置是这样的:
在南桥初始化的时候, 往这个32BIT的register里填值:0x00 00 00 0E,
按照SPEC来看, 是选两个512K的FWH memory range.那么就是1M了。
原文如下:“
FWH_C0_IDSEL — R/W. IDSEL for two 512-KB Firmware Hub memory ranges. The IDSEL programmed in this field addresses the following memory ranges:
FFC0 0000h – FFC7 FFFFh
FF80 0000h – FF87 FFFFh ”

所以小弟想要请教的是:
这里为什么要选FWH的memory range 呢, 是为了BIOS ROM 吗?

 

A:你这个设置 0x00 00 00 0E肯定是随便设的,但是一般不会出问题,这个设定不是for FWH的memory range,而是FWH的idsel,这个寄存器的值默认为0x00112233,每个数字管512K的FWH的空间的idsel,如果你只有一个bios片子,那么它的idsel就是0,因此默认值就是F8和F0段都译码到idsel为0的片子,e8和e0都译码到idsel为1的片子,依次类推。
因此,你设为0x0000000e就是说,F8,F0, E8, E0, D8, D0, C8段都设为译码到idsel为0的片子,而c0段译码到idsel为0xe的片子,你给第一个片子分配的空间是3.5M,因此不会出问题,而如果你的BIOS大小是4M的话,你的设定就有问题,会发生起不来的情况。而且你把最后一个512K的idsel设为0xe更是莫名其妙。
注释:F8段的意思就是FFF8 0000到 FFFF FFFF,
F0段的意思就是FFF0 0000到FFF7 FFFF,依次类推。
这个寄存器的设定只对FWH的bios有效,对spi是无效的。

原创粉丝点击