target/openrisc: add numcores and coreid support
authorStafford Horne <shorne@gmail.com>
Fri, 14 Apr 2017 22:25:32 +0000 (07:25 +0900)
committerStafford Horne <shorne@gmail.com>
Thu, 4 May 2017 00:39:01 +0000 (09:39 +0900)
These are used to identify the processor in SMP system.  Their
definition has been defined in verilog cores but it not yet part of the
spec but it will be soon.

The proposal for this is available:
  https://openrisc.io/proposals/core-identifier-and-number-of-cores

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Stafford Horne <shorne@gmail.com>
target/openrisc/sys_helper.c

index 6ba816249b39d7e3fd39349659bdef8d002c013c..e13666bea0a869af4bf54ba8d0793776a9872472 100644 (file)
@@ -233,6 +233,12 @@ target_ulong HELPER(mfspr)(CPUOpenRISCState *env,
     case TO_SPR(0, 64): /* ESR */
         return env->esr;
 
+    case TO_SPR(0, 128): /* COREID */
+        return 0;
+
+    case TO_SPR(0, 129): /* NUMCORES */
+        return 1;
+
     case TO_SPR(1, 512) ... TO_SPR(1, 512+DTLB_SIZE-1): /* DTLBW0MR 0-127 */
         idx = spr - TO_SPR(1, 512);
         return env->tlb->dtlb[0][idx].mr;