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