58 | | * step 0 : processor[0][0][0] makes kernel_heap[x][y] array and kernel fat initialisation. |
59 | | * step 1 : each processor get its scheduler virtual address from CP0_SCHED register and contributes to _schedulers[x][y][p] array initialisation. |
60 | | * step 2 : each processor loops on all allocated tasks to build the _ptabs_vaddr[vspace] & _ptabs_ptprs[vspace] arrays from the tasks contexts. |
61 | | * step 3 : each processor computes and set the XCU masks, as specified in the HWI, PTI, and WTI interrupt vectors. |
62 | | * step 4 : each processor starts its TICK timer if it has at least one task allocated. |
63 | | * step 5 : each processor updates the idle_task context (CTX_SP, CTX_RA, CTX_EPC). |
64 | | * step 6 : when all processors reach the synchronisation barrier, each processor set registers SP, SR, PTPR, EPC, with the values corresponding to the first allocated task, and jump to user code. |
| 58 | * '''step 0''' : processor[0][0][0] makes kernel_heap[x][y] array and kernel fat initialisation. |
| 59 | * '''step 1''' : each processor get its scheduler virtual address from CP0_SCHED register and contributes to _schedulers[x][y][p] array initialisation. |
| 60 | * '''step 2''' : each processor loops on all allocated tasks to build the _ptabs_vaddr[vspace] & _ptabs_ptprs[vspace] arrays from the tasks contexts. |
| 61 | * '''step 3''' : each processor computes and set the XCU masks, as specified in the HWI, PTI, and WTI interrupt vectors. |
| 62 | * '''step 4''' : each processor starts its TICK timer if it has at least one task allocated. |
| 63 | * '''step 5''' : each processor updates the idle_task context (CTX_SP, CTX_RA, CTX_EPC). |
| 64 | * '''step 6''' : when all processors reach the synchronisation barrier, each processor set registers SP, SR, PTPR, EPC, with the values corresponding to the first allocated task, and jump to user code. |