MIPSII and MIPSIV Kernel (Windows CE 5.0)
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.
The following table shows the MIPS-based BSPs and source file locations included in Platform Builder for which the StartUp function is specified.
BSP | Source file |
---|---|
NEC Solution Gear 2-Vr5500 | %_WINCEROOT%\Platform\SG2_VR5500\Src\Kernel\OAL |
NEC Solution Gear 2-Vr4131 | %_WINCEROOT%\Platform\SG2_VR4131\Src\Kernel\OAL |
AMD DBAu1500 | %_WINCEROOT%\Platform\DBAU1500\Src\Kernel\OAL |
AMD DBAu1100 | %_WINCEROOT%\Platform\DBAU1100\Src\Kernel\OAL |
AMD DBAu1000 | %_WINCEROOT%\Platform\DBAU1000\Src\Kernel\OAL |
Broadcom BCM91101 | %_WINCEROOT%\Platform\BCM91101SP\Src\Kernel\OAL |
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
- Set up 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 noncacheable.
See Also
CPU Initialization | OAL StartUp Function Implementation
Send Feedback on this topic to the authors