Author: bdragon
Date: Wed Sep 23 00:32:50 2020
New Revision: 366041
URL: https://svnweb.freebsd.org/changeset/base/366041

Log:
  [PowerPC64LE] powernv ILE setup code.
  
  When running without a hypervisor, we need to set the ILE bit in the LPCR
  ourselves.
  
  For the boot processor, handle it in powernv_attach() like we do for other
  LPCR bits.
  
  No change for the APs, as they will use the lpcr global to set up their own
  LPCR when they do their own cpudep_ap_early_bootstrap() and pick up this
  automatically.
  
  Sponsored by: Tag1 Consulting, Inc.

Modified:
  head/sys/powerpc/include/spr.h
  head/sys/powerpc/powernv/platform_powernv.c

Modified: head/sys/powerpc/include/spr.h
==============================================================================
--- head/sys/powerpc/include/spr.h      Wed Sep 23 00:28:47 2020        
(r366040)
+++ head/sys/powerpc/include/spr.h      Wed Sep 23 00:32:50 2020        
(r366041)
@@ -292,6 +292,7 @@
 #define        SPR_LPCR                0x13e   /* .6. Logical Partitioning 
Control */
 #define          LPCR_LPES               0x008 /* Bit 60 */
 #define          LPCR_HVICE              0x002 /* Hypervisor Virtualization 
Interrupt (Arch 3.0) */
+#define          LPCR_ILE                (1ULL << 25) /* Interrupt 
Little-Endian (ISA 2.07) */
 #define          LPCR_UPRT               (1ULL << 22) /* Use Process Table 
(ISA 3) */
 #define          LPCR_HR                 (1ULL << 20) /* Host Radix mode */
 #define          LPCR_PECE_DRBL          (1ULL << 16) /* Directed Privileged 
Doorbell */

Modified: head/sys/powerpc/powernv/platform_powernv.c
==============================================================================
--- head/sys/powerpc/powernv/platform_powernv.c Wed Sep 23 00:28:47 2020        
(r366040)
+++ head/sys/powerpc/powernv/platform_powernv.c Wed Sep 23 00:32:50 2020        
(r366041)
@@ -174,6 +174,10 @@ powernv_attach(platform_t plat)
        if (cpu_features2 & PPC_FEATURE2_ARCH_3_00)
                lpcr |= LPCR_HVICE;
 
+#if BYTE_ORDER == LITTLE_ENDIAN
+       lpcr |= LPCR_ILE;
+#endif
+
        mtspr(SPR_LPCR, lpcr);
        isync();
 
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to