如果默认禁用 A20 行,如何在 0xFFFFFFF0 访问 BIOS ROM?
How is BIOS ROM accessible at 0xFFFFFFF0 if A20 line is disabled by default?
我正在阅读有关 A20 线的文章 http://wiki.osdev.org/A20_Line,这似乎表明 A20 线默认情况下是禁用的。在Pentium上,如果0xFFFFFFF0是硬复位后立即放出的地址,是否意味着A20线默认启用?
根据我的理解,OP 中链接的文章有点误导,应该说 A20 行默认禁用 对于旧版 BIOS MBR 引导扇区。这将允许它在默认情况下启用,并且如果引导遗留的 IBM-PC 兼容引导扇区,则让固件在引导期间禁用它。 (而不是现代 UEFI 引导,它会在相当早地切换到 CPU 后将其保持在长模式。)
该文章的 external link 支持这一点。 (强调)
Present
Why do we have to worry about this nonsense? Because by default the A20 address line is disabled at boot time, so the operating system has to find out how to enable it, and that may be nontrivial since the details depend on the chipset used.
由于文章的其他部分使用了术语“重置”,我的解释是,这特指它是作为引导过程的一部分完成的。
在文章的下方,它特别提到了在重置期间禁用 A20 的效果。
A20 and reset
If (in protected mode) A20 is disabled, the odd megabytes are inaccessible. After a reset, execution begins at top-of-memory: 0xfffff0 on the 286 and 0xfffffff0 on 386 and later. With disabled A20 this becomes 0xeffff0 or 0xffeffff0 and the machine will probably crash, having no memory mapped there.
我正在阅读有关 A20 线的文章 http://wiki.osdev.org/A20_Line,这似乎表明 A20 线默认情况下是禁用的。在Pentium上,如果0xFFFFFFF0是硬复位后立即放出的地址,是否意味着A20线默认启用?
根据我的理解,OP 中链接的文章有点误导,应该说 A20 行默认禁用 对于旧版 BIOS MBR 引导扇区。这将允许它在默认情况下启用,并且如果引导遗留的 IBM-PC 兼容引导扇区,则让固件在引导期间禁用它。 (而不是现代 UEFI 引导,它会在相当早地切换到 CPU 后将其保持在长模式。)
该文章的 external link 支持这一点。 (强调)
Present
Why do we have to worry about this nonsense? Because by default the A20 address line is disabled at boot time, so the operating system has to find out how to enable it, and that may be nontrivial since the details depend on the chipset used.
由于文章的其他部分使用了术语“重置”,我的解释是,这特指它是作为引导过程的一部分完成的。
在文章的下方,它特别提到了在重置期间禁用 A20 的效果。
A20 and reset
If (in protected mode) A20 is disabled, the odd megabytes are inaccessible. After a reset, execution begins at top-of-memory: 0xfffff0 on the 286 and 0xfffffff0 on 386 and later. With disabled A20 this becomes 0xeffff0 or 0xffeffff0 and the machine will probably crash, having no memory mapped there.