HV: Kconfig: Remove CPU_UP_TIMEOUT

This patch remove the over design CPU_UP_TIMEOUT and
use CPU_UP_TIMEOUT and CPU_DOWN_TIMEOUT instead.

Tracked-On: #2991
Signed-off-by: Kaige Fu <kaige.fu@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
Kaige Fu 2019-04-18 14:33:42 +00:00 committed by wenlingz
parent 565f3c723a
commit cfe8637cc1
2 changed files with 5 additions and 10 deletions

View File

@ -107,14 +107,6 @@ config LOG_DESTINATION
are 3 destinations available. Bit 0 represents the serial console, bit are 3 destinations available. Bit 0 represents the serial console, bit
1 the SOS ACRN log and bit 2 NPK log. Effective only in debug builds. 1 the SOS ACRN log and bit 2 NPK log. Effective only in debug builds.
config CPU_UP_TIMEOUT
int "Timeout in ms when bringing up secondary CPUs"
range 100 200
default 100
help
A 32-bit integer specifying the timeout in millisecond when waiting
for secondary CPUs to start up.
choice choice
prompt "Serial IO type" prompt "Serial IO type"
depends on !RELEASE depends on !RELEASE

View File

@ -27,6 +27,9 @@
#include <cat.h> #include <cat.h>
#include <firmware.h> #include <firmware.h>
#define CPU_UP_TIMEOUT 100U /* millisecond */
#define CPU_DOWN_TIMEOUT 100U /* millisecond */
struct per_cpu_region per_cpu_data[CONFIG_MAX_PCPU_NUM] __aligned(PAGE_SIZE); struct per_cpu_region per_cpu_data[CONFIG_MAX_PCPU_NUM] __aligned(PAGE_SIZE);
static uint16_t phys_cpu_num = 0U; static uint16_t phys_cpu_num = 0U;
static uint64_t pcpu_sync = 0UL; static uint64_t pcpu_sync = 0UL;
@ -273,7 +276,7 @@ static void start_cpu(uint16_t pcpu_id)
/* Wait until the pcpu with pcpu_id is running and set the active bitmap or /* Wait until the pcpu with pcpu_id is running and set the active bitmap or
* configured time-out has expired * configured time-out has expired
*/ */
timeout = (uint32_t)CONFIG_CPU_UP_TIMEOUT * 1000U; timeout = CPU_UP_TIMEOUT * 1000U;
while (!is_pcpu_active(pcpu_id) && (timeout != 0U)) { while (!is_pcpu_active(pcpu_id) && (timeout != 0U)) {
/* Delay 10us */ /* Delay 10us */
udelay(10U); udelay(10U);
@ -317,7 +320,6 @@ void stop_cpus(void)
uint16_t pcpu_id, expected_up; uint16_t pcpu_id, expected_up;
uint32_t timeout; uint32_t timeout;
timeout = (uint32_t)CONFIG_CPU_UP_TIMEOUT * 1000U;
for (pcpu_id = 0U; pcpu_id < phys_cpu_num; pcpu_id++) { for (pcpu_id = 0U; pcpu_id < phys_cpu_num; pcpu_id++) {
if (get_cpu_id() == pcpu_id) { /* avoid offline itself */ if (get_cpu_id() == pcpu_id) { /* avoid offline itself */
continue; continue;
@ -327,6 +329,7 @@ void stop_cpus(void)
} }
expected_up = 1U; expected_up = 1U;
timeout = CPU_DOWN_TIMEOUT * 1000U;
while ((atomic_load16(&up_count) != expected_up) && (timeout != 0U)) { while ((atomic_load16(&up_count) != expected_up) && (timeout != 0U)) {
/* Delay 10us */ /* Delay 10us */
udelay(10U); udelay(10U);