MIPSII and MIPSIV Kernel
Before control is transferred to the kernel, the boot loader calls the StartUp routine to put the CPU into an initialized state. OEMs may also have to perform additional SDB/CPU specific initializations as mentioned in the user manual. Platform Builder ships with two MIPS-based BSP for which the StartUp function is specified in the source file directories in the following table.
BSP | Source file |
---|---|
NEC Solution Gear 2 (Rockhopper) | %_WINCEROOT%\Platform\SG2_VR5500\Kernel\Hal\MIPS |
NEC DDB-Vr4122 (Eagle) | %_WINCEROOT%\Platform\Eagle\Kernel\Hal\MIPS |
OEMs developing for the MIPS processor using the MIPS kernel should perform the following tasks:
- Set the CPU to run in uncached mode
- Clear watch registers
- Setup configuration registers
- Set BCU registers
- Initialize and invalidate the CPU cache
- Clear the HAL timer
- Initialize memory controllers, if necessary
After the final step, StartUp must call KernelStart to allow the kernel to initialize. The function address for KernelStart should preferably be an uncached and unmapped addressed in kernel segment 1 (kseg1). Kseg1 is an address range defined in the MIPS architecture and has the following specific access characteristics: the CPU should be in kernel mode, there are no TLB mappings, and the address range is non-cacheable.
See Also
CPU Initialization | OAL StartUp Function Implementation
Last updated on Wednesday, April 13, 2005
© 2005 Microsoft Corporation. All rights reserved.