OS/2 Initialization

OS/2 requires a PSD for system initialization. The system will display an error message if a valid PSD for the current platform cannot be installed.

The following is a list of steps, in the order in which they occur, that are executed after a PSD is installed. If any step does not complete successfully, the system initialization process will stop, and a fatal error message will be displayed.

  • After a PSD is successfully installed, its Init function is invoked. This function is used to allocate and initialize any resources that the PSD may require, as well as initializing the state of the hardware.

  • The kernel determines the number of usable processors on the current platform by using the PSD_GET_NUM_OF_PROCS function.

  • The kernel allocates all resources required to support the additional processors. This step determines what to allocate based on the results of the previous step.

  • The PSD's processor initialization function is invoked on the current processor (CPU0).

  • An MP daemon is created for CPU0. An MP daemon is a thread that never goes away, which is used for MP operations by a specific processor.

  • An MP daemon is created for the next logical processor.

  • The PSD's start processor call is invoked to start the next logical processor. The PSD should only start the specified processor, and then return (see the PSD_START_PROC function for more detail). The started processor will spin in a tight loop waiting for a variable to be cleared. This variable is referred to as the processor initialization real mode spinlock.

  • Upon return from the PSD's start processor call, the processor initialization real mode spinlock is cleared.

  • CPU0 will spin in a tight loop waiting for a variable to be cleared. This variable is referred to as the CPU0 spinlock.

    10.

    11. 12. 13. 14. 15. 16. 17. 18. 19. 20.


    [Back: Platform Specific Driver Architecture and Structure]
    [Next: PSD Function Glossary]