What does “Legacy” mean in the world of computers?
First we need to look at the general definition of the word “Legacy”, as it means a gift or honor handed down, as in father to son or daughter. In the world of computers it means essentially the same thing, although it’s not necessarily a gift and usually refers to outdated equipment, components, BIOS’s or software, including operating systems. Most of all, legacy designs usually, in some manner, cripple computer performance and stability.
As we move into the twenty first century, hardware and software manufacturers are making every effort to reduce legacy bound equipment and operating systems by adhering to the Legacy-Free / Legacy-Reduced Design concept.
“Legacy free” refers to PC system designs that eliminate certain hardware and firmware elements of the original PC architecture while advancing the PC’s stability and usability. Manufacturers are quickly moving away from ISA-based devices, among others, and taking advantage of opportunities to reduce legacy dependencies in PC systems. Let’s take a glimpse at what term legacy means with respect to computers.
Legacy-Free Hardware and BIOS Requirements
Minimum BIOS Requirements for Legacy Removal USB Host Controller Handoff During the Boot Process Minimum Legacy Hardware Removal Requirements Minimum Preinstallation Requirements General Requirements in PC System Design Guides
The following defines the hardware, BIOS, and software requirements for legacy-free systems that are compatible with the Microsoft® Windows® ME, Windows® 2000, and Windows® XP and later operating system versions. You will find a good deal of this information in the legacy-free design guidelines in the PC 2001 System Design Guide (co-authored by Intel Corporation and Microsoft Corporation).
The basic goal of these requirements is that the operating system, devices, and end users cannot detect the presence of ISA slots or devices, a legacy floppy disk controller (FDC) as well as PS/2, serial, parallel, and game ports. Other exceptions are noted in the specific requirements. This doesn’t mean that you will be losing your floppy disk controller or your PS/2 ports or even your game port. What it does mean is that they won’t have the connection types that you now have, and the connection types (for lack of a better description) will be managed entirely by the system BIOS and the operating system. Microsoft uses these requirements as testing guidelines in the Windows Logo Program.
Minimum BIOS Requirements for Legacy Removal
The system must meet the requirements defined in this section to ensure that the operating system identifies the computer as a “legacy free” system.
Revisions to the ACPI specification provide a mechanism that allows the BIOS to report whether a system contains legacy components and interfaces as described later on this page. A system with a BIOS that reports that it is legacy-free must achieve the following minimum level of BIOS support for legacy removal and support of replacement technologies:
- No legacy boot dependencies. No BIOS boot dependencies on ISA or other legacy devices, and no ISA-related components appear on the BIOS setup screen.
- BIOS supports USB boot devices. BIOS supports USB input devices at boot and does not include hardware emulation of the 8042 controller if the 8042 controller is not present. USB host controller and USB input device support must be enabled by default in the BIOS, and the BIOS must ensure that USB hubs and input devices, such as keyboards and mice, are available during the entire boot process. This includes implementing all related support defined in USB Device Class Definition for Human Interface Devices, Version 1.1 (HID 1.1), with particular attention to the Keyboard Boot Protocol.
When a USB host requests the configuration descriptor for a device, the device will return the configuration descriptor, all interface descriptors, and endpoint descriptors for all interfaces in a single request. This is present in section 9.4.3 of the USB specification. The maximum size of the returned data is 64 KB.
To enumerate the USB and configure boot devices, the BIOS must make a configuration request to every device encountered. This means the BIOS must be capable of handling a maximum length descriptor if such a descriptor is returned. However, the BIOS is only required to configure boot devices. Non-boot devices can be left in the addressed USB visible device state.
NOTE: To ensure fast boot times, the USB keyboard and mouse should be connected directly to a USB root port or at the first layer of a USB hub in the preinstalled system configuration. Enumerating boot devices on layers beyond a USB hub significantly impacts boot time.
- A20M# is de-asserted. A20M# is always de-asserted by the hardware (pulled high) or removed, with no way to mask the A20 address line.
If A20M# generation logic is still present in the system, this logic must be terminated such that software writes do not result in A20M# being asserted to the processor.
- Interrupt handlers preserve values in all registers. ROM BIOS hardware interrupt handlers must preserve the values in all registers, including the high 16-bits of 32-bit registers. ROM BIOS API handlers must preserve the values in all registers, including the high 16-bits of 32-bit registers that the API is not documented to modify. Any ROM BIOS API that is documented to modify only the low 16-bits of a 32-bit register must preserve the high 16-bits of that 32-bit register. This is to minimize compatibility problems for applications that use that API.
If a ROM BIOS API is documented to modify the flags–for example, it is documented to return with the CARRY flag set or cleared–this restriction does not apply to individual arithmetic bits in the flags register. Any ROM BIOS API that is documented to modify the flags is assumed to modify all of the “arithmetic” flag bits: CARRY, AUX-CARRY, PARITY, ZEROSIGN, and OVERFLOW. The values of the other bits in the flags register must be preserved unless the API is documented to modify them.
- Timer is supported at system boot. The ROM BIOS must make sure that the timer is on at system boot and that timer interrupts are occurring as part of POST or RESET.
- ACPI legacy-free support is reported. ACPI v.1.0b specification is supported and correctly implemented, including support for reporting legacy-free and hard reset/boot capabilities defined in 1999 changes for the ACPI specification:
- ACPI reset mechanism as defined in ACPI section 4.7.5.
- LEGACY_DEVICES and 8042 flags set as defined in ACPI section 5.2.1.
Note that the 8042 flag must be set to 0 for systems that do not include an 8042 controller, and set to 1 in mobile PCs and desktop systems that include the 8042 controller.
- Debug Port Table in the BIOS, as described in ACPI section 5.2.11.
For details, see ACPI Changes for Legacy-Free PCs.
- Required interrupts are supported. Table 2 below lists the known operating system dependencies for which BIOS support will be required for the coming years. Unless otherwise stated, all sub-functions must be present on a legacy-free system.
USB Host Controller Handoff During the Boot Process
The USB Host Controller must be in interrupt request (IRQ) mode for keyboard and mouse input during Real Mode and Safe Mode. However, this can potentially cause the system to stop working when the system is running Windows NT®, and the interrupt is shared with the boot device and the Host Controller generates an IRQ before the USB ISR is chained.
The solution is for the BIOS to add logic to the ACPI-enable routine to turn off the IRQ-enable bit in PCI configuration space for the USB Host Controller.
Minimum Legacy Hardware Removal Requirements
A legacy-free PC must achieve the following minimum level of legacy hardware removal.
- No ISA slots or devices present. This is also a Microsoft Windows Logo Program requirement.
- No COM, LPT, PS/2, or game ports. No external serial, parallel, or PS/2-compatible ports, and no ISA-based game ports or MPU-401 (MIDI) ports available for external connection or detected by the operating system. Systems can provide Super I/O-based IrDA support through 2001. Systems can use the 8042 controller internally, but must not include external PS/2 connectors. Legacy-free systems that use the 8042 controller internally must set the 8042 flag to 1 in the ACPI Fixed ACPI Description Table (FADT).
- No FDC. No floppy disk controller (FDC) detected.
- No restricted addresses. No use of restricted port addresses as listed in Table 1.
NOTE: A legacy-free system must not use the resources listed in Table 1, except as noted in the table. If hardware–whether on the motherboard or bundled with the system–is present and disabled, ACPI declaration must claim the resources so they cannot be freed.
Table 1. Restricted Port Addresses
|2E8-2EF 2F8-2FF 3E8-3EF
|Floppy disk controller (FDC)
|1 An internal COM port header can be used as a debug port solution if the COM port is not exposed to the end user. In this case, the COM port must not use the I/O addresses listed in this table; these listed addresses must be claimed in the BIOS but not used. The relocated I/O address must be reported in the ACPI Debug Port table.
2 Systems that use the 8042 controller internally can use these addresses if the 8042 flag is set to 1 in the ACPI FADT.
3 Systems that do not have an 8042 controller must reserve I/O addresses 0060 and 0064 as reserved motherboard resources.
Minimum Preinstallation Requirements
The requirements in this section define performance and functionality goals for a fast-booting, easy-to-use, flexible system. To meet minimal goals for expandability and performance, the legacy-free PC must meet the following requirements:
- Two USB ports free for end-user expansion–that is, not used by components bundled with the system.
A mobile PC can provide one free USB port.
- System recovery media must not be provided on floppy disks–that is, it should be provided on bootable CD or DVD media.
- Internal debug header interface that complies with Debug Port Specification, Version 1.0 or later. For any system design that does not include a built-in serial port, the debug solution must be shipped with the system. This is a requirement for the “Designed for Windows” logo for non-legacy systems. The solution must consist of one of the following:
- For serial ports with non-legacy addresses, the internal header must be exposed in such a way as to be available, but not obvious.
- For LPC solutions, the header for the dongle connection must be exposed.
- For IEEE 1394 solutions, IEEE 1394 must ship with the system.
- For USB 2.0, a USB 2.0 port must be available, exposed, and connected to a host controller that supports debugging.
Preinstalled hardware components must meet the following requirements:
- Peripherals bundled with the system must use the required or recommended connections for legacy-free systems–that is, USB, IEEE 1394, PCI, CardBus, Device Bay, and so on.
- All external input devices included with the system must be HID compliant.
- Hardware components bundled with the system must not depend on Microsoft MS-DOS® real mode for installation or configuration.
Preinstalled software components must meet the following requirements:
- MS-DOS must not be required to install or run any utilities, games, or other software provided with the system with the exception of software on the recovery CD provided for Windows ME.
- BIOS upgrades or other upgrades must not require booting from a floppy disk if system does not include a floppy disk drive.
General Requirements in PC System Design Guides
These guidelines apply for all system types, not just legacy-free systems. This section highlights briefly some of these requirements.
PC 2001 Proposed System Requirements. These include:
- Any USB storage components included with the system comply with USB Mass Storage Bulk-Only Specification, Revision 1.0 or later.
- Advanced Programmable Interrupt Controller (APIC) support, with the APIC properly connected so the system can be configured either in APIC mode or in the standard PIC (virtual wire) mode. Both these modes must be supported for the system to boot properly. For background information, see Key Benefits of the I/O APIC.
- Support for S3 implemented in the BIOS and device classes that support wake-up capabilities, including USB controllers and hubs.
PC 99 System Requirements. The following are requirements in the Windows Logo Program. Legacy-free system designs must also meet these requirements:
- BIOS supports booting from CD or DVD drive based on El Torito-Bootable CD-ROM Format Specification, v. 1.0.
- The video BIOS in ROM (as opposed to extension TSR, VxDs, and so on) must be able to support 800 x 600 x 256 color using the VESA mode set and mode query calls.
- Fast POST (not including drive spin up, option ROMs, or enumeration of USB/SCSI, and so on).
- If IEEE 1394 is implemented, the host controller must comply with IEEE 1394a and 1394 OHCI 1.0 or later.
- If CardBus is implemented, it must meet the requirements defined for the Windows Logo Program.
- If PCI components are implemented in the system, they must comply with PCI Local Bus Specification, Revision 2.2 and PCI Bus Power Management Interface Specification, Revision 1.1. All PCI devices must properly implement a unique Subsystem ID (SID) and Subsystem Vendor ID (SVID) as defined in PCI v. 2.2. Implementation guidelines for Windows systems are defined at: PCI Device Subsystem IDs and Windows
- If the CD-ROM or DVD drive can support digital audio streams, then the “CD-DA Commands Supported” bit must be set as defined in the MMC-2 standards.
Table 2. Required Interrupts
Used to keep the time-of-day clock updated.
|Keyboard data ready. The handler needs to be in the IVT chain for INT 9. IRQ1 is unmasked at the PIC.
(See the note following this table.)
|Set video mode.
All subfunctions are required. Video Mode Support–Relocatable VGA and 800x600x8-bit color.
|Equipment determination. All subfunctions are required.
If there are devices that appear as floppy drives (for example, El Torito-capable CD-ROM devices), then:
If there are no devices that appear as floppy drives, then:
|High-capacity drive support. All subfunctions required, including AH = 40h-48h.
ROM BIOS must set the head settle, motor start, and format gap values in the disk table pointed to by interrupt vector 1Eh.
Implement the INT 13h AH = 17h call (that is, set the DASD type for format).
Support the change line (INT 13h AH = 15h) on INT 13h floppy drives.
Support INT 13h AH = 8 (Get Device Parameters). The INT 13h AH = 8 Get Device Parameters call must not turn on the drive motor for floppy drives.
Implement the extended INT 13h services (AH functions 41h – 48h).
For INT 13h with AH = 48h for installed floppy drives:
The INT 13h AH = 8 Get Device Parameters call must not turn on the drive motor for floppy drives.
|The following subfunctions are required:
|The following subfunctions are required:
|Bootstrap loader. All subfunctions are required.
|The following subfunctions are required:
|CTRL+C, CTRL+Break Handler
Men’s Kansas City Chiefs Nike Red Hypercool Fitted Performance T-Shirt,Houston Texans Preschool Girls Cheer Jumper Set – Navy Blue/White Arizona Cardinals Jerseys Sale.Coleman Detroit Lions 24-Can Cooler,Men’s New York Giants Nike Royal Blue Legend Icon Performance T-Shirt Cheap Arizona Cardinals Football Jerseys For Sale.Men’s New England Patriots Mitchell & Ness Navy Rushing Yards Sweatshirt,Men’s Denver Broncos New Era Orange The League 9FORTY Adjustable Hat Cheap Arizona Cardinals Football Jerseys For Sale.Women’s Philadelphia Eagles Nike Midnight Green Let’s Turn It Up Tri-Blend T-Shirt,Mens Atlanta Falcons Pro Line Charcoal Lightweight Full Zip Hooded Big & Tall Jacket,Women’s Houston Texans Charm Stainless Steel Watch.New York Jets Preschool Rash Guard – White/Green,New York Jets Newborn Creeper, Bib & Bootie Set,Men’s Seattle Seahawks Nike Charcoal Stadium Touch Hooded Performance Long Sleeve T-Shirt.Pro Line Baltimore Ravens Retro Badge Hoodie,Denver Broncos 13″ Wreath http://www.cheap-arizona-cardinals-jerseys.com.Women’s New York Giants Royal Blue Vertical Stripe Socks,Women’s Philadelphia Eagles Concepts Sport Black Dynamic Knit Panties Arizona Cardinals Jerseys Sale.Men’s New Orleans Saints G-III Sports by Carl Banks White Center Field Swim Trunks,Baltimore Ravens Infant Girls Jumper Turtleneck Cheer Dress – Purple/White,Mens Houston Texans Case Keenum Nike Navy Blue Game Jersey
The INT 9 handler required in the BIOS is exactly the same as that which is required in systems that contain legacy components. This handler is not intended for use during the boot process, it is available to help support legacy applications running in Microsoft MS-DOS® Virtual Machines (MS-DOS®-boxes).
For backward compatibility with MS-DOS® applications, Windows® Me implements a complete “Virtual” keyboard controller and passes all keyboard traffic through it regardless of whether it is from a real keyboard controller or a USB keyboard. This allows both Win16 applications and MS-DOS® applications to continue to function. In order to support legacy applications in MS-DOS® Virtual Machines, the command interpreter must behave the same as on a legacy system, which requires the full INT 9 support provided by legacy systems. This handler handles input from port 60h, passes it off to INT 15h / AH= 4Fh, stores the data in the keyboard buffer of the BIOS Data Area, and updates the flags. The following provides reference code for the required capabilities:
push es push ds push a push f mov ax, 40h mov es,ax mov ax, mov ds,ax xor bx, bx in al, 60h mov ah, 4Fh int 15h jnc SkipProcess mov bl,al shl ax, 8 mov al, ds:[bx] mov bx, es:1ah mov es:[bx] inc bx inc bx mov es:1ah, bx mov al, 61h out 20h, al SkipProcess: popf popa pop ds pop es iret
Function 4Fh is expected to pass ALL keys from the keyboard, and respect the status of the carry flag on return. The HID key codes from USB keyboards must be translated to PS/2 key codes for backward compatibility with other key filters. All keyboards must be supported, including-but not limited to-101/102 key English, 105 key European, 106 and 109 key Japanese. HID to PS/2 translation tables are available at: Key Support, Keyboard Scan Codes, and Windows.
Windows expects the INT 16h interface to support the sparsely-documented feature of updating the keyboard controller directly with the LED status. Windows will trap this access and direct the update to the correct components.
Notice: Windows® 95, Windows® 98, Windows® NT, Windows® 2000, Windows® XP and Microsoft® Office are registered trademarks or trademarks of the Microsoft Corporation.
All other trademarks are the property of their respective owners.