svn commit: r314395 - in head/sys: arm/altera/socfpga arm/conf conf

Ruslan Bukin br at FreeBSD.org
Tue Feb 28 16:20:35 UTC 2017


Author: br
Date: Tue Feb 28 16:20:33 2017
New Revision: 314395
URL: https://svnweb.freebsd.org/changeset/base/314395

Log:
  Add SOC_ALTERA_* kernel options per each SoC and use it to
  conditionally compile the code.
  
  Reviewed by:	andrew
  Sponsored by:	DARPA, AFRL
  Differential Revision:	https://reviews.freebsd.org/D9836

Modified:
  head/sys/arm/altera/socfpga/socfpga_machdep.c
  head/sys/arm/altera/socfpga/socfpga_mp.c
  head/sys/arm/conf/SOCFPGA
  head/sys/conf/options.arm

Modified: head/sys/arm/altera/socfpga/socfpga_machdep.c
==============================================================================
--- head/sys/arm/altera/socfpga/socfpga_machdep.c	Tue Feb 28 15:44:21 2017	(r314394)
+++ head/sys/arm/altera/socfpga/socfpga_machdep.c	Tue Feb 28 16:20:33 2017	(r314395)
@@ -54,6 +54,7 @@ __FBSDID("$FreeBSD$");
 
 #include "platform_if.h"
 
+#if defined(SOC_ALTERA_CYCLONE5)
 static int
 socfpga_devmap_init(platform_t plat)
 {
@@ -82,7 +83,9 @@ socfpga_devmap_init(platform_t plat)
 
 	return (0);
 }
+#endif
 
+#if defined(SOC_ALTERA_ARRIA10)
 static int
 socfpga_a10_devmap_init(platform_t plat)
 {
@@ -101,9 +104,10 @@ socfpga_a10_devmap_init(platform_t plat)
 
 	return (0);
 }
+#endif
 
 static void
-_socfpga_cpu_reset(platform_t plat, uint32_t reg)
+_socfpga_cpu_reset(bus_size_t reg)
 {
 	uint32_t paddr;
 	bus_addr_t vaddr;
@@ -127,20 +131,25 @@ end:
 	while (1);
 }
 
+#if defined(SOC_ALTERA_CYCLONE5)
 static void
 socfpga_cpu_reset(platform_t plat)
 {
 
-	_socfpga_cpu_reset(plat, RSTMGR_CTRL);
+	_socfpga_cpu_reset(RSTMGR_CTRL);
 }
+#endif
 
+#if defined(SOC_ALTERA_ARRIA10)
 static void
 socfpga_a10_cpu_reset(platform_t plat)
 {
 
-	_socfpga_cpu_reset(plat, RSTMGR_A10_CTRL);
+	_socfpga_cpu_reset(RSTMGR_A10_CTRL);
 }
+#endif
 
+#if defined(SOC_ALTERA_CYCLONE5)
 static platform_method_t socfpga_methods[] = {
 	PLATFORMMETHOD(platform_devmap_init,	socfpga_devmap_init),
 	PLATFORMMETHOD(platform_cpu_reset,	socfpga_cpu_reset),
@@ -151,7 +160,9 @@ static platform_method_t socfpga_methods
 	PLATFORMMETHOD_END,
 };
 FDT_PLATFORM_DEF(socfpga, "socfpga", 0, "altr,socfpga-cyclone5", 200);
+#endif
 
+#if defined(SOC_ALTERA_ARRIA10)
 static platform_method_t socfpga_a10_methods[] = {
 	PLATFORMMETHOD(platform_devmap_init,	socfpga_a10_devmap_init),
 	PLATFORMMETHOD(platform_cpu_reset,	socfpga_a10_cpu_reset),
@@ -162,3 +173,4 @@ static platform_method_t socfpga_a10_met
 	PLATFORMMETHOD_END,
 };
 FDT_PLATFORM_DEF(socfpga_a10, "socfpga", 0, "altr,socfpga-arria10", 200);
+#endif

Modified: head/sys/arm/altera/socfpga/socfpga_mp.c
==============================================================================
--- head/sys/arm/altera/socfpga/socfpga_mp.c	Tue Feb 28 15:44:21 2017	(r314394)
+++ head/sys/arm/altera/socfpga/socfpga_mp.c	Tue Feb 28 16:20:33 2017	(r314395)
@@ -75,8 +75,8 @@ __FBSDID("$FreeBSD$");
 #define	RAM_PHYSBASE			0x0
 #define	RAM_SIZE			0x1000
 
-#define	SOCFPGA_SOCKIT			1
-#define	SOCFPGA_SOCDK			2
+#define	SOCFPGA_ARRIA10			1
+#define	SOCFPGA_CYCLONE5		2
 
 extern char	*mpentry_addr;
 static void	socfpga_trampoline(void);
@@ -112,22 +112,31 @@ socfpga_mp_setmaxid(platform_t plat)
 	mp_maxid = ncpu - 1;
 }
 
-
 static void
