x86 ROM Boot Loader Porting to Other x86 Hardware Platforms (Windows Embedded CE 6.0)
1/5/2010
The minimum changes required to add support for a new x86 hardware platform are listed in the following tables. Other changes might be required based on the chosen hardware platform.
The following table shows the functions, listed in the calling order, which need to be implemented for the new hardware 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 hardware 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 hardware platform download and debug Ethernet card NIC.
Boot.bib should be reviewed against the new hardware platform's memory configuration. The sources file might also need to be updated to include the new hardware platform library.