Module Name:    src
Committed By:   skrll
Date:           Mon Oct  8 08:17:00 UTC 2018

Modified Files:
        src/sys/arch/arm/samsung: exynos_platform.c exynos_soc.c exynos_var.h

Log Message:
Remove a build dependency on SOC_EXYNOS4 and SOC_EXYNOS5.  Now runtime.


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 src/sys/arch/arm/samsung/exynos_platform.c
cvs rdiff -u -r1.36 -r1.37 src/sys/arch/arm/samsung/exynos_soc.c
cvs rdiff -u -r1.26 -r1.27 src/sys/arch/arm/samsung/exynos_var.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/samsung/exynos_platform.c
diff -u src/sys/arch/arm/samsung/exynos_platform.c:1.17 src/sys/arch/arm/samsung/exynos_platform.c:1.18
--- src/sys/arch/arm/samsung/exynos_platform.c:1.17	Fri Sep 21 12:04:07 2018
+++ src/sys/arch/arm/samsung/exynos_platform.c	Mon Oct  8 08:17:00 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: exynos_platform.c,v 1.17 2018/09/21 12:04:07 skrll Exp $ */
+/* $NetBSD: exynos_platform.c,v 1.18 2018/10/08 08:17:00 skrll Exp $ */
 
 /*-
  * Copyright (c) 2017 Jared D. McNeill <jmcne...@invisible.ca>
@@ -35,7 +35,7 @@
 #include "ukbd.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: exynos_platform.c,v 1.17 2018/09/21 12:04:07 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: exynos_platform.c,v 1.18 2018/10/08 08:17:00 skrll Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -124,8 +124,6 @@ static void
 exynos_platform_bootstrap(void)
 {
 
-	exynos_bootstrap();
-
 	void (*mp_bootstrap)(void) = NULL;
 	const struct of_compat_data *cd = of_search_compatible(OF_finddevice("/"), mp_compat_data);
 	if (cd)
@@ -205,9 +203,18 @@ exynos4_platform_devmap(void)
 	return devmap;
 }
 
+static void
+exynos4_platform_bootstrap(void)
+{
+
+	exynos_bootstrap(4);
+
+	exynos_platform_bootstrap();
+}
+
 static const struct arm_platform exynos4_platform = {
 	.ap_devmap = exynos4_platform_devmap,
-	.ap_bootstrap = exynos_platform_bootstrap,
+	.ap_bootstrap = exynos4_platform_bootstrap,
 	.ap_init_attach_args = exynos_platform_init_attach_args,
 	.ap_early_putchar = exynos_platform_early_putchar,
 	.ap_device_register = exynos_platform_device_register,
@@ -240,9 +247,18 @@ exynos5_platform_devmap(void)
 	return devmap;
 }
 
+static void
+exynos5_platform_bootstrap(void)
+{
+
+	exynos_bootstrap(5);
+
+	exynos_platform_bootstrap();
+}
+
 static const struct arm_platform exynos5_platform = {
 	.ap_devmap = exynos5_platform_devmap,
-	.ap_bootstrap = exynos_platform_bootstrap,
+	.ap_bootstrap = exynos5_platform_bootstrap,
 	.ap_init_attach_args = exynos_platform_init_attach_args,
 	.ap_early_putchar = exynos_platform_early_putchar,
 	.ap_device_register = exynos_platform_device_register,

Index: src/sys/arch/arm/samsung/exynos_soc.c
diff -u src/sys/arch/arm/samsung/exynos_soc.c:1.36 src/sys/arch/arm/samsung/exynos_soc.c:1.37
--- src/sys/arch/arm/samsung/exynos_soc.c:1.36	Fri Sep 14 11:58:38 2018
+++ src/sys/arch/arm/samsung/exynos_soc.c	Mon Oct  8 08:16:59 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: exynos_soc.c,v 1.36 2018/09/14 11:58:38 skrll Exp $	*/
+/*	$NetBSD: exynos_soc.c,v 1.37 2018/10/08 08:16:59 skrll Exp $	*/
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -33,7 +33,7 @@
 #include "opt_exynos.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(1, "$NetBSD: exynos_soc.c,v 1.36 2018/09/14 11:58:38 skrll Exp $");
