summaryrefslogtreecommitdiffstats
path: root/sys/arm
diff options
context:
space:
mode:
authorian <ian@FreeBSD.org>2013-12-13 22:30:21 +0000
committerian <ian@FreeBSD.org>2013-12-13 22:30:21 +0000
commitc48d670c8a661e6586e75189455097f017d455c2 (patch)
tree30e1a1deb5d7ef6efd7a969db7760b6a40053e42 /sys/arm
parent3a53055ae2f8c045302ce666103698d16edb0d27 (diff)
downloadFreeBSD-src-c48d670c8a661e6586e75189455097f017d455c2.zip
FreeBSD-src-c48d670c8a661e6586e75189455097f017d455c2.tar.gz
MFC r257476, r257478:
Revamp the SoC identity numbering scheme to be more in line with the way Freescale numbers the chips in the ID registers. Add definitions for the register and data that describes the SoC type.
Diffstat (limited to 'sys/arm')
-rw-r--r--sys/arm/freescale/imx/imx6_anatopreg.h6
-rw-r--r--sys/arm/freescale/imx/imx_machdep.h25
2 files changed, 18 insertions, 13 deletions
diff --git a/sys/arm/freescale/imx/imx6_anatopreg.h b/sys/arm/freescale/imx/imx6_anatopreg.h
index cfc15d7..5a53d15 100644
--- a/sys/arm/freescale/imx/imx6_anatopreg.h
+++ b/sys/arm/freescale/imx/imx6_anatopreg.h
@@ -122,7 +122,9 @@
#define IMX6_ANALOG_USB2_MISC_CLR 0x258
#define IMX6_ANALOG_USB2_MISC_TOG 0x25C
#define IMX6_ANALOG_DIGPROG 0x260
-
-
+#define IMX6_ANALOG_DIGPROG_SL 0x280
+#define IMX6_ANALOG_DIGPROG_SOCTYPE_SHIFT 16
+#define IMX6_ANALOG_DIGPROG_SOCTYPE_MASK \
+ (0xff << IMX6_ANALOG_DIGPROG_SOCTYPE_SHIFT)
#endif
diff --git a/sys/arm/freescale/imx/imx_machdep.h b/sys/arm/freescale/imx/imx_machdep.h
index 9e736e1..bb99111 100644
--- a/sys/arm/freescale/imx/imx_machdep.h
+++ b/sys/arm/freescale/imx/imx_machdep.h
@@ -36,24 +36,27 @@
void imx_devmap_addentry(vm_paddr_t _pa, vm_size_t _sz);
void imx_wdog_cpu_reset(vm_offset_t _wdcr_phys) __attribute__((__noreturn__));
+/* From here down, routines are implemented in imxNN_machdep.c. */
+
/*
* SoC identity.
+ * According to the documentation, there is such a thing as an i.MX6 Dual
+ * (non-lite flavor). However, Freescale doesn't seem to have assigned it a
+ * number in their code for determining the SoC type in u-boot.
+ *
+ * To-do: put silicon revision numbers into the low-order bits somewhere.
*/
-#define IMXSOC_51 0x05000100
-#define IMXSOC_53 0x05000300
-#define IMXSOC_6S 0x06000010
-#define IMXSOC_6SL 0x06000011
-#define IMXSOC_6D 0x06000020
-#define IMXSOC_6DL 0x06000021
-#define IMXSOC_6Q 0x06000040
-#define IMXSOC_6QL 0x06000041
-#define IMXSOC_FAMSHIFT 24
+#define IMXSOC_51 0x51000000
+#define IMXSOC_53 0x53000000
+#define IMXSOC_6SL 0x60000000
+#define IMXSOC_6DL 0x61000000
+#define IMXSOC_6S 0x62000000
+#define IMXSOC_6Q 0x63000000
+#define IMXSOC_FAMSHIFT 28
u_int imx_soc_type(void);
u_int imx_soc_family(void);
-/* From here down, routines are implemented in imxNN_machdep.c. */
-
void imx_devmap_init(void);
/*
OpenPOWER on IntegriCloud