summaryrefslogtreecommitdiffstats
path: root/sys/boot
diff options
context:
space:
mode:
authorian <ian@FreeBSD.org>2014-05-16 00:14:50 +0000
committerian <ian@FreeBSD.org>2014-05-16 00:14:50 +0000
commite58449eb7bc00b546bc709cb6348a17b98b8e5e6 (patch)
tree22b6c19e6005b89913582be3c50a3f7a2933415b /sys/boot
parentf083c46ffb97127283c21b8ede4df56856ff45d2 (diff)
downloadFreeBSD-src-e58449eb7bc00b546bc709cb6348a17b98b8e5e6.zip
FreeBSD-src-e58449eb7bc00b546bc709cb6348a17b98b8e5e6.tar.gz
MFC r262409, r262411, r262413, r262420, r262426, r262427, r262440, r262456,
r262482, r262483, r262531, Move the declaration for mpentry() into a header file instead of pasting it into a bunch of different .c files. If the L2 cache type is PIPT, pass a physical address for a flush. Actually set the proper bit to indicate TTB shared memory. Add a new cache maintenance function, idcache_inv_all, to the table, and implementations for each of the chips we support. Invalidate caches immediately upon entry to init_secondary(). Also set the Bufferable bit in the PDE entries of the secondary processor startup pagetables. Add the bits needed to run SMP on imx6. Invalidate the SCU cache tag ram on all 4 cores, not just 1-3. Minor tweaks to the imx GPT timer Vybrid enhancements... - Pin configuration is a complete iomux register now and includes drive strength, pull mode, mux mode, speed, etc. - Add i2c devices to the tree - Add IPG clock - Add support for Quartz Module. - Pin configuration is a complete iomux register now and includes drive strength, pull mode, mux mode, speed, etc. - Add i2c devices to the tree - Add IPG clock
Diffstat (limited to 'sys/boot')
-rw-r--r--sys/boot/fdt/dts/vybrid-colibri-vf50.dts19
-rw-r--r--sys/boot/fdt/dts/vybrid-cosmic.dts15
-rw-r--r--sys/boot/fdt/dts/vybrid-quartz.dts70
-rw-r--r--sys/boot/fdt/dts/vybrid.dtsi153
4 files changed, 207 insertions, 50 deletions
diff --git a/sys/boot/fdt/dts/vybrid-colibri-vf50.dts b/sys/boot/fdt/dts/vybrid-colibri-vf50.dts
index 618a05c..6d4d934 100644
--- a/sys/boot/fdt/dts/vybrid-colibri-vf50.dts
+++ b/sys/boot/fdt/dts/vybrid-colibri-vf50.dts
@@ -45,17 +45,26 @@
fec1: ethernet@400D1000 {
status = "okay";
- iomux_config = < 54 0x1 55 0x1
- 56 0x1 57 0x1
- 58 0x1 59 0x1
- 60 0x1 61 0x1
- 62 0x1 0 0x1 >;
+ iomux_config = < 54 0x103192
+ 55 0x103193
+ 56 0x103191
+ 57 0x103191
+ 58 0x103191
+ 59 0x103191
+ 60 0x103192
+ 61 0x103192
+ 62 0x103192
+ 0 0x103191 >;
};
sai3: sai@40032000 {
status = "okay";
};
+ i2c0: i2c@40066000 {
+ status = "okay";
+ };
+
adc0: adc@4003B000 {
status = "okay";
};
diff --git a/sys/boot/fdt/dts/vybrid-cosmic.dts b/sys/boot/fdt/dts/vybrid-cosmic.dts
index b4e9805..c98c093 100644
--- a/sys/boot/fdt/dts/vybrid-cosmic.dts
+++ b/sys/boot/fdt/dts/vybrid-cosmic.dts
@@ -45,11 +45,16 @@
fec1: ethernet@400D1000 {
status = "okay";
- iomux_config = < 54 0x1 55 0x1
- 56 0x1 57 0x1
- 58 0x1 59 0x1
- 60 0x1 61 0x1
- 62 0x1 0 0x2 >;
+ iomux_config = < 54 0x103192
+ 55 0x103193
+ 56 0x103191
+ 57 0x103191
+ 58 0x103191
+ 59 0x103191
+ 60 0x103192
+ 61 0x103192
+ 62 0x103192
+ 0 0x203191 >;
};
esai: esai@40062000 {
diff --git a/sys/boot/fdt/dts/vybrid-quartz.dts b/sys/boot/fdt/dts/vybrid-quartz.dts
new file mode 100644
index 0000000..d978796
--- /dev/null
+++ b/sys/boot/fdt/dts/vybrid-quartz.dts
@@ -0,0 +1,70 @@
+/*-
+ * Copyright (c) 2014 Ruslan Bukin <br@bsdpad.com>
+ * 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 AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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.
+ *
+ * $FreeBSD$
+ */
+
+/dts-v1/;
+
+/include/ "vybrid.dtsi"
+
+/ {
+ model = "Device Solutions Quartz Module";
+
+ memory {
+ device_type = "memory";
+ reg = < 0x80000000 0x10000000 >; /* 256MB RAM */
+ };
+
+ SOC: vybrid {
+ serial0: serial@40027000 {
+ status = "okay";
+ };
+
+ fec1: ethernet@400D1000 {
+ status = "okay";
+ iomux_config = < 54 0x103192
+ 55 0x103193
+ 56 0x103191
+ 57 0x103191
+ 58 0x103191
+ 59 0x103191
+ 60 0x103192
+ 61 0x103192
+ 62 0x103192
+ 0 0x203191 >;
+ };
+
+ edma1: edma@40098000 {
+ status = "okay";
+ };
+ };
+
+ chosen {
+ bootargs = "-v";
+ stdin = "serial0";
+ stdout = "serial0";
+ };
+};
diff --git a/sys/boot/fdt/dts/vybrid.dtsi b/sys/boot/fdt/dts/vybrid.dtsi
index 5c815de..154c1ab 100644
--- a/sys/boot/fdt/dts/vybrid.dtsi
+++ b/sys/boot/fdt/dts/vybrid.dtsi
@@ -205,9 +205,12 @@
clock-frequency = <50000000>;
status = "disabled";
clock_names = "esdhc1";
- iomux_config = < 14 0x5 15 0x5
- 16 0x5 17 0x5
- 18 0x5 19 0x5 >;
+ iomux_config = < 14 0x500060
+ 15 0x500060
+ 16 0x500060
+ 17 0x500060
+ 18 0x500060
+ 19 0x500060 >;
};
serial0: serial@40027000 {
@@ -237,6 +240,8 @@
< 0x40050800 0x100 >; /* phy */
interrupts = < 107 >;
interrupt-parent = <&GIC>;
+ iomux_config = < 134 0x0001be
+ 7 0x200060 >;
};
usb@400b4000 {
@@ -246,6 +251,8 @@
< 0x40050C00 0x100 >; /* phy */
interrupts = < 108 >;
interrupt-parent = <&GIC>;
+ iomux_config = < 134 0x0001be
+ 7 0x200060 >;
};
fec0: ethernet@400D0000 {
@@ -257,11 +264,15 @@
phy-disable-preamble;
status = "disabled";
clock_names = "enet";
- iomux_config = < 45 0x1 46 0x1
- 47 0x1 48 0x1
- 49 0x1 50 0x1
- 51 0x1 52 0x1
- 53 0x1 >;
+ iomux_config = < 45 0x100061
+ 46 0x100061
+ 47 0x100061
+ 48 0x100060
+ 49 0x100060
+ 50 0x100060
+ 51 0x100060
+ 52 0x100060
+ 53 0x100060 >;
};
fec1: ethernet@400D1000 {
@@ -273,11 +284,15 @@
phy-disable-preamble;
status = "disabled";
clock_names = "enet";
- iomux_config = < 54 0x1 55 0x1
- 56 0x1 57 0x1
- 58 0x1 59 0x1
- 60 0x1 61 0x1
- 62 0x1 >;
+ iomux_config = < 54 0x103192
+ 55 0x103193
+ 56 0x103191
+ 57 0x103191
+ 58 0x103191
+ 59 0x103191
+ 60 0x103192
+ 61 0x103192
+ 62 0x103192 >;
};
sai0: sai@4002F000 {
@@ -315,10 +330,10 @@
edma-src-transmit = < 9 >;
edma-mux-group = < 1 >;
clock_names = "sai3", "cko1";
- iomux_config = < 16 0x2
- 19 0x2
- 21 0x2
- 40 0x4 >; /* CKO1 */
+ iomux_config = < 16 0x200060
+ 19 0x200060
+ 21 0x200060
+ 40 0x400061 >; /* CKO1 */
};
esai: esai@40062000 {
@@ -328,11 +343,16 @@
interrupt-parent = <&GIC>;
status = "disabled";
clock_names = "esai";
- iomux_config = < 45 0x4 46 0x4
- 47 0x4 48 0x4
- 49 0x4 50 0x4
- 51 0x4 52 0x4
- 78 0x3 40 0x4>;
+ iomux_config = < 45 0x400061
+ 46 0x400061
+ 47 0x400061
+ 48 0x400060
+ 49 0x400060
+ 50 0x400060
+ 51 0x400060
+ 52 0x400060
+ 78 0x3038df
+ 40 0x400061 >;
};
spi0: spi@4002C000 {
@@ -341,9 +361,11 @@
interrupts = < 99 >;
interrupt-parent = <&GIC>;
status = "disabled";
- iomux_config = < 40 0x1 41 0x1
- 42 0x1 43 0x1
- 44 0x1 >;
+ iomux_config = < 40 0x100061
+ 41 0x100061
+ 42 0x100060
+ 43 0x100060
+ 44 0x100061 >;
};
spi1: spi@4002D000 {
@@ -370,6 +392,43 @@
status = "disabled";
};
+ i2c0: i2c@40066000 {
+ compatible = "fsl,mvf600-i2c";
+ reg = <0x40066000 0x1000>;
+ interrupts = < 103 >;
+ interrupt-parent = <&GIC>;
+ status = "disabled";
+ clock_names = "ipg";
+ iomux_config = < 36 0x2034d3
+ 37 0x2034d3
+ 207 0x1
+ 208 0x1 >;
+ };
+
+ i2c1: i2c@40067000 {
+ compatible = "fsl,mvf600-i2c";
+ reg = <0x40067000 0x1000>;
+ interrupts = < 104 >;
+ interrupt-parent = <&GIC>;
+ status = "disabled";
+ };
+
+ i2c2: i2c@400E6000 {
+ compatible = "fsl,mvf600-i2c";
+ reg = <0x400E6000 0x1000>;
+ interrupts = < 105 >;
+ interrupt-parent = <&GIC>;
+ status = "disabled";
+ };
+
+ i2c3: i2c@400E7000 {
+ compatible = "fsl,mvf600-i2c";
+ reg = <0x400E7000 0x1000>;
+ interrupts = < 106 >;
+ interrupt-parent = <&GIC>;
+ status = "disabled";
+ };
+
adc0: adc@4003B000 {
compatible = "fsl,mvf600-adc";
reg = <0x4003B000 0x1000>;
@@ -399,21 +458,35 @@
interrupt-parent = <&GIC>;
status = "disabled";
clock_names = "dcu0";
- iomux_config = < 105 0x1 106 0x1
- 107 0x1 108 0x1
- 109 0x1 110 0x1
- 111 0x1 112 0x1
- 113 0x1 114 0x1
- 115 0x1 116 0x1
- 117 0x1 118 0x1
- 119 0x1 120 0x1
- 121 0x1 122 0x1
- 123 0x1 124 0x1
- 125 0x1 126 0x1
- 127 0x1 128 0x1
- 129 0x1 130 0x1
- 131 0x1 132 0x1
- 133 0x1 >;
+ iomux_config = < 105 0x100044
+ 106 0x100044
+ 107 0x100060
+ 108 0x100060
+ 109 0x100060
+ 110 0x100060
+ 111 0x100060
+ 112 0x100060
+ 113 0x100060
+ 114 0x100060
+ 115 0x100060
+ 116 0x100060
+ 117 0x100060
+ 118 0x100060
+ 119 0x100060
+ 120 0x100060
+ 121 0x100060
+ 122 0x100060
+ 123 0x100060
+ 124 0x100060
+ 125 0x100060
+ 126 0x100060
+ 127 0x100060
+ 128 0x100060
+ 129 0x100060
+ 130 0x100060
+ 131 0x100060
+ 132 0x100060
+ 133 0x100060 >;
};
};
};
OpenPOWER on IntegriCloud