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;