diff --git a/arch/sim/src/up_simsmp.c b/arch/sim/src/up_simsmp.c index 306cab05ef..73aaa98283 100644 --- a/arch/sim/src/up_simsmp.c +++ b/arch/sim/src/up_simsmp.c @@ -183,9 +183,13 @@ int up_cpundx(void) * initialization of the OS, just before beginning normal multitasking, * the additional CPUs would be started by calling this function. * - * Each CPU is provided the entry point to is IDLE task when started. The - * OS initialization logic calls this function repeatedly until each CPU - * has been started. + * Each CPU is provided the entry point to is IDLE task when started. A + * TCB for each CPU's IDLE task has been initialized and placed in the + * CPU's g_assignedtasks[cpu] list. Not stack has been alloced or + * initialized. + * + * The OS initialization logic calls this function repeatedly until each + * CPU has been started, 1 through (CONFIG_SMP_NCPUS-1). * * Input Parameters: * cpu - The index of the CPU being started. This will be a numeric diff --git a/arch/sim/src/up_simuart.c b/arch/sim/src/up_simuart.c index 5e3518f322..777dc32e15 100644 --- a/arch/sim/src/up_simuart.c +++ b/arch/sim/src/up_simuart.c @@ -139,7 +139,7 @@ static void *simuart_thread(void *arg) /* Check for failures (but don't do anything) */ - for (; nread > 0; nread--) + if (nread == 1) { #ifdef CONFIG_SIM_UART_DATAPOST sched_lock();