维基百科引用了英特尔手册中的这一声明
这是一个短语,它实际上已经存在于当今的手册中,但是模棱两可:
A20M#
是实际上仅指引脚还是指整个掩蔽物? GETSEC
或VMX指令)的描述中都命名了A20M事件/中断。 我所知道的
A20M#引脚本身不见了,在某些时候被DMI中的VLW(虚拟旧版线)接口(interface)所取代。 DMI协议(protocol)足够丰富,可以包含用于声明各种旧式引脚的消息:
此报价来自PCH系列8(哈斯韦尔时代)。
迄今为止,PCH具有A20GATE直通功能。
当PCH配置为捕获对旧式8042 IO端口(60h,64h)的访问并改为提供SMI(用于USB键盘/鼠标的PS2仿真)时,它可以选择让A20线路启用序列通过而不会被捕获。
根据PCH的配置方式,这允许EC(移动设备)或SuperIO芯片(台式机)成为命令序列的目标。
奇怪的是,PCH系列8(哈斯韦尔时代)数据表报告:
但是,在LPC部分(连接EC/SuperIO的地方)中,这可能仅意味着PCH本身不会仿真A20门,而必须由外部芯片(EC或SuperIO)来处理它。
在这种情况下,PCI必须具有要由外部芯片声明的引脚。数据表中没有提及任何内容。
但是,我在中国站点的某个地方找到了我以前的Haswell笔记本电脑的示意图,该示意图显示该引脚(实际上是球)AN10(又称TP14)用作A20M输入引脚:
左侧的蓝色框标记为LYNX-POINT-DH82LPMS_BGA695。
GATEA20信号的另一端来自EC(如预期的那样):
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:
0eeh
方法禁用通过KBC的A20行。 当我在Skylake笔记本电脑上运行此程序时,BIOS返回仅支持快速A20方法的操作,并且未显示任何错误,但仍启用了A20行。即使aver手动将其禁用,A20线路仍处于启用状态。
我得出结论,不能在Skylake上禁用A20线,即它不再存在。
最佳答案
VLW甚至在PCH之前就已经存在,它是'IOAPIC virtual wire mode',它通过ICH DMI/APIC总线模拟8259A的INTR输入,这与将8259A INTR引导到LINT引脚INTR的LAPIC虚拟布线模式相反。 “PIC模式”直接将LAPIC旁路至BSP逻辑内核的INTR引脚。
当第一个PCH到达时,Nehalem-EX的Ibex Peak消失了,A20M#
消失了。现在,它只能由PCH模拟为VLW A20M中断,并且VLW
显然是undocumented U2C (uncore to core) IDI opcode separate to IntLog/Phy。 VLW由Ubox/IIO(并在内部向LAPIC)广播到所有内核,其方式与所有LAPIC(用于INTR,NMI等,only one processor should have an unmasked LINT entry(作为ExtInt))共享2个CPU LINT引脚的方式相同。 LINT引脚直接连接到8259A流出的INTR和NMI源(PCH/DRAM),而IOAPIC消息是PCI VLW,它们通过DMI传输,以前是通过APIC总线传输)。 IOH SAD以前包含QPIPNCB以进一步过滤VLW-假定它现在存在于IIO中。我认为VLW传递给虚拟连接到INTR的LINT引脚的LVT LINT入口,如果LAPIC被禁用,则直接进入INTR
EC的A20GATE is driven to the PCH是,这会导致A20M VLW或A20M#
pre-PCH(端口92h也可以触发A20M#
)。 A20M#
是LINT和separate pin的detection of A20M#
happens at a macroinstruction boundary。大概VLW也被所有内核吸收,并在宏指令边界处中断所有逻辑内核。 A20M中断MSROM处理程序可以像使用当前IP刷新并重新启动指令流一样简单,并启用一个新设置,该新设置将更改AGU地址生成以掩盖该位,从而使地址换行。由于它是电平敏感的,因此在取消置位时还会有另一个中断。
在this Haswell M上,LPC界面上的A20GATE仍为GA20,它也位于Skylake U上。我不确定在该原理图上是否已连接,导线上没有x,也没有定向网络标签,但是那里有AG20GATE网络标签,这表明它已连接,但是我不确定它有多大蓝色的排序端子符号表示,与没有标签的电线比较,与带有标签符号和标签的电线比较,区别是什么。当它说不支持A20M#
时,它表示物理引脚,但是支持生成VLW的IOAPIC。支持A20GATE直通,这意味着这些设备可以启用A20屏蔽。
关于x86 - 能否在Haswell及其后续产品上屏蔽A20生产线?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59919707/