aboutsummaryrefslogtreecommitdiff
path: root/sys/arm
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arm')
-rw-r--r--sys/arm/allwinner/a10_padconf.c4
-rw-r--r--sys/arm/allwinner/a20/a20_padconf.c4
-rw-r--r--sys/arm/allwinner/a20/files.a202
-rw-r--r--sys/arm/allwinner/a31/a31_padconf.c4
-rw-r--r--sys/arm/allwinner/a31/a31s_padconf.c4
-rw-r--r--sys/arm/allwinner/a31/files.a314
-rw-r--r--sys/arm/allwinner/a31/std.a3115
-rw-r--r--sys/arm/allwinner/aw_if_dwc.c (renamed from sys/arm/allwinner/a20/a20_if_dwc.c)0
-rw-r--r--sys/arm/allwinner/files.allwinner2
-rw-r--r--sys/arm/allwinner/std.allwinner16
-rw-r--r--sys/arm/conf/ALLWINNER (renamed from sys/arm/conf/A20)16
11 files changed, 62 insertions, 9 deletions
diff --git a/sys/arm/allwinner/a10_padconf.c b/sys/arm/allwinner/a10_padconf.c
index b441d7ceb878..f77f5e68f615 100644
--- a/sys/arm/allwinner/a10_padconf.c
+++ b/sys/arm/allwinner/a10_padconf.c
@@ -35,6 +35,8 @@ __FBSDID("$FreeBSD$");
#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 @@ const struct allwinner_padconf a10_padconf = {
.npins = sizeof(a10_pins) / sizeof(struct allwinner_pins),
.pins = a10_pins,
};
+
+#endif /* SOC_ALLWINNER_A10 */
diff --git a/sys/arm/allwinner/a20/a20_padconf.c b/sys/arm/allwinner/a20/a20_padconf.c
index f8da5b5c5a59..910afe39a7bd 100644
--- a/sys/arm/allwinner/a20/a20_padconf.c
+++ b/sys/arm/allwinner/a20/a20_padconf.c
@@ -35,6 +35,8 @@ __FBSDID("$FreeBSD$");
#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 @@ const struct allwinner_padconf a20_padconf = {
.npins = sizeof(a20_pins) / sizeof(struct allwinner_pins),
.pins = a20_pins,
};
+
+#endif /* SOC_ALLWINNER_A20 */
diff --git a/sys/arm/allwinner/a20/files.a20 b/sys/arm/allwinner/a20/files.a20
index 7488578f3e3a..08e17afa18a8 100644
--- a/sys/arm/allwinner/a20/files.a20
+++ b/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
diff --git a/sys/arm/allwinner/a31/a31_padconf.c b/sys/arm/allwinner/a31/a31_padconf.c
index e591d575e7eb..830a0661dcb3 100644
--- a/sys/arm/allwinner/a31/a31_padconf.c
+++ b/sys/arm/allwinner/a31/a31_padconf.c
@@ -35,6 +35,8 @@ __FBSDID("$FreeBSD$");
#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 @@ const struct allwinner_padconf a31_padconf = {
.npins = nitems(a31_pins),
.pins = a31_pins,
};
+
+#endif /* SOC_ALLWINNER_A31 */
diff --git a/sys/arm/allwinner/a31/a31s_padconf.c b/sys/arm/allwinner/a31/a31s_padconf.c
index e133aa202da9..1901313cc27a 100644
--- a/sys/arm/allwinner/a31/a31s_padconf.c
+++ b/sys/arm/allwinner/a31/a31s_padconf.c
@@ -35,6 +35,8 @@ __FBSDID("$FreeBSD$");
#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 @@ const struct allwinner_padconf a31s_padconf = {
.npins = nitems(a31s_pins),
.pins = a31s_pins,
};
+
+#endif /* SOC_ALLWINNER_A31S */
diff --git a/sys/arm/allwinner/a31/files.a31 b/sys/arm/allwinner/a31/files.a31
new file mode 100644
index 000000000000..b181150745e1
--- /dev/null
+++ b/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
diff --git a/sys/arm/allwinner/a31/std.a31 b/sys/arm/allwinner/a31/std.a31
new file mode 100644
index 000000000000..22250fbe425b
--- /dev/null
+++ b/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"
diff --git a/sys/arm/allwinner/a20/a20_if_dwc.c b/sys/arm/allwinner/aw_if_dwc.c
index 2f88d9de7845..2f88d9de7845 100644
--- a/sys/arm/allwinner/a20/a20_if_dwc.c
+++ b/sys/arm/allwinner/aw_if_dwc.c
diff --git a/sys/arm/allwinner/files.allwinner b/sys/arm/allwinner/files.allwinner
index 34daf434392d..69e195a11618 100644
--- a/sys/arm/allwinner/files.allwinner
+++ b/sys/arm/allwinner/files.allwinner
@@ -10,10 +10,12 @@ arm/allwinner/aw_usbphy.c optional ehci
arm/allwinner/a10_gpio.c optional gpio
arm/allwinner/a10_mmc.c optional mmc
arm/allwinner/a10_sramc.c standard
+arm/allwinner/aw_if_dwc.c optional dwc
arm/allwinner/aw_rtc.c standard
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/sunxi_dma_if.m standard
diff --git a/sys/arm/allwinner/std.allwinner b/sys/arm/allwinner/std.allwinner
new file mode 100644
index 000000000000..885d41df34fb
--- /dev/null
+++ b/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"
diff --git a/sys/arm/conf/A20 b/sys/arm/conf/ALLWINNER
index f28080c623f5..dc62ccd09d89 100644
--- a/sys/arm/conf/A20
+++ b/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,16 @@
#
# $FreeBSD$
-ident A20
+ident ALLWINNER
include "std.armv6"
-include "../allwinner/a20/std.a20"
+include "../allwinner/std.allwinner"
options INTRNG
options SOC_ALLWINNER_A20
+options SOC_ALLWINNER_A31
+options SOC_ALLWINNER_A31S
options HZ=100
options SCHED_ULE # ULE scheduler
@@ -56,7 +58,7 @@ options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed
#options BOOTP_WIRED_TO=dwc0
# EXT_RESOURCES pseudo devices
-options EXT_RESOURCES
+options EXT_RESOURCES
device clk
device phy
device hwreset
@@ -125,9 +127,6 @@ device miibus
# Sound support
device sound
-# Pinmux
-device fdt_pinctrl
-
# Framebuffer support
device vt
device kbdmux
@@ -136,6 +135,9 @@ device ukbd
device videomode
device hdmi
+# Pinmux
+device fdt_pinctrl
+
# Flattened Device Tree
options FDT # Configure using FDT/DTB data
makeoptions MODULES_EXTRA=dtb/allwinner