SMP Porting Checklist - A53 *4 as reference

I have some quesions about this check list:

  1. About point 4 and 9
    The implement of portSET_INTERRUPT_MASK() and portSET_INTERRUPT_MASK_FROM_ISR() seems to be the same. They also read primask and disable irq, what is the difference between them? In last smp version v202110, portSET_INTERRUPT_MASK_FROM_ISR() should call vTaskEnterCritical(), isn’t it necessary in this version?

  2. About point 14
    vTaskSwitchContext now takes core ID as parameter to switch context of the core ID in pxCurrentTCBs.
    vTaskSwitchContext( xCoreID ) will change pxCurrentTCBs[xCoreID]. Does it mean a core can change the running task on another core? In my understanding, vTaskSwitchContext() is called when the core needs to do context switch after a interrupt and only switch the context in inself.