<font size=2 face="sans-serif">According to the GCC sources, ISEL is enabled
by default for the 8540, 8548, e500mc, e500mc64, e6500 processors.</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">From:</font>
<td><font size=1 face="sans-serif">Nishanth Aravamudan <nacc@linux.vnet.ibm.com></font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">To:</font>
<td><font size=1 face="sans-serif">benh@kernel.crashing.org, </font>
<tr>
<td valign=top><font size=1 color=#5f5f5f face="sans-serif">Cc:</font>
<td><font size=1 face="sans-serif">Steve Munroe/Rochester/IBM@IBMUS, Peter
Bergner/Rochester/IBM@IBMUS, Michael R Meissner/Cambridge/IBM@IBMUS, Michael
Neuling <michael.neuling@au1.ibm.com>, linuxppc-dev@lists.ozlabs.org,
Ryan Arnold/Rochester/IBM@IBMUS</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Date:</font>
<td><font size=1 face="sans-serif">05/03/2013 07:19 PM</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Subject:</font>
<td><font size=1 face="sans-serif">[PATCH] arch/powerpc: advertise ISA2.07,
HTM, DSCR, EBB and ISEL bits in HWCAP2</font></table>
<br>
<hr noshade>
<br>
<br>
<br><tt><font size=2>Now that we have AT_HWCAP2 support, start exposing
some of the new<br>
POWER8 features via it.<br>
<br>
Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com><br>
<br>
---<br>
Note: there are, I think, some Freescale processors that also should be<br>
updated to indicate they support ISEL, but I don't know which ones.<br>
Since this is a new feature bit (and vector), it seems like we can fix<br>
that up in a follow-on patch. Also, this is my first patch trying to<br>
manipulate these bits, so please let me know if I'm doing something<br>
wrong (for instance, I don't see any particular order to the bits in<br>
PPC_FEATURE_*)<br>
<br>
diff --git a/arch/powerpc/include/uapi/asm/cputable.h b/arch/powerpc/include/uapi/asm/cputable.h<br>
index ed9dd81..78db4e2 100644<br>
--- a/arch/powerpc/include/uapi/asm/cputable.h<br>
+++ b/arch/powerpc/include/uapi/asm/cputable.h<br>
@@ -1,6 +1,7 @@<br>
 #ifndef _UAPI__ASM_POWERPC_CPUTABLE_H<br>
 #define _UAPI__ASM_POWERPC_CPUTABLE_H<br>
 <br>
+/* in AT_HWCAP */<br>
 #define PPC_FEATURE_32            
               
               
      0x80000000<br>
 #define PPC_FEATURE_64            
               
               
      0x40000000<br>
 #define PPC_FEATURE_601_INSTR          
               
       0x20000000<br>
@@ -33,4 +34,11 @@<br>
 #define PPC_FEATURE_TRUE_LE          
               
       0x00000002<br>
 #define PPC_FEATURE_PPC_LE          
               
       0x00000001<br>
 <br>
+/* in AT_HWCAP2 */<br>
+#define PPC_FEATURE2_ARCH_2_07          
               
       0x80000000<br>
+#define PPC_FEATURE2_HTM            
               
     0x40000000<br>
+#define PPC_FEATURE2_DSCR            
               
     0x20000000<br>
+#define PPC_FEATURE2_EBB            
               
     0x10000000<br>
+#define PPC_FEATURE2_ISEL            
               
     0x08000000<br>
+<br>
 #endif /* _UAPI__ASM_POWERPC_CPUTABLE_H */<br>
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c<br>
index ae9f433..871c741 100644<br>
--- a/arch/powerpc/kernel/cputable.c<br>
+++ b/arch/powerpc/kernel/cputable.c<br>
@@ -102,6 +102,9 @@ extern void __restore_cpu_e6500(void);<br>
                  
               
                 
               
 PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP | \<br>
                  
               
                 
               
 PPC_FEATURE_TRUE_LE | \<br>
                  
               
                 
               
 PPC_FEATURE_PSERIES_PERFMON_COMPAT)<br>
+#define COMMON_USER2_POWER8          
      (PPC_FEATURE2_ARCH_2_07 | PPC_FEATURE2_HTM
| \<br>
+                
                 
               
                 
PPC_FEATURE2_DSCR | PPC_FEATURE2_EBB | \<br>
+                
                 
               
                 
PPC_FEATURE2_ISEL)<br>
 #define COMMON_USER_PA6T            
    (COMMON_USER_PPC64 | PPC_FEATURE_PA6T |\<br>
                  
               
                 
               
 PPC_FEATURE_TRUE_LE | \<br>
                  
               
                 
               
 PPC_FEATURE_HAS_ALTIVEC_COMP)<br>
@@ -443,6 +446,7 @@ static struct cpu_spec __initdata cpu_specs[] = {<br>
                  
               
.cpu_name                
                 =
"POWER8 (architected)",<br>
                  
               
.cpu_features              
               
   = CPU_FTRS_POWER8,<br>
                  
               
.cpu_user_features              
  = COMMON_USER_POWER8,<br>
+                
                 .cpu_user_features2
               
= COMMON_USER2_POWER8,<br>
                  
               
.mmu_features              
               
   = MMU_FTRS_POWER8,<br>
                  
               
.icache_bsize              
               
   = 128,<br>
                  
               
.dcache_bsize              
               
   = 128,<br>
@@ -492,6 +496,7 @@ static struct cpu_spec __initdata cpu_specs[] = {<br>
                  
               
.cpu_name                
                 =
"POWER8 (raw)",<br>
                  
               
.cpu_features              
               
   = CPU_FTRS_POWER8,<br>
                  
               
.cpu_user_features              
  = COMMON_USER_POWER8,<br>
+                
                 .cpu_user_features2
               
= COMMON_USER2_POWER8,<br>
                  
               
.mmu_features              
               
   = MMU_FTRS_POWER8,<br>
                  
               
.icache_bsize              
               
   = 128,<br>
                  
               
.dcache_bsize              
               
   = 128,<br>
</font></tt>
<br>
<br>