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 <[email protected]>
@@ -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;