-_socfpga_mp_start_ap(platform_t plat, uint32_t platid)
+_socfpga_mp_start_ap(uint32_t platid)
 {
 	bus_space_handle_t scu, rst, ram;
 	int reg;
 
-	if (platid == SOCFPGA_SOCDK) {
+	switch (platid) {
+#if defined(SOC_ALTERA_ARRIA10)
+	case SOCFPGA_ARRIA10:
 		if (bus_space_map(fdtbus_bs_tag, SCU_PHYSBASE_A10,
 		    SCU_SIZE, 0, &scu) != 0)
-		panic("Couldn't map the SCU\n");
-	} else {
+			panic("Couldn't map the SCU\n");
+		break;
+#endif
+#if defined(SOC_ALTERA_CYCLONE5)
+	case SOCFPGA_CYCLONE5:
 		if (bus_space_map(fdtbus_bs_tag, SCU_PHYSBASE,
 		    SCU_SIZE, 0, &scu) != 0)
-		panic("Couldn't map the SCU\n");
+			panic("Couldn't map the SCU\n");
+		break;
+#endif
+	default:
+		panic("Unknown platform id %d\n", platid);
 	}
+
 	if (bus_space_map(fdtbus_bs_tag, RSTMGR_PHYSBASE,
 					RSTMGR_SIZE, 0, &rst) != 0)
 		panic("Couldn't map the reset manager (RSTMGR)\n");
@@ -149,12 +158,21 @@ _socfpga_mp_start_ap(platform_t plat, ui
 	bus_space_write_4(fdtbus_bs_tag, scu, SCU_DIAG_CONTROL, reg);
 
 	/* Put CPU1 to reset state */
-	if (platid == SOCFPGA_SOCDK) {
+	switch (platid) {
+#if defined(SOC_ALTERA_ARRIA10)
+	case SOCFPGA_ARRIA10:
 		bus_space_write_4(fdtbus_bs_tag, rst,
 		    RSTMGR_A10_MPUMODRST, MPUMODRST_CPU1);
-	} else {
+		break;
+#endif
+#if defined(SOC_ALTERA_CYCLONE5)
+	case SOCFPGA_CYCLONE5:
 		bus_space_write_4(fdtbus_bs_tag, rst,
 		    RSTMGR_MPUMODRST, MPUMODRST_CPU1);
+		break;
+#endif
+	default:
+		panic("Unknown platform id %d\n", platid);
 	}
 
 	/* Enable the SCU, then clean the cache on this core */
@@ -170,12 +188,21 @@ _socfpga_mp_start_ap(platform_t plat, ui
 	dcache_wbinv_poc_all();
 
 	/* Put CPU1 out from reset */
-	if (platid == SOCFPGA_SOCDK) {
+	switch (platid) {
+#if defined(SOC_ALTERA_ARRIA10)
+	case SOCFPGA_ARRIA10:
 		bus_space_write_4(fdtbus_bs_tag, rst,
 		    RSTMGR_A10_MPUMODRST, 0);
-	} else {
+		break;
+#endif
+#if defined(SOC_ALTERA_CYCLONE5)
+	case SOCFPGA_CYCLONE5:
 		bus_space_write_4(fdtbus_bs_tag, rst,
 		    RSTMGR_MPUMODRST, 0);
+		break;
+#endif
+	default:
+		panic("Unknown platform id %d\n", platid);
 	}
 
 	dsb();
@@ -186,17 +213,20 @@ _socfpga_mp_start_ap(platform_t plat, ui
 	bus_space_unmap(fdtbus_bs_tag, ram, RAM_SIZE);
 }
 
+#if defined(SOC_ALTERA_ARRIA10)
 void
 socfpga_a10_mp_start_ap(platform_t plat)
 {
 
-	_socfpga_mp_start_ap(plat, SOCFPGA_SOCDK);
+	_socfpga_mp_start_ap(SOCFPGA_ARRIA10);
 }
+#endif
 
+#if defined(SOC_ALTERA_CYCLONE5)
 void
 socfpga_mp_start_ap(platform_t plat)
 {
 
-	_socfpga_mp_start_ap(plat, SOCFPGA_SOCKIT);
+	_socfpga_mp_start_ap(SOCFPGA_CYCLONE5);
 }
-
+#endif

Modified: head/sys/arm/conf/SOCFPGA
==============================================================================
--- head/sys/arm/conf/SOCFPGA	Tue Feb 28 15:44:21 2017	(r314394)
+++ head/sys/arm/conf/SOCFPGA	Tue Feb 28 16:20:33 2017	(r314395)
@@ -32,6 +32,9 @@ options 	PLATFORM_SMP
 options 	SMP			# Enable multiple cores
 options 	MULTIDELAY
 
+options 	SOC_ALTERA_ARRIA10
+options 	SOC_ALTERA_CYCLONE5
+
 # NFS root from boopt/dhcp
 #options 	BOOTP
 #options 	BOOTP_NFSROOT

Modified: head/sys/conf/options.arm
==============================================================================
--- head/sys/conf/options.arm	Tue Feb 28 15:44:21 2017	(r314394)
+++ head/sys/conf/options.arm	Tue Feb 28 16:20:33 2017	(r314395)
@@ -50,6 +50,8 @@ SOC_ALLWINNER_A31S	opt_global.h
 SOC_ALLWINNER_A33	opt_global.h
 SOC_ALLWINNER_A83T	opt_global.h
 SOC_ALLWINNER_H3	opt_global.h
+SOC_ALTERA_ARRIA10	opt_global.h
+SOC_ALTERA_CYCLONE5	opt_global.h
 SOC_BCM2835		opt_global.h
 SOC_BCM2836		opt_global.h
 SOC_IMX51		opt_global.h


More information about the svn-src-head mailing list