pussuw commented on code in PR #5985:
URL: https://github.com/apache/incubator-nuttx/pull/5985#discussion_r844745683


##########
arch/risc-v/src/common/riscv_macros.S:
##########
@@ -128,3 +133,22 @@
   REGLOAD    x31, REG_X31(\out)  /* t6 */
 
 .endm
+
+#if CONFIG_ARCH_INTERRUPTSTACK > 15
+.macro  setintstack tmp0, tmp1
+#ifndef CONFIG_ARCH_USE_SMODE
+#if CONFIG_SMP_NCPUS > 1
+  csrr    \tmp0, mhartid

Review Comment:
   This code is also IMO wrong but the original code was not made by me. The 
problem is that SMP cpu index is not the same has the physical hart ID. And we 
do need both.
   
   - CPU id is an incrementing number between 0...SMP_CPUS-1, needed e.g. for 
calculating the IRQ stack position
   - hartid is the physical core number, needed for external interrupt handling 
(PLIC) at least



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to