Module Name: src
Committed By: bouyer
Date: Thu May 4 13:28:05 UTC 2023
Modified Files:
src/sys/arch/arm/nxp: imx6_platform.c imx6_reg.h
Log Message:
i.mx6sx platform support:
- the i.mx6sx has a third AIPS, so KERNEL_IO_IOREG map has to be larger
- the uart clock is at 24Mhz instead of 80.
To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/sys/arch/arm/nxp/imx6_platform.c
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/nxp/imx6_reg.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/nxp/imx6_platform.c
diff -u src/sys/arch/arm/nxp/imx6_platform.c:1.7 src/sys/arch/arm/nxp/imx6_platform.c:1.8
--- src/sys/arch/arm/nxp/imx6_platform.c:1.7 Fri Apr 7 08:55:30 2023
+++ src/sys/arch/arm/nxp/imx6_platform.c Thu May 4 13:28:04 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: imx6_platform.c,v 1.7 2023/04/07 08:55:30 skrll Exp $ */
+/* $NetBSD: imx6_platform.c,v 1.8 2023/05/04 13:28:04 bouyer 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.7 2023/04/07 08:55:30 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: imx6_platform.c,v 1.8 2023/05/04 13:28:04 bouyer Exp $");
#include "arml2cc.h"
#include "opt_console.h"
@@ -67,6 +67,7 @@ __KERNEL_RCSID(0, "$NetBSD: imx6_platfor
#include <libfdt.h>
#define IMX_REF_FREQ 80000000
+#define IMX6SX_REF_FREQ 24000000
#ifdef VERBOSE_INIT_ARM
#define VPRINTF(...) printf(__VA_ARGS__)
@@ -89,6 +90,18 @@ imx_platform_devmap(void)
return devmap;
}
+static const struct pmap_devmap *
+imx6sx_platform_devmap(void)
+{
+ static const struct pmap_devmap devmap[] = {
+ DEVMAP_ENTRY(KERNEL_IO_IOREG_VBASE, IMX6_IOREG_PBASE, IMX6SX_IOREG_SIZE),
+ DEVMAP_ENTRY(KERNEL_IO_ARMCORE_VBASE, IMX6_ARMCORE_PBASE, IMX6_ARMCORE_SIZE),
+ DEVMAP_ENTRY_END
+ };
+
+ return devmap;
+}
+
static void
imx_platform_init_attach_args(struct fdt_attach_args *faa)
{
@@ -140,6 +153,13 @@ imx_platform_uart_freq(void)
return IMX_REF_FREQ;
}
+static u_int
+imx6sx_platform_uart_freq(void)
+{
+ return IMX6SX_REF_FREQ;
+}
+
+
static void
imx_platform_bootstrap(void)
{
@@ -234,6 +254,18 @@ static const struct fdt_platform imx6_pl
.fp_mpstart = imx_platform_mpstart,
};
+static const struct fdt_platform imx6sx_platform = {
+ .fp_devmap = imx6sx_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 = imx6sx_platform_uart_freq,
+ .fp_mpstart = imx_platform_mpstart,
+};
+
FDT_PLATFORM(imx6dl, "fsl,imx6dl", &imx6_platform);
+FDT_PLATFORM(imx6sx, "fsl,imx6sx", &imx6sx_platform);
FDT_PLATFORM(imx6q, "fsl,imx6q", &imx6_platform);
FDT_PLATFORM(imx6qp, "fsl,imx6qp", &imx6_platform);
Index: src/sys/arch/arm/nxp/imx6_reg.h
diff -u src/sys/arch/arm/nxp/imx6_reg.h:1.1 src/sys/arch/arm/nxp/imx6_reg.h:1.2
--- src/sys/arch/arm/nxp/imx6_reg.h:1.1 Wed Dec 23 14:42:38 2020
+++ src/sys/arch/arm/nxp/imx6_reg.h Thu May 4 13:28:04 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: imx6_reg.h,v 1.1 2020/12/23 14:42:38 skrll Exp $ */
+/* $NetBSD: imx6_reg.h,v 1.2 2023/05/04 13:28:04 bouyer Exp $ */
/*-
* Copyright (c) 2012 The NetBSD Foundation, Inc.
@@ -34,6 +34,7 @@
#define IMX6_IOREG_PBASE IMX6_AIPS1_BASE
#define IMX6_IOREG_SIZE (IMX6_AIPS1_SIZE + IMX6_AIPS2_SIZE)
+#define IMX6SX_IOREG_SIZE (IMX6_AIPS1_SIZE + IMX6_AIPS2_SIZE + IMX6_AIPS3_SIZE)
#define IMX6_ARMCORE_PBASE IMX6_MPCORE_BASE
#define IMX6_ARMCORE_SIZE IMX6_MPCORE_SIZE
@@ -62,6 +63,9 @@
#define IMX6_SATA_BASE 0x02200000
#define IMX6_SATA_SIZE 0x00004000
+#define IMX6_AIPS3_BASE 0x02200000
+#define IMX6_AIPS3_SIZE 0x00100000
+
#define IMX6_AIPS2_BASE 0x02100000
#define IMX6_AIPS2_SIZE 0x00100000