x86 ROM Boot Loader Porting to Other x86 Platforms

The following tables show the minimum changes that are required to add support for a new x86 platform. Other changes may be required based on the chosen platform.

  • The following table shows the functions, listed in the calling order, which need to be implemented for the new platform.
    Function Description
    BridgeConfig Required. This function performs the initial northbridge configuration, setting up the host bridge registers, programming the SDRAM controller, and so on. The microprocessor executes in protected mode at this point and the stack is available.
    BridgePrintConfig Required. This function optionally displays bridge configuration information.
    PlatformInit Required. This function performs any southbridge, super I/O, and ancillary platform configuration.
  • The following table shows the global variables that need to be defined to support the PCI enumeration process. The global variables define the valid range of memory and I/O address available to the enumerator for assignment to PCI functions.
    Global variable Description
    ULONG g_nPCI_BUS0_MEM_BASE Base memory space address.
    ULONG g_nPCI_BUS0_MEM_LIMIT Limit memory space address.
    ULONG g_nPCI_BUS0_IO_BASE Base I/O space address.
    ULONG g_nPCI_BUS0_IO_LIMIT Limit I/O space address.
  • The network adapter type, defined in the boot arguments, and shared memory between the loader and the OS, in function InitBootArgs, should be updated to accurately reflect the platform download and debug Ethernet card NIC.
  • Boot.bib should be reviewed against the new platform's memory configuration. The sources file may also need to be updated to include the new platform library.

See Also

x86 ROM Boot Loader

Last updated on Wednesday, April 13, 2005

© 2005 Microsoft Corporation. All rights reserved.