Author: cognet
Date: Fri Nov 18 23:48:20 2016
New Revision: 308818
URL: https://svnweb.freebsd.org/changeset/base/308818

Log:
  Guess the TI chip based on the PLATFORM infos, instead of relying on the
  kernel config file.

Modified:
  head/sys/arm/ti/ti_cpuid.h
  head/sys/arm/ti/ti_machdep.c

Modified: head/sys/arm/ti/ti_cpuid.h
==============================================================================
--- head/sys/arm/ti/ti_cpuid.h  Fri Nov 18 22:59:33 2016        (r308817)
+++ head/sys/arm/ti/ti_cpuid.h  Fri Nov 18 23:48:20 2016        (r308818)
@@ -70,15 +70,12 @@
 #define        CHIP_OMAP_4     0
 #define        CHIP_AM335X     1
 
+extern int _ti_chip;
+
 static __inline int ti_chip(void)
 {
-#if defined(SOC_OMAP4)
-       return CHIP_OMAP_4;
-#elif defined(SOC_TI_AM335X)
-       return CHIP_AM335X;
-#else
-#  error Chip type not defined, ensure SOC_xxxx is defined
-#endif
+       KASSERT(_ti_chip != -1, ("Can't determine TI Chip"));
+       return _ti_chip;
 }
 
 uint32_t ti_revision(void);

Modified: head/sys/arm/ti/ti_machdep.c
==============================================================================
--- head/sys/arm/ti/ti_machdep.c        Fri Nov 18 22:59:33 2016        
(r308817)
+++ head/sys/arm/ti/ti_machdep.c        Fri Nov 18 23:48:20 2016        
(r308818)
@@ -54,11 +54,32 @@ __FBSDID("$FreeBSD$");
 
 #include <arm/ti/omap4/omap4_reg.h>
 #include <arm/ti/omap4/omap4_mp.h>
+#include <arm/ti/ti_cpuid.h>
 
 #include "platform_if.h"
 
 void (*ti_cpu_reset)(void) = NULL;
 
+int _ti_chip = -1;
+
+#if defined(SOC_OMAP4)
+static int
+omap4_attach(platform_t plat)
+{
+       _ti_chip = CHIP_OMAP_4;
+       return (0);
+}
+#endif
+
+#if defined(SOC_TI_AM335X)
+static int
+ti_am335x_attach(platform_t plat)
+{
+       _ti_chip = CHIP_AM335X;
+       return (0);
+}
+#endif
+
 static vm_offset_t
 ti_lastaddr(platform_t plat)
 {
@@ -107,6 +128,7 @@ ti_plat_cpu_reset(platform_t plat)
 
 #if defined(SOC_OMAP4)
 static platform_method_t omap4_methods[] = {
+       PLATFORMMETHOD(platform_attach,         omap4_attach),
        PLATFORMMETHOD(platform_devmap_init,    ti_omap4_devmap_init),
        PLATFORMMETHOD(platform_lastaddr,       ti_lastaddr),
        PLATFORMMETHOD(platform_cpu_reset,      ti_plat_cpu_reset),
@@ -122,6 +144,7 @@ FDT_PLATFORM_DEF(omap4, "omap4", 0, "ti,
 
 #if defined(SOC_TI_AM335X)
 static platform_method_t am335x_methods[] = {
+       PLATFORMMETHOD(platform_attach,         ti_am335x_attach),
        PLATFORMMETHOD(platform_devmap_init,    ti_am335x_devmap_init),
        PLATFORMMETHOD(platform_lastaddr,       ti_lastaddr),
        PLATFORMMETHOD(platform_cpu_reset,      ti_plat_cpu_reset),
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to