Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the effect of STARTUP IPI on Application Processor?

I am right now trying to understand the booting procedure and how does the processors initializes. I have read the Multiprocessor Specification section B.4.2 but it is not clear to me what INIT IPI and STARTUP IPI does to the BSP and AP.

like image 622
ashish Avatar asked Oct 17 '16 10:10

ashish


1 Answers

In general; INIT IPI is like a soft reset for the (logical) CPU, that puts it into a "wait for SIPI state". The Intel manuals have a table showing the default values of various registers after power on, after reset, and after INIT IPI.

The Startup IPI is a way to tell the CPU to start executing at a certain address (an address derived from the "vector field" of the Startup IPI) before a usable IDT can be set up. This also bumps the CPU out of the "wait for SIPI state". Some (most) CPUs will respond to a Startup IPI when they aren't in the "wait for SIPI state", but without a previous INIT IPI you can't expect the CPU to be in a known/safe state at the time.

All CPUs respond to INIT IPI and Startup IPI the same. The main difference between BSP and AP is during power on (BSP executes firmware while AP CPUs wait).

like image 88
Brendan Avatar answered Dec 21 '22 12:12

Brendan