x86: mp_init: Switch parameter names in start_aps()
These parameters are named differently from elsewhere in this file. Switch them to avoid confusion. Also add comments to this function. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Wolfgang Wallner <wolfgang.wallner@br-automation.com>
This commit is contained in:
parent
e624858407
commit
3a5752ccff
@ -308,13 +308,26 @@ static int apic_wait_timeout(int total_delay, const char *msg)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int start_aps(int ap_count, atomic_t *num_aps)
|
||||
/**
|
||||
* start_aps() - Start up the APs and count how many we find
|
||||
*
|
||||
* This is called on the boot processor to start up all the other processors
|
||||
* (here called APs).
|
||||
*
|
||||
* @num_aps: Number of APs we expect to find
|
||||
* @ap_count: Initially zero. Incremented by this function for each AP found
|
||||
* @return 0 if all APs were set up correctly or there are none to set up,
|
||||
* -ENOSPC if the SIPI vector is too high in memory,
|
||||
* -ETIMEDOUT if the ICR is busy or the second SIPI fails to complete
|
||||
* -EIO if not all APs check in correctly
|
||||
*/
|
||||
static int start_aps(int num_aps, atomic_t *ap_count)
|
||||
{
|
||||
int sipi_vector;
|
||||
/* Max location is 4KiB below 1MiB */
|
||||
const int max_vector_loc = ((1 << 20) - (1 << 12)) >> 12;
|
||||
|
||||
if (ap_count == 0)
|
||||
if (num_aps == 0)
|
||||
return 0;
|
||||
|
||||
/* The vector is sent as a 4k aligned address in one byte */
|
||||
@ -326,7 +339,7 @@ static int start_aps(int ap_count, atomic_t *num_aps)
|
||||
return -ENOSPC;
|
||||
}
|
||||
|
||||
debug("Attempting to start %d APs\n", ap_count);
|
||||
debug("Attempting to start %d APs\n", num_aps);
|
||||
|
||||
if (apic_wait_timeout(1000, "ICR not to be busy"))
|
||||
return -ETIMEDOUT;
|
||||
@ -349,7 +362,7 @@ static int start_aps(int ap_count, atomic_t *num_aps)
|
||||
return -ETIMEDOUT;
|
||||
|
||||
/* Wait for CPUs to check in up to 200 us */
|
||||
wait_for_aps(num_aps, ap_count, 200, 15);
|
||||
wait_for_aps(ap_count, num_aps, 200, 15);
|
||||
|
||||
/* Send 2nd SIPI */
|
||||
if (apic_wait_timeout(1000, "ICR not to be busy"))
|
||||
@ -362,9 +375,9 @@ static int start_aps(int ap_count, atomic_t *num_aps)
|
||||
return -ETIMEDOUT;
|
||||
|
||||
/* Wait for CPUs to check in */
|
||||
if (wait_for_aps(num_aps, ap_count, 10000, 50)) {
|
||||
if (wait_for_aps(ap_count, num_aps, 10000, 50)) {
|
||||
debug("Not all APs checked in: %d/%d\n",
|
||||
atomic_read(num_aps), ap_count);
|
||||
atomic_read(ap_count), num_aps);
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user