能否在Haswell及其后续产品上屏蔽A20线?

问题描述 投票:5回答:1

Wikipedia引用了英特尔手册中的这一声明

A20M#的功能主要由较旧的操作系统使用,而不由现代操作系统使用。在更新的Intel 64处理器上,可能不存在A20M#。

这是一个短语,它实际上已经存在于当今的手册中,但尚不明确:

  1. A20M#实际上仅是指引脚还是整个掩膜?
  2. [A20M事件/中断在许多指令的描述中被命名(例如TXT GETSEC或VMX指令)。

我所知道的

A20M#引脚本身不见了,在某些时候被DMI中的VLW(虚拟旧版线)接口代替。 DMI协议足够丰富,可以包含用于声明各种旧式引脚的消息:

PCH支持VLW消息,作为传达状态信息的替代方法以下旧边带接口信号发送给处理器:•A20M#,INTR,SMI#,INIT#,NMI

此引言来自PCH系列8(哈斯韦尔时代)。


到目前为止,PCH具有A20GATE直通功能。当PCH配置为捕获对旧式8042 IO端口(60h,64h)的访问并改为提供SMI(用于USB键盘/鼠标的PS2模拟)时,它可以选择让A20线路启用序列通过而不会被捕获。

取决于PCH的配置方式,这允许EC(移动设备)或SuperIO芯片(台式机)成为命令序列的目标。


很奇怪,PCH系列8(Haswell时代)数据表,报告:

注意:不支持A20M#功能。

然而,在LPC部分(连接EC / SuperIO的地方),这可能仅意味着PCH 本身不能模拟A20门,并且必须处理外部芯片(EC或SuperIO)它。

确实是这样,PCI必须具有要由外部芯片置位的引脚。数据表中没有提及任何内容。

但是,我在中国站点的某处找到了我以前的Haswell笔记本电脑的原理图,该原理图显示该引脚(实际上是球)AN10(又称TP14)用作A20M输入引脚:

PCH input A20M pin

左侧的blu框标记为LYNX-POINT-DH82LPMS_BGA695

GATEA20信号的另一端来自EC(如预期):

EC GATEA20 output

IT8586E / AX是Lenovo(显然)的EC。

因此,除非我误解了原理图,否则仍然可以在Haswell平台上掩盖A20线。

因此,关于A20M方面的数据表不完整。可能是《英特尔BIOS编写器指南》具备了所有功能。


我想知道

至少可以在一个Haswell平台上禁用A20线吗?那么Skylake及其后继者呢?

我做了什么

I wrote a simple legacy boot loader that checks if the A20 line is enabled and try to disable it

  1. 如果禁用了A20线路,则测试结束。测试平台上存在A20门功能。
  2. 否则,它会asks the BIOS支持的A20门方法,然后要求它disable the A20 line(我信任OSDev提供的功能命名,即启用与禁用什么功能,因此我希望调用禁用A20 line
  3. 而不是遮罩)
  4. [如果BIOS返回错误,则程序将使用快速a20方法和端口0eeh方法禁用通过KBC的A20线路。
  5. 再次测试A20线路状态。如果仍然启用,请手动将其禁用(除非已完成),然后再次测试。
  6. 当我在Skylake笔记本电脑上运行此程序时,BIOS返回仅支持快速A20方法的操作,并且未显示任何错误,但仍启用A20行。即使aver手动将其禁用,A20线仍处于启用状态。

我得出结论,无法在Skylake上禁用A20线,即它不再存在。

Wikipedia引用了Intel手册中的这一声明。A20M#的功能主要由较旧的操作系统使用,而不是由现代操作系统使用。在较新的Intel 64处理器上,...

x86 legacy chipset
1个回答
0
投票

似乎至少有一个Skylake平台无法再禁用A20线路。

© www.soinside.com 2019 - 2024. All rights reserved.