+__KERNEL_RCSID(1, "$NetBSD: exynos_soc.c,v 1.37 2018/10/08 08:16:59 skrll Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -475,7 +475,7 @@ exynos_clocks_bootstrap(void)
 
 
 void
-exynos_bootstrap(void)
+exynos_bootstrap(int soc)
 {
 	int error;
 	size_t core_size, audiocore_size;
@@ -487,33 +487,40 @@ exynos_bootstrap(void)
 	bus_addr_t exynos_cmu_apll_offset;
 	const vaddr_t iobase = EXYNOS_CORE_VBASE;
 
+	switch (soc) {
 #ifdef SOC_EXYNOS4
-	core_size = EXYNOS4_CORE_SIZE;
-	audiocore_size = EXYNOS4_AUDIOCORE_SIZE;
-	audiocore_pbase = EXYNOS4_AUDIOCORE_PBASE;
-	audiocore_vbase = EXYNOS4_AUDIOCORE_VBASE;
-	exynos_wdt_offset = EXYNOS4_WDT_OFFSET;
-	exynos_pmu_offset = EXYNOS4_PMU_OFFSET;
-	exynos_sysreg_offset = EXYNOS4_SYSREG_OFFSET;
-	exynos_cmu_apll_offset = EXYNOS4_CMU_APLL;
-
-	cpu_freq_settings = cpu_freq_settings_exynos4;
-	ncpu_freq_settings = __arraycount(cpu_freq_settings_exynos4);
+	case 4:
+		core_size = EXYNOS4_CORE_SIZE;
+		audiocore_size = EXYNOS4_AUDIOCORE_SIZE;
+		audiocore_pbase = EXYNOS4_AUDIOCORE_PBASE;
+		audiocore_vbase = EXYNOS4_AUDIOCORE_VBASE;
+		exynos_wdt_offset = EXYNOS4_WDT_OFFSET;
+		exynos_pmu_offset = EXYNOS4_PMU_OFFSET;
+		exynos_sysreg_offset = EXYNOS4_SYSREG_OFFSET;
+		exynos_cmu_apll_offset = EXYNOS4_CMU_APLL;
+
+		cpu_freq_settings = cpu_freq_settings_exynos4;
+		ncpu_freq_settings = __arraycount(cpu_freq_settings_exynos4);
+		break;
 #endif
-
 #ifdef SOC_EXYNOS5
-	core_size = EXYNOS5_CORE_SIZE;
-	audiocore_size = EXYNOS5_AUDIOCORE_SIZE;
-	audiocore_pbase = EXYNOS5_AUDIOCORE_PBASE;
-	audiocore_vbase = EXYNOS5_AUDIOCORE_VBASE;
-	exynos_wdt_offset = EXYNOS5_WDT_OFFSET;
-	exynos_pmu_offset = EXYNOS5_PMU_OFFSET;
-	exynos_sysreg_offset = EXYNOS5_SYSREG_OFFSET;
-	exynos_cmu_apll_offset = EXYNOS5_CMU_APLL;
-
-	cpu_freq_settings = cpu_freq_settings_exynos5;
-	ncpu_freq_settings = __arraycount(cpu_freq_settings_exynos5);
+	case 5:
+		core_size = EXYNOS5_CORE_SIZE;
+		audiocore_size = EXYNOS5_AUDIOCORE_SIZE;
+		audiocore_pbase = EXYNOS5_AUDIOCORE_PBASE;
+		audiocore_vbase = EXYNOS5_AUDIOCORE_VBASE;
+		exynos_wdt_offset = EXYNOS5_WDT_OFFSET;
+		exynos_pmu_offset = EXYNOS5_PMU_OFFSET;
+		exynos_sysreg_offset = EXYNOS5_SYSREG_OFFSET;
+		exynos_cmu_apll_offset = EXYNOS5_CMU_APLL;
+
+		cpu_freq_settings = cpu_freq_settings_exynos5;
+		ncpu_freq_settings = __arraycount(cpu_freq_settings_exynos5);
+		break;
 #endif
+	default:
+		panic("%s: unknown soc version", __func__);
+	}
 
 	/* map in the exynos io registers */
 	error = bus_space_map(&armv7_generic_bs_tag, EXYNOS_CORE_PBASE,

Index: src/sys/arch/arm/samsung/exynos_var.h
diff -u src/sys/arch/arm/samsung/exynos_var.h:1.26 src/sys/arch/arm/samsung/exynos_var.h:1.27
--- src/sys/arch/arm/samsung/exynos_var.h:1.26	Fri Sep 14 11:58:38 2018
+++ src/sys/arch/arm/samsung/exynos_var.h	Mon Oct  8 08:17:00 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: exynos_var.h,v 1.26 2018/09/14 11:58:38 skrll Exp $	*/
+/*	$NetBSD: exynos_var.h,v 1.27 2018/10/08 08:17:00 skrll Exp $	*/
 
 /*-
  * Copyright (c) 2013, 2014 The NetBSD Foundation, Inc.
@@ -143,7 +143,7 @@ extern bus_space_handle_t exynos_pmu_bsh
 extern bus_space_handle_t exynos_cmu_bsh;
 extern bus_space_handle_t exynos_sysreg_bsh;
 
-extern void exynos_bootstrap(void);
+extern void exynos_bootstrap(int);
 extern void exynos_dma_bootstrap(psize_t memsize);
 
 struct exynos_pinctrl_softc;

Reply via email to