Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F132318368
D5580.id15118.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
12 KB
Referenced Files
None
Subscribers
None
D5580.id15118.diff
View Options
Index: release/arm/BANANAPI.conf
===================================================================
--- release/arm/BANANAPI.conf
+++ release/arm/BANANAPI.conf
@@ -7,7 +7,7 @@
EMBEDDED_TARGET="arm"
EMBEDDED_TARGET_ARCH="armv6"
EMBEDDEDPORTS="sysutils/u-boot-bananapi"
-KERNEL="A20"
+KERNEL="ALLWINNER"
WORLD_FLAGS="${WORLD_FLAGS} UBLDR_LOADADDR=0x42000000"
IMAGE_SIZE="1G"
PART_SCHEME="MBR"
Index: release/arm/CUBIEBOARD2.conf
===================================================================
--- release/arm/CUBIEBOARD2.conf
+++ release/arm/CUBIEBOARD2.conf
@@ -7,7 +7,7 @@
EMBEDDED_TARGET="arm"
EMBEDDED_TARGET_ARCH="armv6"
EMBEDDEDPORTS="sysutils/u-boot-cubieboard2"
-KERNEL="A20"
+KERNEL="ALLWINNER"
WORLD_FLAGS="${WORLD_FLAGS} UBLDR_LOADADDR=0x42000000"
IMAGE_SIZE="1G"
PART_SCHEME="MBR"
Index: sys/arm/allwinner/a10_padconf.c
===================================================================
--- sys/arm/allwinner/a10_padconf.c
+++ sys/arm/allwinner/a10_padconf.c
@@ -35,6 +35,8 @@
#include <arm/allwinner/allwinner_pinctrl.h>
+#ifdef SOC_ALLWINNER_A10
+
const static struct allwinner_pins a10_pins[] = {
{"PA0", 0, 0, {"gpio_in", "gpio_out", "emac", "spi1", "uart2", NULL, NULL, NULL}},
{"PA1", 0, 1, {"gpio_in", "gpio_out", "emac", "spi1", "uart2", NULL, NULL, NULL}},
@@ -225,3 +227,5 @@
.npins = sizeof(a10_pins) / sizeof(struct allwinner_pins),
.pins = a10_pins,
};
+
+#endif /* SOC_ALLWINNER_A10 */
Index: sys/arm/allwinner/a20/a20_if_dwc.c
===================================================================
--- /dev/null
+++ sys/arm/allwinner/a20/a20_if_dwc.c
@@ -1,145 +0,0 @@
-/*-
- * Copyright (c) 2015 Luiz Otavio O Souza <loos@FreeBSD.org>
- * 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.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/bus.h>
-#include <sys/kernel.h>
-#include <sys/module.h>
-
-#include <machine/bus.h>
-
-#include <dev/dwc/if_dwc.h>
-#include <dev/dwc/if_dwcvar.h>
-#include <dev/ofw/ofw_bus.h>
-#include <dev/ofw/ofw_bus_subr.h>
-
-#include <arm/allwinner/allwinner_machdep.h>
-#include <dev/extres/clk/clk.h>
-#include <dev/extres/regulator/regulator.h>
-
-#include "if_dwc_if.h"
-
-static int
-a20_if_dwc_probe(device_t dev)
-{
-
- if (!ofw_bus_status_okay(dev))
- return (ENXIO);
- if (!ofw_bus_is_compatible(dev, "allwinner,sun7i-a20-gmac"))
- return (ENXIO);
- device_set_desc(dev, "A20 Gigabit Ethernet Controller");
-
- return (BUS_PROBE_DEFAULT);
-}
-
-static int
-a20_if_dwc_init(device_t dev)
-{
- const char *tx_parent_name;
- char *phy_type;
- clk_t clk_tx, clk_tx_parent;
- regulator_t reg;
- phandle_t node;
- int error;
-
- node = ofw_bus_get_node(dev);
-
- /* Configure PHY for MII or RGMII mode */
- if (OF_getprop_alloc(node, "phy-mode", 1, (void **)&phy_type)) {
- error = clk_get_by_ofw_name(dev, "allwinner_gmac_tx", &clk_tx);
- if (error != 0) {
- device_printf(dev, "could not get tx clk\n");
- return (error);
- }
-
- if (strcmp(phy_type, "rgmii") == 0)
- tx_parent_name = "gmac_int_tx";
- else
- tx_parent_name = "mii_phy_tx";
-
- error = clk_get_by_name(dev, tx_parent_name, &clk_tx_parent);
- if (error != 0) {
- device_printf(dev, "could not get clock '%s'\n",
- tx_parent_name);
- return (error);
- }
-
- error = clk_set_parent_by_clk(clk_tx, clk_tx_parent);
- if (error != 0) {
- device_printf(dev, "could not set tx clk parent\n");
- return (error);
- }
- }
-
- /* Enable PHY regulator if applicable */
- if (regulator_get_by_ofw_property(dev, "phy-supply", ®) == 0) {
- error = regulator_enable(reg);
- if (error != 0) {
- device_printf(dev, "could not enable PHY regulator\n");
- return (error);
- }
- }
-
- return (0);
-}
-
-static int
-a20_if_dwc_mac_type(device_t dev)
-{
-
- return (DWC_GMAC_ALT_DESC);
-}
-
-static int
-a20_if_dwc_mii_clk(device_t dev)
-{
-
- return (GMAC_MII_CLK_150_250M_DIV102);
-}
-
-static device_method_t a20_dwc_methods[] = {
- DEVMETHOD(device_probe, a20_if_dwc_probe),
-
- DEVMETHOD(if_dwc_init, a20_if_dwc_init),
- DEVMETHOD(if_dwc_mac_type, a20_if_dwc_mac_type),
- DEVMETHOD(if_dwc_mii_clk, a20_if_dwc_mii_clk),
-
- DEVMETHOD_END
-};
-
-static devclass_t a20_dwc_devclass;
-
-extern driver_t dwc_driver;
-
-DEFINE_CLASS_1(dwc, a20_dwc_driver, a20_dwc_methods, sizeof(struct dwc_softc),
- dwc_driver);
-DRIVER_MODULE(a20_dwc, simplebus, a20_dwc_driver, a20_dwc_devclass, 0, 0);
-
-MODULE_DEPEND(a20_dwc, dwc, 1, 1, 1);
Index: sys/arm/allwinner/a20/a20_padconf.c
===================================================================
--- sys/arm/allwinner/a20/a20_padconf.c
+++ sys/arm/allwinner/a20/a20_padconf.c
@@ -35,6 +35,8 @@
#include <arm/allwinner/allwinner_pinctrl.h>
+#ifdef SOC_ALLWINNER_A20
+
const static struct allwinner_pins a20_pins[] = {
{"PA0", 0, 0, {"gpio_in", "gpio_out", "emac", "spi1", "uart2", "gmac", NULL, NULL}},
{"PA1", 0, 1, {"gpio_in", "gpio_out", "emac", "spi1", "uart2", "gmac", NULL, NULL}},
@@ -225,3 +227,5 @@
.npins = sizeof(a20_pins) / sizeof(struct allwinner_pins),
.pins = a20_pins,
};
+
+#endif /* SOC_ALLWINNER_A20 */
Index: sys/arm/allwinner/a20/files.a20
===================================================================
--- sys/arm/allwinner/a20/files.a20
+++ sys/arm/allwinner/a20/files.a20
@@ -1,5 +1,3 @@
# $FreeBSD$
arm/allwinner/a20/a20_padconf.c standard
-arm/allwinner/aw_mp.c optional smp
-arm/allwinner/a20/a20_if_dwc.c optional dwc
Index: sys/arm/allwinner/a31/a31_padconf.c
===================================================================
--- sys/arm/allwinner/a31/a31_padconf.c
+++ sys/arm/allwinner/a31/a31_padconf.c
@@ -35,6 +35,8 @@
#include <arm/allwinner/allwinner_pinctrl.h>
+#ifdef SOC_ALLWINNER_A31
+
const static struct allwinner_pins a31_pins[] = {
{"PA0", 0, 0, {"gpio_in", "gpio_out", "gmac", "lcd1", "uart1", NULL, NULL, NULL}},
{"PA1", 0, 1, {"gpio_in", "gpio_out", "gmac", "lcd1", "uart1", NULL, NULL, NULL}},
@@ -214,3 +216,5 @@
.npins = nitems(a31_pins),
.pins = a31_pins,
};
+
+#endif /* SOC_ALLWINNER_A31 */
Index: sys/arm/allwinner/a31/a31s_padconf.c
===================================================================
--- sys/arm/allwinner/a31/a31s_padconf.c
+++ sys/arm/allwinner/a31/a31s_padconf.c
@@ -35,6 +35,8 @@
#include <arm/allwinner/allwinner_pinctrl.h>
+#ifdef SOC_ALLWINNER_A31S
+
const static struct allwinner_pins a31s_pins[] = {
{"PA0", 0, 0, {"gpio_in", "gpio_out", "gmac", NULL, "uart1", NULL, NULL, NULL}},
{"PA1", 0, 1, {"gpio_in", "gpio_out", "gmac", NULL, "uart1", NULL, NULL, NULL}},
@@ -194,3 +196,5 @@
.npins = nitems(a31s_pins),
.pins = a31s_pins,
};
+
+#endif /* SOC_ALLWINNER_A31S */
Index: sys/arm/allwinner/a31/files.a31
===================================================================
--- /dev/null
+++ sys/arm/allwinner/a31/files.a31
@@ -0,0 +1,4 @@
+# $FreeBSD$
+
+arm/allwinner/a31/a31_padconf.c standard
+arm/allwinner/a31/a31s_padconf.c standard
Index: sys/arm/allwinner/a31/std.a31
===================================================================
--- /dev/null
+++ sys/arm/allwinner/a31/std.a31
@@ -0,0 +1,15 @@
+# Allwinner A31 common options
+#$FreeBSD$
+
+cpu CPU_CORTEXA
+machine arm armv6
+makeoptions CONF_CFLAGS="-march=armv7a"
+
+makeoptions KERNVIRTADDR=0xc0200000
+options KERNVIRTADDR=0xc0200000
+
+options IPI_IRQ_START=0
+options IPI_IRQ_END=15
+
+files "../allwinner/files.allwinner"
+files "../allwinner/a31/files.a31"
Index: sys/arm/allwinner/files.allwinner
===================================================================
--- sys/arm/allwinner/files.allwinner
+++ sys/arm/allwinner/files.allwinner
@@ -14,8 +14,10 @@
arm/allwinner/aw_wdog.c standard
arm/allwinner/a20/a20_cpu_cfg.c standard
arm/allwinner/allwinner_machdep.c standard
+arm/allwinner/aw_mp.c optional smp
arm/allwinner/axp209.c optional axp209
arm/allwinner/if_emac.c optional emac
+arm/allwinner/if_gmac.c optional dwc
arm/allwinner/sunxi_dma_if.m standard
dev/iicbus/twsi/a10_twsi.c optional twsi
#arm/allwinner/console.c standard
Index: sys/arm/allwinner/std.allwinner
===================================================================
--- /dev/null
+++ sys/arm/allwinner/std.allwinner
@@ -0,0 +1,16 @@
+# Allwinner common options
+#$FreeBSD$
+
+cpu CPU_CORTEXA
+machine arm armv6
+makeoptions CONF_CFLAGS="-march=armv7a"
+
+makeoptions KERNVIRTADDR=0xc0200000
+options KERNVIRTADDR=0xc0200000
+
+options IPI_IRQ_START=0
+options IPI_IRQ_END=15
+
+files "../allwinner/files.allwinner"
+files "../allwinner/a20/files.a20"
+files "../allwinner/a31/files.a31"
Index: sys/arm/conf/ALLWINNER
===================================================================
--- sys/arm/conf/ALLWINNER
+++ sys/arm/conf/ALLWINNER
@@ -1,5 +1,5 @@
#
-# A20 -- Custom configuration for the Allwinner A20 ARM SoC
+# ALLWINNER -- Custom configuration for the Allwinner A20 and A31 ARM SoC
#
# For more information on this file, please read the config(5) manual page,
# and/or the handbook section on Kernel Configuration Files:
@@ -18,14 +18,15 @@
#
# $FreeBSD$
-ident A20
+ident ALLWINNER
include "std.armv6"
-include "../allwinner/a20/std.a20"
+include "../allwinner/std.allwinner"
options ARM_INTRNG
options SOC_ALLWINNER_A20
+options SOC_ALLWINNER_A31
options HZ=100
options SCHED_ULE # ULE scheduler
@@ -56,7 +57,7 @@
#options BOOTP_WIRED_TO=dwc0
# EXT_RESOURCES pseudo devices
-options EXT_RESOURCES
+options EXT_RESOURCES
device clk
device phy
device hwreset
@@ -125,9 +126,6 @@
# Sound support
device sound
-# Pinmux
-device fdt_pinctrl
-
# Framebuffer support
device vt
device kbdmux
@@ -136,6 +134,9 @@
device videomode
device hdmi
+# Pinmux
+device fdt_pinctrl
+
# Flattened Device Tree
options FDT # Configure using FDT/DTB data
makeoptions MODULES_EXTRA=dtb/allwinner
Index: sys/boot/fdt/dts/arm/bananapim2.dts
===================================================================
--- /dev/null
+++ sys/boot/fdt/dts/arm/bananapim2.dts
@@ -0,0 +1,33 @@
+/*-
+ * Copyright (c) 2016 Emmanuel Vadot <manu@bidouilliste.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$
+ */
+
+#include "sun6i-a31s-sinovoip-bpi-m2.dts"
+
+&mmc2 {
+ status = "disabled";
+};
Index: sys/modules/dtb/allwinner/Makefile
===================================================================
--- sys/modules/dtb/allwinner/Makefile
+++ sys/modules/dtb/allwinner/Makefile
@@ -2,6 +2,7 @@
# All the dts files for allwinner systems we support.
DTS= \
bananapi.dts \
+ bananapim2.dts \
cubieboard.dts \
cubieboard2.dts \
olimex-a20-som-evb.dts \
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Oct 16, 8:36 PM (49 m, 1 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
23803777
Default Alt Text
D5580.id15118.diff (12 KB)
Attached To
Mode
D5580: ALLWINNER generic config file and A31 kernel config
Attached
Detach File
Event Timeline
Log In to Comment