Fri Apr 7 08:55:31 2023 UTC ()
Rename ARM_PLATFORM to FDT_PLATFORM and make it available outside arm.
(skrll)
diff -r1.66 -r1.67 src/sys/arch/aarch64/aarch64/aarch64_machdep.c
diff -r1.35 -r1.36 src/sys/arch/arm/acpi/acpi_platform.c
diff -r1.18 -r1.19 src/sys/arch/arm/altera/cycv_platform.c
diff -r1.20 -r1.21 src/sys/arch/arm/amlogic/meson_platform.c
diff -r1.5 -r1.6 src/sys/arch/arm/apple/apple_platform.c
diff -r1.145 -r1.146 src/sys/arch/arm/arm32/arm32_machdep.c
diff -r1.48 -r1.49 src/sys/arch/arm/broadcom/bcm283x_platform.c
diff -r1.20 -r1.21 src/sys/arch/arm/fdt/arm_fdt.c
diff -r1.19 -r1.20 src/sys/arch/arm/fdt/arm_fdtvar.h
diff -r1.6 -r1.7 src/sys/arch/arm/fdt/arm_platform.c
diff -r1.27 -r1.28 src/sys/arch/arm/nvidia/tegra_platform.c
diff -r1.6 -r1.7 src/sys/arch/arm/nxp/imx6_platform.c
diff -r1.16 -r1.17 src/sys/arch/arm/rockchip/rk_platform.c
diff -r1.39 -r1.40 src/sys/arch/arm/samsung/exynos_platform.c
diff -r1.46 -r1.47 src/sys/arch/arm/sunxi/sunxi_platform.c
diff -r1.3 -r1.4 src/sys/arch/arm/ti/am3_platform.c
diff -r1.7 -r1.8 src/sys/arch/arm/ti/omap3_platform.c
diff -r1.22 -r1.23 src/sys/arch/arm/vexpress/vexpress_platform.c
diff -r1.10 -r1.11 src/sys/arch/arm/xilinx/zynq_platform.c
diff -r1.2 -r1.3 src/sys/arch/evbarm/fdt/fdt_bus_machdep.c
diff -r1.101 -r1.102 src/sys/arch/evbarm/fdt/fdt_machdep.c
diff -r0 -r1.1 src/sys/dev/fdt/fdt_platform.c
diff -r1.77 -r1.78 src/sys/dev/fdt/fdtvar.h
diff -r1.66 -r1.67 src/sys/dev/fdt/files.fdt
--- src/sys/arch/aarch64/aarch64/aarch64_machdep.c 2022/08/19 08:17:32 1.66
+++ src/sys/arch/aarch64/aarch64/aarch64_machdep.c 2023/04/07 08:55:29 1.67
@@ -1,4 +1,4 @@
-/* $NetBSD: aarch64_machdep.c,v 1.66 2022/08/19 08:17:32 ryo Exp $ */
+/* $NetBSD: aarch64_machdep.c,v 1.67 2023/04/07 08:55:29 skrll Exp $ */
/*-
* Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(1, "$NetBSD: aarch64_machdep.c,v 1.66 2022/08/19 08:17:32 ryo Exp $");
+__KERNEL_RCSID(1, "$NetBSD: aarch64_machdep.c,v 1.67 2023/04/07 08:55:29 skrll Exp $");
#include "opt_arm_debug.h"
#include "opt_cpuoptions.h"
@@ -74,6 +74,7 @@
#include <aarch64/kcore.h>
#include <arm/fdt/arm_fdtvar.h>
+#include <dev/fdt/fdtvar.h>
#include <dev/fdt/fdt_memory.h>
#ifdef VERBOSE_INIT_ARM
@@ -677,9 +678,9 @@
consinit();
#ifdef FDT
- const struct arm_platform * const plat = arm_fdt_platform();
- if (plat->ap_startup != NULL)
- plat->ap_startup();
+ const struct fdt_platform * const plat = fdt_platform_find();
+ if (plat->fp_startup != NULL)
+ plat->fp_startup();
#endif
/*
--- src/sys/arch/arm/acpi/acpi_platform.c 2023/01/24 06:56:40 1.35
+++ src/sys/arch/arm/acpi/acpi_platform.c 2023/04/07 08:55:29 1.36
--- src/sys/arch/arm/altera/cycv_platform.c 2021/04/24 23:36:25 1.18
+++ src/sys/arch/arm/altera/cycv_platform.c 2023/04/07 08:55:29 1.19
--- src/sys/arch/arm/amlogic/meson_platform.c 2021/04/24 23:36:26 1.20
+++ src/sys/arch/arm/amlogic/meson_platform.c 2023/04/07 08:55:29 1.21
@@ -1,4 +1,4 @@
-/* $NetBSD: meson_platform.c,v 1.20 2021/04/24 23:36:26 thorpej Exp $ */
+/* $NetBSD: meson_platform.c,v 1.21 2023/04/07 08:55:29 skrll Exp $ */
/*-
* Copyright (c) 2019 Jared McNeill <jmcneill@invisible.ca>
@@ -33,7 +33,7 @@
#include "arml2cc.h"
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: meson_platform.c,v 1.20 2021/04/24 23:36:26 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: meson_platform.c,v 1.21 2023/04/07 08:55:29 skrll Exp $");
#include <sys/param.h>
#include <sys/bus.h>
@@ -42,6 +42,7 @@
#include <sys/termios.h>
#include <dev/fdt/fdtvar.h>
+
#include <arm/fdt/arm_fdtvar.h>
#include <uvm/uvm_extern.h>
@@ -440,18 +441,18 @@
return ret;
}
-static const struct arm_platform meson8b_platform = {
- .ap_devmap = meson_platform_devmap,
- .ap_bootstrap = meson8b_platform_bootstrap,
- .ap_init_attach_args = meson_platform_init_attach_args,
- .ap_device_register = meson8b_platform_device_register,
- .ap_reset = meson8b_platform_reset,
- .ap_delay = a9ptmr_delay,
- .ap_uart_freq = meson_platform_uart_freq,
- .ap_mpstart = meson8b_mpstart,
+static const struct fdt_platform meson8b_platform = {
+ .fp_devmap = meson_platform_devmap,
+ .fp_bootstrap = meson8b_platform_bootstrap,
+ .fp_init_attach_args = meson_platform_init_attach_args,
+ .fp_device_register = meson8b_platform_device_register,
+ .fp_reset = meson8b_platform_reset,
+ .fp_delay = a9ptmr_delay,
+ .fp_uart_freq = meson_platform_uart_freq,
+ .fp_mpstart = meson8b_mpstart,
};
-ARM_PLATFORM(meson8b, "amlogic,meson8b", &meson8b_platform);
+FDT_PLATFORM(meson8b, "amlogic,meson8b", &meson8b_platform);
#endif /* SOC_MESON8B */
#if defined(SOC_MESONGX)
@@ -478,21 +479,21 @@
}
}
-static const struct arm_platform mesongx_platform = {
- .ap_devmap = meson_platform_devmap,
- .ap_bootstrap = meson_platform_bootstrap,
- .ap_init_attach_args = meson_platform_init_attach_args,
- .ap_device_register = meson_platform_device_register,
- .ap_reset = mesongx_platform_reset,
- .ap_delay = gtmr_delay,
- .ap_uart_freq = meson_platform_uart_freq,
- .ap_mpstart = arm_fdt_cpu_mpstart,
+static const struct fdt_platform mesongx_platform = {
+ .fp_devmap = meson_platform_devmap,
+ .fp_bootstrap = meson_platform_bootstrap,
+ .fp_init_attach_args = meson_platform_init_attach_args,
+ .fp_device_register = meson_platform_device_register,
+ .fp_reset = mesongx_platform_reset,
+ .fp_delay = gtmr_delay,
+ .fp_uart_freq = meson_platform_uart_freq,
+ .fp_mpstart = arm_fdt_cpu_mpstart,
};
#if defined(SOC_MESONGXBB)
-ARM_PLATFORM(mesongxbb, "amlogic,meson-gxbb", &mesongx_platform);
+FDT_PLATFORM(mesongxbb, "amlogic,meson-gxbb", &mesongx_platform);
#endif /* SOC_MESONGXBB */
#if defined(SOC_MESONGXL)
-ARM_PLATFORM(mesongxl, "amlogic,meson-gxl", &mesongx_platform);
+FDT_PLATFORM(mesongxl, "amlogic,meson-gxl", &mesongx_platform);
#endif /* SOC_MESONGXL */
#endif /* SOC_MESONGX */
--- src/sys/arch/arm/apple/apple_platform.c 2022/10/15 11:07:38 1.5
+++ src/sys/arch/arm/apple/apple_platform.c 2023/04/07 08:55:29 1.6
--- src/sys/arch/arm/arm32/arm32_machdep.c 2023/01/19 08:03:51 1.145
+++ src/sys/arch/arm/arm32/arm32_machdep.c 2023/04/07 08:55:30 1.146
@@ -1,4 +1,4 @@
-/* $NetBSD: arm32_machdep.c,v 1.145 2023/01/19 08:03:51 mlelstv Exp $ */
+/* $NetBSD: arm32_machdep.c,v 1.146 2023/04/07 08:55:30 skrll Exp $ */
/*
* Copyright (c) 1994-1998 Mark Brinicombe.
@@ -42,7 +42,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: arm32_machdep.c,v 1.145 2023/01/19 08:03:51 mlelstv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: arm32_machdep.c,v 1.146 2023/04/07 08:55:30 skrll Exp $");
#include "opt_arm_debug.h"
#include "opt_arm_start.h"
@@ -85,6 +85,8 @@
#include <machine/pcb.h>
#if defined(FDT)
+#include <dev/fdt/fdtvar.h>
+
#include <arm/fdt/arm_fdtvar.h>
#include <arch/evbarm/fdt/platform.h>
#endif
@@ -301,9 +303,9 @@
pmap_postinit();
#ifdef FDT
- const struct arm_platform * const plat = arm_fdt_platform();
- if (plat->ap_startup != NULL)
- plat->ap_startup();
+ const struct fdt_platform * const plat = fdt_platform_find();
+ if (plat->fp_startup != NULL)
+ plat->fp_startup();
#endif
/*
@@ -893,7 +895,7 @@
void
cpu_kernel_vm_init(paddr_t memory_start, psize_t memory_size)
{
- const struct arm_platform *plat = arm_fdt_platform();
+ const struct fdt_platform *plat = fdt_platform_find();
#ifdef __HAVE_MM_MD_DIRECT_MAPPED_PHYS
const bool mapallmem_p = true;
@@ -914,7 +916,7 @@
arm32_bootmem_init(memory_start, memory_size, KERNEL_BASE_PHYS);
arm32_kernel_vm_init(KERNEL_VM_BASE, ARM_VECTORS_HIGH, 0,
- plat->ap_devmap(), mapallmem_p);
+ plat->fp_devmap(), mapallmem_p);
}
#endif
--- src/sys/arch/arm/broadcom/bcm283x_platform.c 2021/04/24 23:36:26 1.48
+++ src/sys/arch/arm/broadcom/bcm283x_platform.c 2023/04/07 08:55:30 1.49
@@ -1,4 +1,4 @@
-/* $NetBSD: bcm283x_platform.c,v 1.48 2021/04/24 23:36:26 thorpej Exp $ */
+/* $NetBSD: bcm283x_platform.c,v 1.49 2023/04/07 08:55:30 skrll Exp $ */
/*-
* Copyright (c) 2017 Jared D. McNeill <jmcneill@invisible.ca>
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bcm283x_platform.c,v 1.48 2021/04/24 23:36:26 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bcm283x_platform.c,v 1.49 2023/04/07 08:55:30 skrll Exp $");
#include "opt_arm_debug.h"
#include "opt_bcm283x.h"
@@ -1481,7 +1481,7 @@
/*
* We are safe to access stdout phandle - consinit did before
- * calling ap_uart_freq
+ * calling fp_uart_freq
*/
const int phandle = fdtbus_get_stdout_phandle();
@@ -1497,55 +1497,55 @@
}
#if defined(SOC_BCM2835)
-static const struct arm_platform bcm2835_platform = {
- .ap_devmap = bcm2835_platform_devmap,
- .ap_bootstrap = bcm2835_platform_bootstrap,
- .ap_init_attach_args = bcm2835_platform_init_attach_args,
- .ap_device_register = bcm283x_platform_device_register,
- .ap_reset = bcm2835_system_reset,
- .ap_delay = bcm2835_tmr_delay,
- .ap_uart_freq = bcm283x_platform_uart_freq,
+static const struct fdt_platform bcm2835_platform = {
+ .fp_devmap = bcm2835_platform_devmap,
+ .fp_bootstrap = bcm2835_platform_bootstrap,
+ .fp_init_attach_args = bcm2835_platform_init_attach_args,
+ .fp_device_register = bcm283x_platform_device_register,
+ .fp_reset = bcm2835_system_reset,
+ .fp_delay = bcm2835_tmr_delay,
+ .fp_uart_freq = bcm283x_platform_uart_freq,
};
-ARM_PLATFORM(bcm2835, "brcm,bcm2835", &bcm2835_platform);
+FDT_PLATFORM(bcm2835, "brcm,bcm2835", &bcm2835_platform);
#endif
#if defined(SOC_BCM2836)
-static const struct arm_platform bcm2836_platform = {
- .ap_devmap = bcm2836_platform_devmap,
- .ap_bootstrap = bcm2836_platform_bootstrap,
- .ap_init_attach_args = bcm2836_platform_init_attach_args,
- .ap_device_register = bcm283x_platform_device_register,
- .ap_reset = bcm2835_system_reset,
- .ap_delay = gtmr_delay,
- .ap_uart_freq = bcm283x_platform_uart_freq,
- .ap_mpstart = arm_fdt_cpu_mpstart,
+static const struct fdt_platform bcm2836_platform = {
+ .fp_devmap = bcm2836_platform_devmap,
+ .fp_bootstrap = bcm2836_platform_bootstrap,
+ .fp_init_attach_args = bcm2836_platform_init_attach_args,
+ .fp_device_register = bcm283x_platform_device_register,
+ .fp_reset = bcm2835_system_reset,
+ .fp_delay = gtmr_delay,
+ .fp_uart_freq = bcm283x_platform_uart_freq,
+ .fp_mpstart = arm_fdt_cpu_mpstart,
};
-static const struct arm_platform bcm2837_platform = {
- .ap_devmap = bcm2836_platform_devmap,
- .ap_bootstrap = bcm2836_platform_bootstrap,
- .ap_init_attach_args = bcm2836_platform_init_attach_args,
- .ap_device_register = bcm283x_platform_device_register,
- .ap_reset = bcm2835_system_reset,
- .ap_delay = gtmr_delay,
- .ap_uart_freq = bcm283x_platform_uart_freq,
- .ap_mpstart = arm_fdt_cpu_mpstart,
+static const struct fdt_platform bcm2837_platform = {
+ .fp_devmap = bcm2836_platform_devmap,
+ .fp_bootstrap = bcm2836_platform_bootstrap,
+ .fp_init_attach_args = bcm2836_platform_init_attach_args,
+ .fp_device_register = bcm283x_platform_device_register,
+ .fp_reset = bcm2835_system_reset,
+ .fp_delay = gtmr_delay,
+ .fp_uart_freq = bcm283x_platform_uart_freq,
+ .fp_mpstart = arm_fdt_cpu_mpstart,
};
-static const struct arm_platform bcm2711_platform = {
- .ap_devmap = bcm2711_platform_devmap,
- .ap_bootstrap = bcm2711_platform_bootstrap,
- .ap_init_attach_args = bcm2711_platform_init_attach_args,
- .ap_device_register = bcm283x_platform_device_register,
- .ap_reset = bcm2835_system_reset,
- .ap_delay = gtmr_delay,
- .ap_uart_freq = bcm283x_platform_uart_freq,
- .ap_mpstart = arm_fdt_cpu_mpstart,
+static const struct fdt_platform bcm2711_platform = {
+ .fp_devmap = bcm2711_platform_devmap,
+ .fp_bootstrap = bcm2711_platform_bootstrap,
+ .fp_init_attach_args = bcm2711_platform_init_attach_args,
+ .fp_device_register = bcm283x_platform_device_register,
+ .fp_reset = bcm2835_system_reset,
+ .fp_delay = gtmr_delay,
+ .fp_uart_freq = bcm283x_platform_uart_freq,
+ .fp_mpstart = arm_fdt_cpu_mpstart,
};
-ARM_PLATFORM(bcm2836, "brcm,bcm2836", &bcm2836_platform);
-ARM_PLATFORM(bcm2837, "brcm,bcm2837", &bcm2837_platform);
-ARM_PLATFORM(bcm2711, "brcm,bcm2711", &bcm2711_platform);
+FDT_PLATFORM(bcm2836, "brcm,bcm2836", &bcm2836_platform);
+FDT_PLATFORM(bcm2837, "brcm,bcm2837", &bcm2837_platform);
+FDT_PLATFORM(bcm2711, "brcm,bcm2711", &bcm2711_platform);
#endif
--- src/sys/arch/arm/fdt/arm_fdt.c 2021/10/10 13:03:09 1.20
+++ src/sys/arch/arm/fdt/arm_fdt.c 2023/04/07 08:55:30 1.21
@@ -1,4 +1,4 @@
-/* $NetBSD: arm_fdt.c,v 1.20 2021/10/10 13:03:09 jmcneill Exp $ */
+/* $NetBSD: arm_fdt.c,v 1.21 2023/04/07 08:55:30 skrll Exp $ */
/*-
* Copyright (c) 2017 Jared D. McNeill <jmcneill@invisible.ca>
@@ -31,7 +31,7 @@
#include "opt_modular.h"
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: arm_fdt.c,v 1.20 2021/10/10 13:03:09 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: arm_fdt.c,v 1.21 2023/04/07 08:55:30 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -44,6 +44,7 @@
#include <uvm/uvm_extern.h>
#include <dev/fdt/fdtvar.h>
+
#include <dev/ofw/openfirm.h>
#include <arm/fdt/arm_fdtvar.h>
@@ -94,7 +95,7 @@
void
arm_fdt_attach(device_t parent, device_t self, void *aux)
{
- const struct arm_platform *plat = arm_fdt_platform();
+ const struct fdt_platform *plat = fdt_platform_find();
struct fdt_attach_args faa;
aprint_naive("\n");
@@ -106,57 +107,12 @@
arm_fdt_efi_init(self);
#endif
- plat->ap_init_attach_args(&faa);
+ plat->fp_init_attach_args(&faa);
faa.faa_name = "";
faa.faa_phandle = OF_peer(0);
config_found(self, &faa, NULL, CFARGS_NONE);
}
-
-const struct arm_platform *
-arm_fdt_platform(void)
-{
- static const struct arm_platform_info *booted_platform = NULL;
- __link_set_decl(arm_platforms, struct arm_platform_info);
- struct arm_platform_info * const *info;
-
- if (booted_platform == NULL) {
- const struct arm_platform_info *best_info = NULL;
- const int phandle = OF_peer(0);
- int match, best_match = 0;
-
- __link_set_foreach(info, arm_platforms) {
- const struct device_compatible_entry compat_data[] = {
- { .compat = (*info)->api_compat },
- DEVICE_COMPAT_EOL
- };
-
- match = of_compatible_match(phandle, compat_data);
- if (match > best_match) {
- best_match = match;
- best_info = *info;
- }
- }
-
- booted_platform = best_info;
- }
-
- /*
- * No SoC specific platform was found. Try to find a generic
- * platform definition and use that if available.
- */
- if (booted_platform == NULL) {
- __link_set_foreach(info, arm_platforms) {
- if (strcmp((*info)->api_compat, ARM_PLATFORM_DEFAULT) == 0) {
- booted_platform = *info;
- break;
- }
- }
- }
-
- return booted_platform == NULL ? NULL : booted_platform->api_ops;
-}
-
void
arm_fdt_cpu_hatch_register(void *priv, void (*cb)(void *, struct cpu_info *))
{
--- src/sys/arch/arm/fdt/arm_fdtvar.h 2021/09/05 13:20:34 1.19
+++ src/sys/arch/arm/fdt/arm_fdtvar.h 2023/04/07 08:55:30 1.20
@@ -1,4 +1,4 @@
-/* $NetBSD: arm_fdtvar.h,v 1.19 2021/09/05 13:20:34 jmcneill Exp $ */
+/* $NetBSD: arm_fdtvar.h,v 1.20 2023/04/07 08:55:30 skrll Exp $ */
/*-
* Copyright (c) 2017 Jared D. McNeill <jmcneill@invisible.ca>
@@ -29,50 +29,13 @@
#ifndef _ARM_ARM_FDTVAR_H
#define _ARM_ARM_FDTVAR_H
-struct fdt_attach_args;
-
/*
- * Platform-specific data
- */
-
-struct arm_platform {
- const struct pmap_devmap * (*ap_devmap)(void);
- void (*ap_bootstrap)(void);
- int (*ap_mpstart)(void);
- void (*ap_startup)(void);
- void (*ap_init_attach_args)(struct fdt_attach_args *);
- void (*ap_device_register)(device_t, void *);
- void (*ap_reset)(void);
- void (*ap_delay)(u_int);
- u_int (*ap_uart_freq)(void);
-};
-
-struct arm_platform_info {
- const char * api_compat;
- const struct arm_platform * api_ops;
-};
-
-#define ARM_PLATFORM_DEFAULT ""
-
-#define _ARM_PLATFORM_REGISTER(name) \
- __link_set_add_rodata(arm_platforms, __CONCAT(name,_platinfo));
-
-#define ARM_PLATFORM(_name, _compat, _ops) \
-static const struct arm_platform_info __CONCAT(_name,_platinfo) = { \
- .api_compat = (_compat), \
- .api_ops = (_ops) \
-}; \
-_ARM_PLATFORM_REGISTER(_name)
-
-const struct arm_platform * arm_fdt_platform(void);
-
-/*
* CPU enable methods
*/
struct arm_cpu_method {
- const char * acm_compat;
- int (*acm_enable)(int);
+ const char * acm_compat;
+ int (*acm_enable)(int);
};
#define _ARM_CPU_METHOD_REGISTER(_name) \
--- src/sys/arch/arm/fdt/arm_platform.c 2023/02/25 08:19:35 1.6
+++ src/sys/arch/arm/fdt/arm_platform.c 2023/04/07 08:55:30 1.7
--- src/sys/arch/arm/nvidia/tegra_platform.c 2021/04/24 23:36:27 1.27
+++ src/sys/arch/arm/nvidia/tegra_platform.c 2023/04/07 08:55:30 1.28
@@ -1,4 +1,4 @@
-/* $NetBSD: tegra_platform.c,v 1.27 2021/04/24 23:36:27 thorpej Exp $ */
+/* $NetBSD: tegra_platform.c,v 1.28 2023/04/07 08:55:30 skrll Exp $ */
/*-
* Copyright (c) 2017 Jared D. McNeill <jmcneill@invisible.ca>
@@ -34,7 +34,7 @@
#include "ukbd.h"
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tegra_platform.c,v 1.27 2021/04/24 23:36:27 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tegra_platform.c,v 1.28 2023/04/07 08:55:30 skrll Exp $");
#include <sys/param.h>
#include <sys/bus.h>
@@ -217,31 +217,31 @@
#endif /* SOC_TEGRA124 || SOC_TEGRA210 */
#if defined(SOC_TEGRA124)
-static const struct arm_platform tegra124_platform = {
- .ap_devmap = tegra_platform_devmap,
- .ap_bootstrap = tegra124_platform_bootstrap,
- .ap_init_attach_args = tegra_platform_init_attach_args,
- .ap_device_register = tegra_platform_device_register,
- .ap_reset = tegra_platform_reset,
- .ap_delay = tegra_platform_delay,
- .ap_uart_freq = tegra_platform_uart_freq,
- .ap_mpstart = tegra124_mpstart,
+static const struct fdt_platform tegra124_platform = {
+ .fp_devmap = tegra_platform_devmap,
+ .fp_bootstrap = tegra124_platform_bootstrap,
+ .fp_init_attach_args = tegra_platform_init_attach_args,
+ .fp_device_register = tegra_platform_device_register,
+ .fp_reset = tegra_platform_reset,
+ .fp_delay = tegra_platform_delay,
+ .fp_uart_freq = tegra_platform_uart_freq,
+ .fp_mpstart = tegra124_mpstart,
};
-ARM_PLATFORM(tegra124, "nvidia,tegra124", &tegra124_platform);
+FDT_PLATFORM(tegra124, "nvidia,tegra124", &tegra124_platform);
#endif
#if defined(SOC_TEGRA210)
-static const struct arm_platform tegra210_platform = {
- .ap_devmap = tegra_platform_devmap,
- .ap_bootstrap = tegra210_platform_bootstrap,
- .ap_init_attach_args = tegra_platform_init_attach_args,
- .ap_device_register = tegra_platform_device_register,
- .ap_reset = tegra_platform_reset,
- .ap_delay = tegra_platform_delay,
- .ap_uart_freq = tegra_platform_uart_freq,
- .ap_mpstart = arm_fdt_cpu_mpstart,
+static const struct fdt_platform tegra210_platform = {
+ .fp_devmap = tegra_platform_devmap,
+ .fp_bootstrap = tegra210_platform_bootstrap,
+ .fp_init_attach_args = tegra_platform_init_attach_args,
+ .fp_device_register = tegra_platform_device_register,
+ .fp_reset = tegra_platform_reset,
+ .fp_delay = tegra_platform_delay,
+ .fp_uart_freq = tegra_platform_uart_freq,
+ .fp_mpstart = arm_fdt_cpu_mpstart,
};
-ARM_PLATFORM(tegra210, "nvidia,tegra210", &tegra210_platform);
+FDT_PLATFORM(tegra210, "nvidia,tegra210", &tegra210_platform);
#endif
--- src/sys/arch/arm/nxp/imx6_platform.c 2021/04/24 23:36:28 1.6
+++ src/sys/arch/arm/nxp/imx6_platform.c 2023/04/07 08:55:30 1.7
@@ -1,4 +1,4 @@
-/* $NetBSD: imx6_platform.c,v 1.6 2021/04/24 23:36:28 thorpej Exp $ */
+/* $NetBSD: imx6_platform.c,v 1.7 2023/04/07 08:55:30 skrll Exp $ */
/*-
* Copyright (c) 2019 Genetec Corporation. All rights reserved.
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: imx6_platform.c,v 1.6 2021/04/24 23:36:28 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: imx6_platform.c,v 1.7 2023/04/07 08:55:30 skrll Exp $");
#include "arml2cc.h"
#include "opt_console.h"
@@ -42,6 +42,7 @@
#include <sys/termios.h>
#include <dev/fdt/fdtvar.h>
+
#include <arm/fdt/arm_fdtvar.h>
#include <uvm/uvm_extern.h>
@@ -222,17 +223,17 @@
__asm("wfi");
}
-const struct arm_platform imx6_platform = {
- .ap_devmap = imx_platform_devmap,
- .ap_bootstrap = imx_platform_bootstrap,
- .ap_init_attach_args = imx_platform_init_attach_args,
- .ap_device_register = imx_platform_device_register,
- .ap_reset = imx6_platform_reset,
- .ap_delay = a9ptmr_delay,
- .ap_uart_freq = imx_platform_uart_freq,
- .ap_mpstart = imx_platform_mpstart,
+static const struct fdt_platform imx6_platform = {
+ .fp_devmap = imx_platform_devmap,
+ .fp_bootstrap = imx_platform_bootstrap,
+ .fp_init_attach_args = imx_platform_init_attach_args,
+ .fp_device_register = imx_platform_device_register,
+ .fp_reset = imx6_platform_reset,
+ .fp_delay = a9ptmr_delay,
+ .fp_uart_freq = imx_platform_uart_freq,
+ .fp_mpstart = imx_platform_mpstart,
};
-ARM_PLATFORM(imx6dl, "fsl,imx6dl", &imx6_platform);
+FDT_PLATFORM(imx6dl, "fsl,imx6dl", &imx6_platform);
-ARM_PLATFORM(imx6q, "fsl,imx6q", &imx6_platform);
+FDT_PLATFORM(imx6q, "fsl,imx6q", &imx6_platform);
-ARM_PLATFORM(imx6qp, "fsl,imx6qp", &imx6_platform);
+FDT_PLATFORM(imx6qp, "fsl,imx6qp", &imx6_platform);
--- src/sys/arch/arm/rockchip/rk_platform.c 2022/08/23 05:39:06 1.16
+++ src/sys/arch/arm/rockchip/rk_platform.c 2023/04/07 08:55:30 1.17
@@ -1,4 +1,4 @@
-/* $NetBSD: rk_platform.c,v 1.16 2022/08/23 05:39:06 ryo Exp $ */
+/* $NetBSD: rk_platform.c,v 1.17 2023/04/07 08:55:30 skrll Exp $ */
/*-
* Copyright (c) 2018,2021 Jared McNeill <jmcneill@invisible.ca>
@@ -31,7 +31,7 @@
#include "opt_console.h"
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rk_platform.c,v 1.16 2022/08/23 05:39:06 ryo Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rk_platform.c,v 1.17 2023/04/07 08:55:30 skrll Exp $");
#include <sys/param.h>
#include <sys/bus.h>
@@ -39,8 +39,8 @@
#include <sys/device.h>
#include <sys/termios.h>
-
#include <dev/fdt/fdtvar.h>
+
#include <arm/fdt/arm_fdtvar.h>
#include <uvm/uvm_extern.h>
@@ -175,18 +175,18 @@
return RK3288_UART_FREQ;
}
-static const struct arm_platform rk3288_platform = {
- .ap_devmap = rk3288_platform_devmap,
- .ap_bootstrap = rk3288_platform_bootstrap,
- .ap_init_attach_args = rk_platform_init_attach_args,
- .ap_device_register = rk_platform_device_register,
- .ap_reset = rk3288_platform_reset,
- .ap_delay = gtmr_delay,
- .ap_uart_freq = rk3288_platform_uart_freq,
- .ap_mpstart = arm_fdt_cpu_mpstart,
+static const struct fdt_platform rk3288_platform = {
+ .fp_devmap = rk3288_platform_devmap,
+ .fp_bootstrap = rk3288_platform_bootstrap,
+ .fp_init_attach_args = rk_platform_init_attach_args,
+ .fp_device_register = rk_platform_device_register,
+ .fp_reset = rk3288_platform_reset,
+ .fp_delay = gtmr_delay,
+ .fp_uart_freq = rk3288_platform_uart_freq,
+ .fp_mpstart = arm_fdt_cpu_mpstart,
};
-ARM_PLATFORM(rk3288, "rockchip,rk3288", &rk3288_platform);
+FDT_PLATFORM(rk3288, "rockchip,rk3288", &rk3288_platform);
#endif /* SOC_RK3288 */
@@ -232,18 +232,18 @@
return RK3328_UART_FREQ;
}
-static const struct arm_platform rk3328_platform = {
- .ap_devmap = rk3328_platform_devmap,
- .ap_bootstrap = rk_platform_bootstrap,
- .ap_init_attach_args = rk_platform_init_attach_args,
- .ap_device_register = rk_platform_device_register,
- .ap_reset = psci_fdt_reset,
- .ap_delay = gtmr_delay,
- .ap_uart_freq = rk3328_platform_uart_freq,
- .ap_mpstart = arm_fdt_cpu_mpstart,
+static const struct fdt_platform rk3328_platform = {
+ .fp_devmap = rk3328_platform_devmap,
+ .fp_bootstrap = rk_platform_bootstrap,
+ .fp_init_attach_args = rk_platform_init_attach_args,
+ .fp_device_register = rk_platform_device_register,
+ .fp_reset = psci_fdt_reset,
+ .fp_delay = gtmr_delay,
+ .fp_uart_freq = rk3328_platform_uart_freq,
+ .fp_mpstart = arm_fdt_cpu_mpstart,
};
-ARM_PLATFORM(rk3328, "rockchip,rk3328", &rk3328_platform);
+FDT_PLATFORM(rk3328, "rockchip,rk3328", &rk3328_platform);
#endif /* SOC_RK3328 */
@@ -290,18 +290,18 @@
return RK3399_UART_FREQ;
}
-static const struct arm_platform rk3399_platform = {
- .ap_devmap = rk3399_platform_devmap,
- .ap_bootstrap = rk_platform_bootstrap,
- .ap_init_attach_args = rk_platform_init_attach_args,
- .ap_device_register = rk_platform_device_register,
- .ap_reset = psci_fdt_reset,
- .ap_delay = gtmr_delay,
- .ap_uart_freq = rk3399_platform_uart_freq,
- .ap_mpstart = arm_fdt_cpu_mpstart,
+static const struct fdt_platform rk3399_platform = {
+ .fp_devmap = rk3399_platform_devmap,
+ .fp_bootstrap = rk_platform_bootstrap,
+ .fp_init_attach_args = rk_platform_init_attach_args,
+ .fp_device_register = rk_platform_device_register,
+ .fp_reset = psci_fdt_reset,
+ .fp_delay = gtmr_delay,
+ .fp_uart_freq = rk3399_platform_uart_freq,
+ .fp_mpstart = arm_fdt_cpu_mpstart,
};
-ARM_PLATFORM(rk3399, "rockchip,rk3399", &rk3399_platform);
+FDT_PLATFORM(rk3399, "rockchip,rk3399", &rk3399_platform);
#endif /* SOC_RK3399 */
@@ -349,18 +349,18 @@
return RK3588_UART_FREQ;
}
-static const struct arm_platform rk3588_platform = {
- .ap_devmap = rk3588_platform_devmap,
- .ap_bootstrap = rk_platform_bootstrap,
- .ap_init_attach_args = rk_platform_init_attach_args,
- .ap_device_register = rk_platform_device_register,
- .ap_reset = psci_fdt_reset,
- .ap_delay = gtmr_delay,
- .ap_uart_freq = rk3588_platform_uart_freq,
- .ap_mpstart = arm_fdt_cpu_mpstart,
+static const struct fdt_platform rk3588_platform = {
+ .fp_devmap = rk3588_platform_devmap,
+ .fp_bootstrap = rk_platform_bootstrap,
+ .fp_init_attach_args = rk_platform_init_attach_args,
+ .fp_device_register = rk_platform_device_register,
+ .fp_reset = psci_fdt_reset,
+ .fp_delay = gtmr_delay,
+ .fp_uart_freq = rk3588_platform_uart_freq,
+ .fp_mpstart = arm_fdt_cpu_mpstart,
};
-ARM_PLATFORM(rk3588, "rockchip,rk3588", &rk3588_platform);
+FDT_PLATFORM(rk3588, "rockchip,rk3588", &rk3588_platform);
#endif /* SOC_RK3588 */
--- src/sys/arch/arm/samsung/exynos_platform.c 2022/10/29 13:29:46 1.39
+++ src/sys/arch/arm/samsung/exynos_platform.c 2023/04/07 08:55:30 1.40
@@ -1,4 +1,4 @@
-/* $NetBSD: exynos_platform.c,v 1.39 2022/10/29 13:29:46 jmcneill Exp $ */
+/* $NetBSD: exynos_platform.c,v 1.40 2023/04/07 08:55:30 skrll Exp $ */
/*-
* Copyright (c) 2017 Jared D. McNeill <jmcneill@invisible.ca>
@@ -35,7 +35,7 @@
#include "ukbd.h"
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: exynos_platform.c,v 1.39 2022/10/29 13:29:46 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: exynos_platform.c,v 1.40 2023/04/07 08:55:30 skrll Exp $");
#define EXYNOS_CORE_VBASE KERNEL_IO_VBASE
@@ -296,18 +296,18 @@
#endif
}
-static const struct arm_platform exynos4_platform = {
- .ap_devmap = exynos4_platform_devmap,
-// .ap_mpstart = exynos4_mpstart,
- .ap_bootstrap = exynos4_platform_bootstrap,
- .ap_init_attach_args = exynos_platform_init_attach_args,
- .ap_device_register = exynos_platform_device_register,
- .ap_reset = exynos5_platform_reset,
- .ap_delay = mct_delay,
- .ap_uart_freq = exynos_platform_uart_freq,
+static const struct fdt_platform exynos4_platform = {
+ .fp_devmap = exynos4_platform_devmap,
+// .fp_mpstart = exynos4_mpstart,
+ .fp_bootstrap = exynos4_platform_bootstrap,
+ .fp_init_attach_args = exynos_platform_init_attach_args,
+ .fp_device_register = exynos_platform_device_register,
+ .fp_reset = exynos5_platform_reset,
+ .fp_delay = mct_delay,
+ .fp_uart_freq = exynos_platform_uart_freq,
};
-ARM_PLATFORM(exynos4, "samsung,exynos4", &exynos4_platform);
+FDT_PLATFORM(exynos4, "samsung,exynos4", &exynos4_platform);
#endif
@@ -362,16 +362,16 @@
arm_fdt_cpu_bootstrap();
}
-static const struct arm_platform exynos5_platform = {
- .ap_devmap = exynos5_platform_devmap,
- .ap_bootstrap = exynos5_platform_bootstrap,
- .ap_mpstart = exynos_platform_mpstart,
- .ap_init_attach_args = exynos_platform_init_attach_args,
- .ap_device_register = exynos_platform_device_register,
- .ap_reset = exynos5_platform_reset,
- .ap_delay = mct_delay,
- .ap_uart_freq = exynos_platform_uart_freq,
+static const struct fdt_platform exynos5_platform = {
+ .fp_devmap = exynos5_platform_devmap,
+ .fp_bootstrap = exynos5_platform_bootstrap,
+ .fp_mpstart = exynos_platform_mpstart,
+ .fp_init_attach_args = exynos_platform_init_attach_args,
+ .fp_device_register = exynos_platform_device_register,
+ .fp_reset = exynos5_platform_reset,
+ .fp_delay = mct_delay,
+ .fp_uart_freq = exynos_platform_uart_freq,
};
-ARM_PLATFORM(exynos5, "samsung,exynos5", &exynos5_platform);
+FDT_PLATFORM(exynos5, "samsung,exynos5", &exynos5_platform);
#endif
--- src/sys/arch/arm/sunxi/sunxi_platform.c 2022/06/28 05:19:03 1.46
+++ src/sys/arch/arm/sunxi/sunxi_platform.c 2023/04/07 08:55:30 1.47
@@ -1,4 +1,4 @@
-/* $NetBSD: sunxi_platform.c,v 1.46 2022/06/28 05:19:03 skrll Exp $ */
+/* $NetBSD: sunxi_platform.c,v 1.47 2023/04/07 08:55:30 skrll Exp $ */
/*-
* Copyright (c) 2017 Jared McNeill <jmcneill@invisible.ca>
@@ -31,7 +31,7 @@
#include "opt_console.h"
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sunxi_platform.c,v 1.46 2022/06/28 05:19:03 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sunxi_platform.c,v 1.47 2023/04/07 08:55:30 skrll Exp $");
#include <sys/param.h>
#include <sys/bus.h>
@@ -40,6 +40,7 @@
#include <sys/termios.h>
#include <dev/fdt/fdtvar.h>
+
#include <arm/fdt/arm_fdtvar.h>
#include <uvm/uvm_extern.h>
@@ -426,121 +427,121 @@
bus_space_write_4(bst, reset_bsh, SUN50I_H6_WDT_MODE, SUN50I_H6_WDT_MODE_EN);
}
-static const struct arm_platform sun4i_platform = {
- .ap_devmap = sunxi_platform_devmap,
- .ap_bootstrap = sun4i_platform_bootstrap,
- .ap_init_attach_args = sunxi_platform_init_attach_args,
- .ap_device_register = sunxi_platform_device_register,
- .ap_reset = sun4i_platform_reset,
- .ap_delay = sun4i_platform_delay,
- .ap_uart_freq = sunxi_platform_uart_freq,
+static const struct fdt_platform sun4i_platform = {
+ .fp_devmap = sunxi_platform_devmap,
+ .fp_bootstrap = sun4i_platform_bootstrap,
+ .fp_init_attach_args = sunxi_platform_init_attach_args,
+ .fp_device_register = sunxi_platform_device_register,
+ .fp_reset = sun4i_platform_reset,
+ .fp_delay = sun4i_platform_delay,
+ .fp_uart_freq = sunxi_platform_uart_freq,
};
-ARM_PLATFORM(sun4i_a10, "allwinner,sun4i-a10", &sun4i_platform);
+FDT_PLATFORM(sun4i_a10, "allwinner,sun4i-a10", &sun4i_platform);
-static const struct arm_platform sun5i_platform = {
- .ap_devmap = sunxi_platform_devmap,
- .ap_bootstrap = sun4i_platform_bootstrap,
- .ap_init_attach_args = sunxi_platform_init_attach_args,
- .ap_device_register = sunxi_platform_device_register,
- .ap_reset = sun4i_platform_reset,
- .ap_delay = sun4i_platform_delay,
- .ap_uart_freq = sunxi_platform_uart_freq,
+static const struct fdt_platform sun5i_platform = {
+ .fp_devmap = sunxi_platform_devmap,
+ .fp_bootstrap = sun4i_platform_bootstrap,
+ .fp_init_attach_args = sunxi_platform_init_attach_args,
+ .fp_device_register = sunxi_platform_device_register,
+ .fp_reset = sun4i_platform_reset,
+ .fp_delay = sun4i_platform_delay,
+ .fp_uart_freq = sunxi_platform_uart_freq,
};
-ARM_PLATFORM(sun5i_a13, "allwinner,sun5i-a13", &sun5i_platform);
-ARM_PLATFORM(sun5i_gr8, "nextthing,gr8", &sun5i_platform);
+FDT_PLATFORM(sun5i_a13, "allwinner,sun5i-a13", &sun5i_platform);
+FDT_PLATFORM(sun5i_gr8, "nextthing,gr8", &sun5i_platform);
-static const struct arm_platform sun6i_platform = {
- .ap_devmap = sunxi_platform_devmap,
- .ap_bootstrap = sun6i_platform_bootstrap,
- .ap_init_attach_args = sunxi_platform_init_attach_args,
- .ap_device_register = sunxi_platform_device_register,
- .ap_reset = sun6i_platform_reset,
- .ap_delay = gtmr_delay,
- .ap_uart_freq = sunxi_platform_uart_freq,
- .ap_mpstart = arm_fdt_cpu_mpstart,
+static const struct fdt_platform sun6i_platform = {
+ .fp_devmap = sunxi_platform_devmap,
+ .fp_bootstrap = sun6i_platform_bootstrap,
+ .fp_init_attach_args = sunxi_platform_init_attach_args,
+ .fp_device_register = sunxi_platform_device_register,
+ .fp_reset = sun6i_platform_reset,
+ .fp_delay = gtmr_delay,
+ .fp_uart_freq = sunxi_platform_uart_freq,
+ .fp_mpstart = arm_fdt_cpu_mpstart,
};
-ARM_PLATFORM(sun6i_a31, "allwinner,sun6i-a31", &sun6i_platform);
+FDT_PLATFORM(sun6i_a31, "allwinner,sun6i-a31", &sun6i_platform);
-static const struct arm_platform sun7i_platform = {
- .ap_devmap = sunxi_platform_devmap,
- .ap_bootstrap = sun4i_platform_bootstrap,
- .ap_init_attach_args = sunxi_platform_init_attach_args,
- .ap_device_register = sunxi_platform_device_register,
- .ap_reset = sun4i_platform_reset,
- .ap_delay = sun4i_platform_delay,
- .ap_uart_freq = sunxi_platform_uart_freq,
- .ap_mpstart = arm_fdt_cpu_mpstart,
+static const struct fdt_platform sun7i_platform = {
+ .fp_devmap = sunxi_platform_devmap,
+ .fp_bootstrap = sun4i_platform_bootstrap,
+ .fp_init_attach_args = sunxi_platform_init_attach_args,
+ .fp_device_register = sunxi_platform_device_register,
+ .fp_reset = sun4i_platform_reset,
+ .fp_delay = sun4i_platform_delay,
+ .fp_uart_freq = sunxi_platform_uart_freq,
+ .fp_mpstart = arm_fdt_cpu_mpstart,
};
-ARM_PLATFORM(sun7i_a20, "allwinner,sun7i-a20", &sun7i_platform);
+FDT_PLATFORM(sun7i_a20, "allwinner,sun7i-a20", &sun7i_platform);
-static const struct arm_platform sun8i_platform = {
- .ap_devmap = sunxi_platform_devmap,
- .ap_bootstrap = sun6i_platform_bootstrap,
- .ap_init_attach_args = sunxi_platform_init_attach_args,
- .ap_device_register = sunxi_platform_device_register,
- .ap_reset = sun6i_platform_reset,
- .ap_delay = gtmr_delay,
- .ap_uart_freq = sunxi_platform_uart_freq,
- .ap_mpstart = arm_fdt_cpu_mpstart,
+static const struct fdt_platform sun8i_platform = {
+ .fp_devmap = sunxi_platform_devmap,
+ .fp_bootstrap = sun6i_platform_bootstrap,
+ .fp_init_attach_args = sunxi_platform_init_attach_args,
+ .fp_device_register = sunxi_platform_device_register,
+ .fp_reset = sun6i_platform_reset,
+ .fp_delay = gtmr_delay,
+ .fp_uart_freq = sunxi_platform_uart_freq,
+ .fp_mpstart = arm_fdt_cpu_mpstart,
};
-ARM_PLATFORM(sun8i_h2plus, "allwinner,sun8i-h2-plus", &sun8i_platform);
-ARM_PLATFORM(sun8i_h3, "allwinner,sun8i-h3", &sun8i_platform);
-ARM_PLATFORM(sun8i_v3s, "allwinner,sun8i-v3s", &sun8i_platform);
+FDT_PLATFORM(sun8i_h2plus, "allwinner,sun8i-h2-plus", &sun8i_platform);
+FDT_PLATFORM(sun8i_h3, "allwinner,sun8i-h3", &sun8i_platform);
+FDT_PLATFORM(sun8i_v3s, "allwinner,sun8i-v3s", &sun8i_platform);
-static const struct arm_platform sun8i_a83t_platform = {
- .ap_devmap = sun8i_a83t_platform_devmap,
- .ap_bootstrap = sun6i_platform_bootstrap,
- .ap_init_attach_args = sunxi_platform_init_attach_args,
- .ap_device_register = sunxi_platform_device_register,
- .ap_reset = sun6i_platform_reset,
- .ap_delay = gtmr_delay,
- .ap_uart_freq = sunxi_platform_uart_freq,
- .ap_mpstart = arm_fdt_cpu_mpstart,
+static const struct fdt_platform sun8i_a83t_platform = {
+ .fp_devmap = sun8i_a83t_platform_devmap,
+ .fp_bootstrap = sun6i_platform_bootstrap,
+ .fp_init_attach_args = sunxi_platform_init_attach_args,
+ .fp_device_register = sunxi_platform_device_register,
+ .fp_reset = sun6i_platform_reset,
+ .fp_delay = gtmr_delay,
+ .fp_uart_freq = sunxi_platform_uart_freq,
+ .fp_mpstart = arm_fdt_cpu_mpstart,
};
-ARM_PLATFORM(sun8i_a83t, "allwinner,sun8i-a83t", &sun8i_a83t_platform);
+FDT_PLATFORM(sun8i_a83t, "allwinner,sun8i-a83t", &sun8i_a83t_platform);
-static const struct arm_platform sun9i_platform = {
- .ap_devmap = sun9i_a80_platform_devmap,
- .ap_bootstrap = sun9i_platform_bootstrap,
- .ap_init_attach_args = sunxi_platform_init_attach_args,
- .ap_device_register = sunxi_platform_device_register,
- .ap_reset = sun9i_platform_reset,
- .ap_delay = gtmr_delay,
- .ap_uart_freq = sunxi_platform_uart_freq,
- .ap_mpstart = arm_fdt_cpu_mpstart,
+static const struct fdt_platform sun9i_platform = {
+ .fp_devmap = sun9i_a80_platform_devmap,
+ .fp_bootstrap = sun9i_platform_bootstrap,
+ .fp_init_attach_args = sunxi_platform_init_attach_args,
+ .fp_device_register = sunxi_platform_device_register,
+ .fp_reset = sun9i_platform_reset,
+ .fp_delay = gtmr_delay,
+ .fp_uart_freq = sunxi_platform_uart_freq,
+ .fp_mpstart = arm_fdt_cpu_mpstart,
};
-ARM_PLATFORM(sun9i_a80, "allwinner,sun9i-a80", &sun9i_platform);
+FDT_PLATFORM(sun9i_a80, "allwinner,sun9i-a80", &sun9i_platform);
-static const struct arm_platform sun50i_platform = {
- .ap_devmap = sunxi_platform_devmap,
- .ap_bootstrap = sun6i_platform_bootstrap,
- .ap_init_attach_args = sunxi_platform_init_attach_args,
- .ap_device_register = sunxi_platform_device_register,
- .ap_reset = sun6i_platform_reset,
- .ap_delay = gtmr_delay,
- .ap_uart_freq = sunxi_platform_uart_freq,
- .ap_mpstart = arm_fdt_cpu_mpstart,
+static const struct fdt_platform sun50i_platform = {
+ .fp_devmap = sunxi_platform_devmap,
+ .fp_bootstrap = sun6i_platform_bootstrap,
+ .fp_init_attach_args = sunxi_platform_init_attach_args,
+ .fp_device_register = sunxi_platform_device_register,
+ .fp_reset = sun6i_platform_reset,
+ .fp_delay = gtmr_delay,
+ .fp_uart_freq = sunxi_platform_uart_freq,
+ .fp_mpstart = arm_fdt_cpu_mpstart,
};
-ARM_PLATFORM(sun50i_a64, "allwinner,sun50i-a64", &sun50i_platform);
-ARM_PLATFORM(sun50i_h5, "allwinner,sun50i-h5", &sun50i_platform);
+FDT_PLATFORM(sun50i_a64, "allwinner,sun50i-a64", &sun50i_platform);
+FDT_PLATFORM(sun50i_h5, "allwinner,sun50i-h5", &sun50i_platform);
-static const struct arm_platform sun50i_h6_platform = {
- .ap_devmap = sunxi_platform_devmap,
- .ap_bootstrap = sun50i_h6_platform_bootstrap,
- .ap_init_attach_args = sunxi_platform_init_attach_args,
- .ap_device_register = sunxi_platform_device_register,
- .ap_reset = sun50i_h6_platform_reset,
- .ap_delay = gtmr_delay,
- .ap_uart_freq = sunxi_platform_uart_freq,
- .ap_mpstart = arm_fdt_cpu_mpstart,
+static const struct fdt_platform sun50i_h6_platform = {
+ .fp_devmap = sunxi_platform_devmap,
+ .fp_bootstrap = sun50i_h6_platform_bootstrap,
+ .fp_init_attach_args = sunxi_platform_init_attach_args,
+ .fp_device_register = sunxi_platform_device_register,
+ .fp_reset = sun50i_h6_platform_reset,
+ .fp_delay = gtmr_delay,
+ .fp_uart_freq = sunxi_platform_uart_freq,
+ .fp_mpstart = arm_fdt_cpu_mpstart,
};
-ARM_PLATFORM(sun50i_h6, "allwinner,sun50i-h6", &sun50i_h6_platform);
+FDT_PLATFORM(sun50i_h6, "allwinner,sun50i-h6", &sun50i_h6_platform);
--- src/sys/arch/arm/ti/am3_platform.c 2020/09/28 11:54:23 1.3
+++ src/sys/arch/arm/ti/am3_platform.c 2023/04/07 08:55:30 1.4
--- src/sys/arch/arm/ti/omap3_platform.c 2021/04/24 23:36:29 1.7
+++ src/sys/arch/arm/ti/omap3_platform.c 2023/04/07 08:55:30 1.8
--- src/sys/arch/arm/vexpress/vexpress_platform.c 2021/04/24 23:36:29 1.22
+++ src/sys/arch/arm/vexpress/vexpress_platform.c 2023/04/07 08:55:31 1.23
--- src/sys/arch/arm/xilinx/zynq_platform.c 2022/10/31 22:23:38 1.10
+++ src/sys/arch/arm/xilinx/zynq_platform.c 2023/04/07 08:55:31 1.11
--- src/sys/arch/evbarm/fdt/fdt_bus_machdep.c 2022/10/15 11:07:39 1.2
+++ src/sys/arch/evbarm/fdt/fdt_bus_machdep.c 2023/04/07 08:55:31 1.3
@@ -1,4 +1,4 @@
-/* $NetBSD: fdt_bus_machdep.c,v 1.2 2022/10/15 11:07:39 jmcneill Exp $ */
+/* $NetBSD: fdt_bus_machdep.c,v 1.3 2023/04/07 08:55:31 skrll Exp $ */
/*-
* Copyright (c) 2021 Jared McNeill <jmcneill@invisible.ca>
@@ -27,13 +27,14 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fdt_bus_machdep.c,v 1.2 2022/10/15 11:07:39 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fdt_bus_machdep.c,v 1.3 2023/04/07 08:55:31 skrll Exp $");
#include <sys/param.h>
#include <sys/bus.h>
#include <sys/kmem.h>
#include <dev/fdt/fdtvar.h>
+
#include <arm/fdt/arm_fdtvar.h>
extern struct bus_space arm_generic_bs_tag;
@@ -52,11 +53,11 @@
bus_space_tag_t
fdtbus_bus_tag_create(int phandle, uint32_t flags)
{
- const struct arm_platform *plat = arm_fdt_platform();
+ const struct fdt_platform *plat = fdt_platform_find();
struct bus_space *tagp;
struct fdt_attach_args faa;
- plat->ap_init_attach_args(&faa);
+ plat->fp_init_attach_args(&faa);
tagp = kmem_alloc(sizeof(*tagp), KM_SLEEP);
*tagp = *faa.faa_bst;
--- src/sys/arch/evbarm/fdt/fdt_machdep.c 2023/03/05 22:04:54 1.101
+++ src/sys/arch/evbarm/fdt/fdt_machdep.c 2023/04/07 08:55:31 1.102
@@ -1,4 +1,4 @@
-/* $NetBSD: fdt_machdep.c,v 1.101 2023/03/05 22:04:54 mlelstv Exp $ */
+/* $NetBSD: fdt_machdep.c,v 1.102 2023/04/07 08:55:31 skrll Exp $ */
/*-
* Copyright (c) 2015-2017 Jared McNeill <jmcneill@invisible.ca>
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fdt_machdep.c,v 1.101 2023/03/05 22:04:54 mlelstv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fdt_machdep.c,v 1.102 2023/04/07 08:55:31 skrll Exp $");
#include "opt_arm_debug.h"
#include "opt_bootconfig.h"
@@ -92,6 +92,8 @@
#include <evbarm/fdt/platform.h>
#include <arm/fdt/arm_fdtvar.h>
+
+#include <dev/fdt/fdtvar.h>
#include <dev/fdt/fdt_private.h>
#include <dev/fdt/fdt_memory.h>
@@ -489,7 +491,7 @@
vaddr_t
initarm(void *arg)
{
- const struct arm_platform *plat;
+ const struct fdt_platform *plat;
uint64_t memory_start, memory_end;
/* set temporally to work printf()/panic() even before consinit() */
@@ -511,7 +513,7 @@
fdtbus_init(fdt_data);
/* Lookup platform specific backend */
- plat = arm_fdt_platform();
+ plat = fdt_platform_find();
if (plat == NULL)
panic("Kernel does not support this device");
@@ -533,12 +535,12 @@
* l1pt VA is fine
*/
- VPRINTF("devmap %p\n", plat->ap_devmap());
+ VPRINTF("devmap %p\n", plat->fp_devmap());
extern char ARM_BOOTSTRAP_LxPT[];
- pmap_devmap_bootstrap((vaddr_t)ARM_BOOTSTRAP_LxPT, plat->ap_devmap());
+ pmap_devmap_bootstrap((vaddr_t)ARM_BOOTSTRAP_LxPT, plat->fp_devmap());
VPRINTF("bootstrap\n");
- plat->ap_bootstrap();
+ plat->fp_bootstrap();
/*
* If stdout-path is specified on the command line, override the
@@ -637,8 +639,8 @@
error = 0;
if ((boothowto & RB_MD1) == 0) {
VPRINTF("mpstart\n");
- if (plat->ap_mpstart)
- error = plat->ap_mpstart();
+ if (plat->fp_mpstart)
+ error = plat->fp_mpstart();
}
if (error)
@@ -696,7 +698,7 @@
consinit(void)
{
static bool initialized = false;
- const struct arm_platform *plat = arm_fdt_platform();
+ const struct fdt_platform *plat = fdt_platform_find();
const struct fdt_console *cons = fdtbus_get_console();
struct fdt_attach_args faa;
u_int uart_freq = 0;
@@ -704,11 +706,11 @@
if (initialized || cons == NULL)
return;
- plat->ap_init_attach_args(&faa);
+ plat->fp_init_attach_args(&faa);
faa.faa_phandle = fdtbus_get_stdout_phandle();
- if (plat->ap_uart_freq != NULL)
- uart_freq = plat->ap_uart_freq();
+ if (plat->fp_uart_freq != NULL)
+ uart_freq = plat->fp_uart_freq();
cons->consinit(&faa, uart_freq);
@@ -733,9 +735,9 @@
void
delay(u_int us)
{
- const struct arm_platform *plat = arm_fdt_platform();
+ const struct fdt_platform *plat = fdt_platform_find();
- plat->ap_delay(us);
+ plat->fp_delay(us);
}
static void
@@ -849,7 +851,7 @@
static void
fdt_device_register(device_t self, void *aux)
{
- const struct arm_platform *plat = arm_fdt_platform();
+ const struct fdt_platform *plat = fdt_platform_find();
if (device_is_a(self, "armfdt")) {
fdt_setup_initrd();
@@ -870,8 +872,8 @@
}
#endif
- if (plat && plat->ap_device_register)
- plat->ap_device_register(self, aux);
+ if (plat && plat->fp_device_register)
+ plat->fp_device_register(self, aux);
}
static void
@@ -910,12 +912,12 @@
static void
fdt_reset(void)
{
- const struct arm_platform *plat = arm_fdt_platform();
+ const struct fdt_platform *plat = fdt_platform_find();
fdtbus_power_reset();
- if (plat && plat->ap_reset)
- plat->ap_reset();
+ if (plat && plat->fp_reset)
+ plat->fp_reset();
}
static void
/* $NetBSD: fdt_platform.c,v 1.1 2023/04/07 08:55:31 skrll Exp $ */
/*-
* Copyright (c) 2017 Jared D. McNeill <jmcneill@invisible.ca>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: fdt_platform.c,v 1.1 2023/04/07 08:55:31 skrll Exp $");
#include <sys/param.h>
#include <dev/ofw/openfirm.h>
#include <dev/fdt/fdtvar.h>
const struct fdt_platform *
fdt_platform_find(void)
{
static const struct fdt_platform_info *booted_platform = NULL;
__link_set_decl(fdt_platforms, struct fdt_platform_info);
struct fdt_platform_info * const *info;
if (booted_platform == NULL) {
const struct fdt_platform_info *best_info = NULL;
const int phandle = OF_peer(0);
int match, best_match = 0;
__link_set_foreach(info, fdt_platforms) {
const struct device_compatible_entry compat_data[] = {
{ .compat = (*info)->fpi_compat },
DEVICE_COMPAT_EOL
};
match = of_compatible_match(phandle, compat_data);
if (match > best_match) {
best_match = match;
best_info = *info;
}
}
booted_platform = best_info;
}
/*
* No SoC specific platform was found. Try to find a generic
* platform definition and use that if available.
*/
if (booted_platform == NULL) {
__link_set_foreach(info, fdt_platforms) {
if (strcmp((*info)->fpi_compat, FDT_PLATFORM_DEFAULT) == 0) {
booted_platform = *info;
break;
}
}
}
return booted_platform == NULL ? NULL : booted_platform->fpi_ops;
}
// XXXNH remove this and rely on a default
FDT_PLATFORM(dummy, NULL, NULL);
--- src/sys/dev/fdt/fdtvar.h 2022/03/04 08:19:06 1.77
+++ src/sys/dev/fdt/fdtvar.h 2023/04/07 08:55:31 1.78
@@ -1,4 +1,4 @@
-/* $NetBSD: fdtvar.h,v 1.77 2022/03/04 08:19:06 skrll Exp $ */
+/* $NetBSD: fdtvar.h,v 1.78 2023/04/07 08:55:31 skrll Exp $ */
/*-
* Copyright (c) 2015 Jared D. McNeill <jmcneill@invisible.ca>
@@ -305,6 +305,44 @@
_FDT_OPP_REGISTER(_name)
TAILQ_HEAD(fdt_conslist, fdt_console_info);
+
+/*
+ * Platform-specific data
+ */
+
+struct fdt_platform {
+ const struct pmap_devmap *
+ (*fp_devmap)(void);
+ void (*fp_bootstrap)(void);
+ int (*fp_mpstart)(void);
+ void (*fp_startup)(void);
+ void (*fp_init_attach_args)(struct fdt_attach_args *);
+ void (*fp_device_register)(device_t, void *);
+ void (*fp_reset)(void);
+ void (*fp_delay)(u_int);
+ u_int (*fp_uart_freq)(void);
+};
+
+struct fdt_platform_info {
+ const char * fpi_compat;
+ const struct fdt_platform * fpi_ops;
+};
+
+#define FDT_PLATFORM_DEFAULT ""
+
+#define _FDT_PLATFORM_REGISTER(name) \
+ __link_set_add_rodata(fdt_platforms, __CONCAT(name,_platinfo));
+
+#define FDT_PLATFORM(_name, _compat, _ops) \
+static const struct fdt_platform_info __CONCAT(_name,_platinfo) = { \
+ .fpi_compat = (_compat), \
+ .fpi_ops = (_ops) \
+}; \
+_FDT_PLATFORM_REGISTER(_name)
+
+const struct fdt_platform *
+ fdt_platform_find(void);
+
struct fdt_dma_range {
paddr_t dr_sysbase;
--- src/sys/dev/fdt/files.fdt 2022/11/05 17:31:37 1.66
+++ src/sys/dev/fdt/files.fdt 2023/04/07 08:55:31 1.67
@@ -1,4 +1,4 @@
-# $NetBSD: files.fdt,v 1.66 2022/11/05 17:31:37 jmcneill Exp $
+# $NetBSD: files.fdt,v 1.67 2023/04/07 08:55:31 skrll Exp $
include "external/bsd/libfdt/conf/files.libfdt"
@@ -68,6 +68,7 @@
file dev/fdt/fdt_memory.c fdtbase
file dev/fdt/fdt_openfirm.c fdtbase
+file dev/fdt/fdt_platform.c fdtbase
file dev/fdt/fdt_subr.c fdtbase
file dev/fdt/fdt_clock.c fdt