Module Name:    src
Committed By:   jmcneill
Date:           Fri Dec  5 01:13:12 UTC 2014

Modified Files:
        src/sys/arch/arm/allwinner: awin_board.c awin_com.c awin_intr.h
            awin_io.c awin_reg.h awin_var.h
        src/sys/arch/evbarm/awin: awin_machdep.c
Added Files:
        src/sys/arch/evbarm/conf: ALLWINNER_A80

Log Message:
Initial Allwinner A80 support.


To generate a diff of this commit:
cvs rdiff -u -r1.29 -r1.30 src/sys/arch/arm/allwinner/awin_board.c \
    src/sys/arch/arm/allwinner/awin_io.c
cvs rdiff -u -r1.7 -r1.8 src/sys/arch/arm/allwinner/awin_com.c
cvs rdiff -u -r1.10 -r1.11 src/sys/arch/arm/allwinner/awin_intr.h
cvs rdiff -u -r1.57 -r1.58 src/sys/arch/arm/allwinner/awin_reg.h
cvs rdiff -u -r1.27 -r1.28 src/sys/arch/arm/allwinner/awin_var.h
cvs rdiff -u -r1.29 -r1.30 src/sys/arch/evbarm/awin/awin_machdep.c
cvs rdiff -u -r0 -r1.1 src/sys/arch/evbarm/conf/ALLWINNER_A80

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/allwinner/awin_board.c
diff -u src/sys/arch/arm/allwinner/awin_board.c:1.29 src/sys/arch/arm/allwinner/awin_board.c:1.30
--- src/sys/arch/arm/allwinner/awin_board.c:1.29	Thu Dec  4 02:12:07 2014
+++ src/sys/arch/arm/allwinner/awin_board.c	Fri Dec  5 01:13:11 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: awin_board.c,v 1.29 2014/12/04 02:12:07 jmcneill Exp $	*/
+/*	$NetBSD: awin_board.c,v 1.30 2014/12/05 01:13:11 jmcneill Exp $	*/
 /*-
  * Copyright (c) 2012 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -36,7 +36,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(1, "$NetBSD: awin_board.c,v 1.29 2014/12/04 02:12:07 jmcneill Exp $");
+__KERNEL_RCSID(1, "$NetBSD: awin_board.c,v 1.30 2014/12/05 01:13:11 jmcneill Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -124,6 +124,15 @@ static void
 awin_cpu_clk(void)
 {
 	struct cpu_info * const ci = curcpu();
+
+#if defined(ALLWINNER_A80)
+	const uint32_t c0cpux = bus_space_read_4(&awin_bs_tag, awin_core_bsh,
+	    AWIN_A80_CCU_OFFSET + AWIN_A80_CCU_PLL_C0CPUX_CTRL_REG);
+	const u_int p = (c0cpux & AWIN_A80_CCU_PLL_OUT_EXT_DIVP) ? 4 : 1;
+	const u_int n = __SHIFTOUT(c0cpux, AWIN_A80_CCU_PLL_FACTOR_N);
+
+	ci->ci_data.cpu_cc_freq = ((uint64_t)AWIN_REF_FREQ * n) / p;
+#else
 	u_int reg = awin_chip_id() == AWIN_CHIP_ID_A31 ?
 				      AWIN_A31_CPU_AXI_CFG_REG :
 				      AWIN_CPU_AHB_APB0_CFG_REG;
@@ -160,6 +169,7 @@ awin_cpu_clk(void)
 		ci->ci_data.cpu_cc_freq = 200000000;
 		break;
 	}
+#endif
 }
 
 void
@@ -279,6 +289,9 @@ awin_memprobe(void)
 uint16_t
 awin_chip_id(void)
 {
+#if defined(ALLWINNER_A80)
+	return AWIN_CHIP_ID_A80;
+#else
 	static uint16_t chip_id = 0;
 	uint32_t ver;
 
@@ -295,6 +308,7 @@ awin_chip_id(void)
 	}
 
 	return chip_id;
+#endif
 }
 
 const char *
@@ -308,6 +322,7 @@ awin_chip_name(void)
 	case AWIN_CHIP_ID_A20: return "A20";
 	case AWIN_CHIP_ID_A23: return "A23";
 	case AWIN_CHIP_ID_A31: return "A31";
+	case AWIN_CHIP_ID_A80: return "A80";
 	default: return "unknown chip";
 	}
 }
Index: src/sys/arch/arm/allwinner/awin_io.c
diff -u src/sys/arch/arm/allwinner/awin_io.c:1.29 src/sys/arch/arm/allwinner/awin_io.c:1.30
--- src/sys/arch/arm/allwinner/awin_io.c:1.29	Thu Dec  4 11:16:38 2014
+++ src/sys/arch/arm/allwinner/awin_io.c	Fri Dec  5 01:13:11 2014
@@ -31,7 +31,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(1, "$NetBSD: awin_io.c,v 1.29 2014/12/04 11:16:38 jmcneill Exp $");
+__KERNEL_RCSID(1, "$NetBSD: awin_io.c,v 1.30 2014/12/05 01:13:11 jmcneill Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -89,12 +89,13 @@ awinio_print(void *aux, const char *pnp)
 #define	A10	AWINIO_ONLY_A10
 #define	A20	AWINIO_ONLY_A20
 #define	A31	AWINIO_ONLY_A31
+#define	A80	AWINIO_ONLY_A80
 #define	REQ	AWINIO_REQUIRED
 
 static const struct awin_locators awin_locators[] = {
 	{ "awinicu", OFFANDSIZE(INTC), NOPORT, NOINTR, A10|REQ },
 	{ "awingpio", OFFANDSIZE(PIO), NOPORT, NOINTR, AANY|REQ },
-	{ "awindma", OFFANDSIZE(DMA), NOPORT, AWIN_IRQ_DMA, A10|A20|REQ },
+	{ "awindma", OFFANDSIZE(DMA), NOPORT, AWIN_IRQ_DMA, A10|A20 },
 	{ "awindma", OFFANDSIZE(DMA), NOPORT, AWIN_A31_IRQ_DMA, A31 },
 	{ "awintmr", OFFANDSIZE(TMR), NOPORT, AWIN_IRQ_TMR0, A10 },
 	{ "awincnt", OFFANDSIZE(CPUCFG), NOPORT, NOINTR, A20 },
@@ -108,14 +109,15 @@ static const struct awin_locators awin_l
 	{ "com", OFFANDSIZE(UART6), 6, AWIN_IRQ_UART6, A10|A20 },
 	{ "com", OFFANDSIZE(UART7), 7, AWIN_IRQ_UART7, A10|A20 },
 	{ "com", OFFANDSIZE(UART0), 0, AWIN_A31_IRQ_UART0, A31 },
+	{ "com", OFFANDSIZE(A80_UART0), 0, AWIN_A80_IRQ_UART0, A80 },
 	{ "awinmp", OFFANDSIZE(MP), NOPORT, AWIN_A31_IRQ_MP, A31 },
-	{ "awindebe", AWIN_DE_BE0_OFFSET, 0x1000, 0, NOINTR, AANY },
-	{ "awindebe", AWIN_DE_BE1_OFFSET, 0x1000, 1, NOINTR, AANY },
-	{ "awintcon", OFFANDSIZE(LCD0), 0, NOINTR, AANY },
-	{ "awintcon", OFFANDSIZE(LCD1), 1, NOINTR, AANY },
+	{ "awindebe", AWIN_DE_BE0_OFFSET, 0x1000, 0, NOINTR, A20|A31 },
+	{ "awindebe", AWIN_DE_BE1_OFFSET, 0x1000, 1, NOINTR, A20|A31 },
+	{ "awintcon", OFFANDSIZE(LCD0), 0, NOINTR, A20|A31 },
+	{ "awintcon", OFFANDSIZE(LCD1), 1, NOINTR, A20|A31 },
 	{ "awinhdmi", OFFANDSIZE(HDMI), NOPORT, AWIN_IRQ_HDMI0, A20 },
 	{ "awinhdmi", OFFANDSIZE(HDMI), NOPORT, AWIN_A31_IRQ_HDMI, A31 },
-	{ "awinwdt", OFFANDSIZE(TMR), NOPORT, NOINTR, AANY },
+	{ "awinwdt", OFFANDSIZE(TMR), NOPORT, NOINTR, A10|A20|A31 },
 	{ "awinrtc", OFFANDSIZE(TMR), NOPORT, NOINTR, A10|A20 },
 	{ "awinrtc", OFFANDSIZE(A31_RTC), NOPORT, NOINTR, A31 },
 	{ "awinusb", OFFANDSIZE(USB1), 0, NOINTR, A10|A20 },
@@ -185,6 +187,7 @@ awinio_attach(device_t parent, device_t 
 	const bool a10_p = chip_id == AWIN_CHIP_ID_A10;
 	const bool a20_p = chip_id == AWIN_CHIP_ID_A20;
 	const bool a31_p = chip_id == AWIN_CHIP_ID_A31;
+	const bool a80_p = chip_id == AWIN_CHIP_ID_A80;
 	prop_dictionary_t dict = device_properties(self);
 
 	sc->sc_dev = self;
@@ -223,6 +226,8 @@ awinio_attach(device_t parent, device_t 
 				continue;
 			if (a31_p && !(loc->loc_flags & AWINIO_ONLY_A31))
 				continue;
+			if (a80_p && !(loc->loc_flags & AWINIO_ONLY_A80))
+				continue;
 		}
 
 		struct awinio_attach_args aio = {

Index: src/sys/arch/arm/allwinner/awin_com.c
diff -u src/sys/arch/arm/allwinner/awin_com.c:1.7 src/sys/arch/arm/allwinner/awin_com.c:1.8
--- src/sys/arch/arm/allwinner/awin_com.c:1.7	Wed Oct 29 10:47:46 2014
+++ src/sys/arch/arm/allwinner/awin_com.c	Fri Dec  5 01:13:11 2014
@@ -31,7 +31,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(1, "$NetBSD: awin_com.c,v 1.7 2014/10/29 10:47:46 skrll Exp $");
+__KERNEL_RCSID(1, "$NetBSD: awin_com.c,v 1.8 2014/12/05 01:13:11 jmcneill Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -103,8 +103,13 @@ awin_com_match(device_t parent, cfdata_t
 	}
 
 	KASSERT(!strcmp(cf->cf_name, loc->loc_name));
+#if defined(ALLWINNER_A80)
+	KASSERT(loc->loc_offset >= AWIN_A80_UART0_OFFSET);
+	KASSERT(loc->loc_offset <= AWIN_A80_UART5_OFFSET);
+#else
 	KASSERT(loc->loc_offset >= AWIN_UART0_OFFSET);
 	KASSERT(loc->loc_offset <= AWIN_UART7_OFFSET);
+#endif
 	KASSERT((loc->loc_offset & 0x3ff) == 0);
 	KASSERT((awin_com_ports & __BIT(loc->loc_port)) == 0);
 	KASSERT(cf->cf_loc[AWINIOCF_PORT] == AWINIOCF_PORT_DEFAULT

Index: src/sys/arch/arm/allwinner/awin_intr.h
diff -u src/sys/arch/arm/allwinner/awin_intr.h:1.10 src/sys/arch/arm/allwinner/awin_intr.h:1.11
--- src/sys/arch/arm/allwinner/awin_intr.h:1.10	Thu Dec  4 11:16:38 2014
+++ src/sys/arch/arm/allwinner/awin_intr.h	Fri Dec  5 01:13:11 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: awin_intr.h,v 1.10 2014/12/04 11:16:38 jmcneill Exp $ */
+/* $NetBSD: awin_intr.h,v 1.11 2014/12/05 01:13:11 jmcneill Exp $ */
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -31,8 +31,15 @@
 #ifndef _ARM_ALLWINNER_AWIN_INTR_H_
 #define _ARM_ALLWINNER_AWIN_INTR_H_ 
 
+#include "opt_allwinner.h"
+
+#if defined(ALLWINNER_A80)
+#define	PIC_MAXSOURCES			224
+#define	PIC_MAXMAXSOURCES		256
+#else
 #define	PIC_MAXSOURCES			160
 #define	PIC_MAXMAXSOURCES		192
+#endif
 
 /*
  * The Allwinner can use a generic interrupt controller so pull in that stuff.
@@ -164,4 +171,19 @@
 #define AWIN_A31_IRQ_MP		115
 #define AWIN_A31_IRQ_HDMI	120
 
+/*
+ * A80
+ */
+#define AWIN_A80_IRQ_UART0	32
+#define AWIN_A80_IRQ_UART1	33
+#define AWIN_A80_IRQ_UART2	34
+#define AWIN_A80_IRQ_UART3	35
+#define AWIN_A80_IRQ_UART4	36
+#define AWIN_A80_IRQ_UART5	37
+#define AWIN_A80_IRQ_TWI0	38
+#define AWIN_A80_IRQ_TWI1	39
+#define AWIN_A80_IRQ_TWI2	40
+#define AWIN_A80_IRQ_TWI3	41
+#define AWIN_A80_IRQ_TWI4	42
+
 #endif /* _ARM_ALLWINNER_AWIN_INTR_H_ */

Index: src/sys/arch/arm/allwinner/awin_reg.h
diff -u src/sys/arch/arm/allwinner/awin_reg.h:1.57 src/sys/arch/arm/allwinner/awin_reg.h:1.58
--- src/sys/arch/arm/allwinner/awin_reg.h:1.57	Thu Dec  4 02:11:03 2014
+++ src/sys/arch/arm/allwinner/awin_reg.h	Fri Dec  5 01:13:11 2014
@@ -52,7 +52,11 @@
 #define AWIN_SRAMB_SIZE			0x00010000	/* Secure */
 
 #define AWIN_CORE_PBASE			0x01C00000
+#if defined(ALLWINNER_A80)
+#define AWIN_CORE_SIZE			0x06400000	/* XXX */
+#else
 #define AWIN_CORE_SIZE			0x00400000
+#endif
 #define AWIN_SRAM_OFFSET		0x00000000
 #define AWIN_DRAM_OFFSET		0x00001000
 #define AWIN_DMA_OFFSET			0x00002000
@@ -2645,4 +2649,39 @@ struct awin_a31_dma_desc {
 
 #define AWIN_A31_PIO_PM_PINS		8
 
+/*
+ * A80 registers
+ */
+#define AWIN_A80_GIC_BASE		0x01c40000
+
+#define AWIN_A80_CCU_OFFSET		0x04400000
+#define AWIN_A80_CCU_SCLK_OFFSET	0x04400400
+#define AWIN_A80_PIO_OFFSET		0x04400800
+#define AWIN_A80_TIMER_OFFSET		0x04400c00
+#define AWIN_A80_PWM_OFFSET		0x04401400
+#define AWIN_A80_KEYADC_OFFSET		0x04401800
+#define AWIN_A80_SMTA_OFFSET		0x04403400
+#define AWIN_A80_GPADC_OFFSET		0x04404c00
+
+#define AWIN_A80_UART0_OFFSET		0x05400000
+#define AWIN_A80_UART1_OFFSET		0x05400400
+#define AWIN_A80_UART2_OFFSET		0x05400800
+#define AWIN_A80_UART3_OFFSET		0x05400c00
+#define AWIN_A80_UART4_OFFSET		0x05401000
+#define AWIN_A80_UART5_OFFSET		0x05401400
+#define AWIN_A80_TWI0_OFFSET		0x05402800
+#define AWIN_A80_TWI1_OFFSET		0x05402c00
+#define AWIN_A80_TWI2_OFFSET		0x05403000
+#define AWIN_A80_TWI3_OFFSET		0x05403400
+#define AWIN_A80_TWI4_OFFSET		0x05403800
+
+#define AWIN_A80_CCU_PLL_C0CPUX_CTRL_REG	0x0000
+#define AWIN_A80_CCU_PLL_C1CPUX_CTRL_REG	0x0000
+
+#define AWIN_A80_CCU_PLL_ENABLE		__BIT(31)
+#define AWIN_A80_CCU_PLL_LOCK_TIME	__BITS(26,24)
+#define AWIN_A80_CCU_PLL_OUT_EXT_DIVP	__BIT(16)
+#define AWIN_A80_CCU_PLL_FACTOR_N	__BITS(15,8)
+#define AWIN_A80_CCU_PLL_POSTDIV_M	__BITS(1,0)
+
 #endif /* _ARM_ALLWINNER_AWIN_REG_H_ */

Index: src/sys/arch/arm/allwinner/awin_var.h
diff -u src/sys/arch/arm/allwinner/awin_var.h:1.27 src/sys/arch/arm/allwinner/awin_var.h:1.28
--- src/sys/arch/arm/allwinner/awin_var.h:1.27	Thu Dec  4 11:16:38 2014
+++ src/sys/arch/arm/allwinner/awin_var.h	Fri Dec  5 01:13:11 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: awin_var.h,v 1.27 2014/12/04 11:16:38 jmcneill Exp $ */
+/* $NetBSD: awin_var.h,v 1.28 2014/12/05 01:13:11 jmcneill Exp $ */
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -47,6 +47,7 @@ struct awin_locators {
 	int loc_flags;
 #define	AWINIO_REQUIRED		__BIT(8)
 #define	AWINIO_ONLY		__BITS(7,0)
+#define	AWINIO_ONLY_A80		__BIT(3)
 #define	AWINIO_ONLY_A31		__BIT(2)
 #define	AWINIO_ONLY_A20		__BIT(1)
 #define	AWINIO_ONLY_A10		__BIT(0)
@@ -109,6 +110,7 @@ void	awin_cpu_hatch(struct cpu_info *);
 #define AWIN_CHIP_ID_A31	AWIN_SRAM_VER_KEY_A31
 #define AWIN_CHIP_ID_A23	AWIN_SRAM_VER_KEY_A23
 #define AWIN_CHIP_ID_A20	AWIN_SRAM_VER_KEY_A20
+#define AWIN_CHIP_ID_A80	0xff80	/* fake; no chip ID register */
 uint16_t awin_chip_id(void);
 const char *awin_chip_name(void);
 

Index: src/sys/arch/evbarm/awin/awin_machdep.c
diff -u src/sys/arch/evbarm/awin/awin_machdep.c:1.29 src/sys/arch/evbarm/awin/awin_machdep.c:1.30
--- src/sys/arch/evbarm/awin/awin_machdep.c:1.29	Mon Nov 17 00:50:40 2014
+++ src/sys/arch/evbarm/awin/awin_machdep.c	Fri Dec  5 01:13:11 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: awin_machdep.c,v 1.29 2014/11/17 00:50:40 jmcneill Exp $ */
+/*	$NetBSD: awin_machdep.c,v 1.30 2014/12/05 01:13:11 jmcneill Exp $ */
 
 /*
  * Machine dependent functions for kernel setup for TI OSK5912 board.
@@ -125,7 +125,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: awin_machdep.c,v 1.29 2014/11/17 00:50:40 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: awin_machdep.c,v 1.30 2014/12/05 01:13:11 jmcneill Exp $");
 
 #include "opt_machdep.h"
 #include "opt_ddb.h"
@@ -139,6 +139,7 @@ __KERNEL_RCSID(0, "$NetBSD: awin_machdep
 #include "com.h"
 #include "ukbd.h"
 #include "genfb.h"
+#include "ether.h"
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -481,8 +482,13 @@ initarm(void *arg)
 #define CONMODE ((TTYDEF_CFLAG & ~(CSIZE | CSTOPB | PARENB | HUPCL)) | CS8) /* 8N1 */
 #endif
 
+#ifdef ALLWINNER_A80
+__CTASSERT(AWIN_CORE_PBASE + AWIN_A80_UART0_OFFSET <= CONADDR);
+__CTASSERT(CONADDR <= AWIN_CORE_PBASE + AWIN_A80_UART5_OFFSET);
+#else
 __CTASSERT(AWIN_CORE_PBASE + AWIN_UART0_OFFSET <= CONADDR);
 __CTASSERT(CONADDR <= AWIN_CORE_PBASE + AWIN_UART7_OFFSET);
+#endif
 __CTASSERT(CONADDR % AWIN_UART_SIZE == 0);
 static const bus_addr_t conaddr = CONADDR;
 static const int conspeed = CONSPEED;
@@ -572,6 +578,16 @@ awin_device_register(device_t self, void
 
 	if (device_is_a(self, "armperiph")
 	    && device_is_a(device_parent(self), "mainbus")) {
+
+#if defined(ALLWINNER_A80)
+		/* XXX Cubie4 SDK u-boot wrongly sets cbar to 0x01c80000 */
+		if (armreg_cbar_read() != AWIN_A80_GIC_BASE) {
+			prop_dictionary_set_uint32(dict, "cbar",
+			    AWIN_A80_GIC_BASE);
+		}
+#endif
+
+
 		/*
 		 * XXX KLUDGE ALERT XXX
 		 * The iot mainbus supplies is completely wrong since it scales
@@ -717,6 +733,7 @@ awin_device_register(device_t self, void
 	}
 
 	if (device_is_a(self, "awge")) {
+#if NETHER > 0
 		/*
 		 * Get the GMAC MAC address from cmdline.
 		 */
@@ -738,6 +755,7 @@ awin_device_register(device_t self, void
 				prop_object_release(pd);
 			}
 		}
+#endif
 
 #if AWIN_board == AWIN_cubieboard
 		if (awin_chip_id() == AWIN_CHIP_ID_A20) {

Added files:

Index: src/sys/arch/evbarm/conf/ALLWINNER_A80
diff -u /dev/null src/sys/arch/evbarm/conf/ALLWINNER_A80:1.1
--- /dev/null	Fri Dec  5 01:13:12 2014
+++ src/sys/arch/evbarm/conf/ALLWINNER_A80	Fri Dec  5 01:13:12 2014
@@ -0,0 +1,319 @@
+#	$NetBSD: ALLWINNER_A80,v 1.1 2014/12/05 01:13:12 jmcneill Exp $
+#
+#	ALLWINNER_A80 - Allwinner A80 boards (Cubieboard4, OptimusBoard, etc)
+#
+
+include	"arch/evbarm/conf/std.awin"
+
+#options 	VERBOSE_INIT_ARM
+
+# estimated number of users
+
+maxusers	32
+
+# Standard system options
+
+options 	RTC_OFFSET=0	# hardware clock is this many mins. west of GMT
+#options 	NTP		# NTP phase/frequency locked loop
+
+# CPU options
+
+no makeoptions	CPUFLAGS
+makeoptions	CPUFLAGS="-mcpu=cortex-a7 -mfpu=neon"
+no makeoptions	BOARDTYPE
+makeoptions	BOARDTYPE="allwinner_a80"
+no makeoptions	KERNEL_BASE_PHYS
+no makeoptions	KERNEL_BASE_VIRT
+makeoptions 	KERNEL_BASE_PHYS="0x80000000"
+makeoptions 	KERNEL_BASE_VIRT="0x80000000"
+options 	PMAP_NEED_ALLOC_POOLPAGE
+#options 	UVMHIST,UVMHIST_PRINT
+options 	CPU_CORTEXA7
+options 	ALLWINNER_A80
+options 	PMAPCOUNTERS
+options 	AWIN_CONSOLE_EARLY
+options 	AWIN_GPIO_IGNORE_FW
+
+# Architecture options
+
+# File systems
+
+file-system	FFS		# UFS
+#file-system	LFS		# log-structured file system
+file-system	MFS		# memory file system
+file-system	NFS		# Network file system
+#file-system 	ADOSFS		# AmigaDOS-compatible file system
+#file-system 	EXT2FS		# second extended file system (linux)
+#file-system	CD9660		# ISO 9660 + Rock Ridge file system
+file-system	MSDOSFS		# MS-DOS file system
+#file-system	FDESC		# /dev/fd
+file-system	KERNFS		# /kern
+#file-system	NULLFS		# loopback file system
+file-system	PROCFS		# /proc
+#file-system	PUFFS		# Userspace file systems (e.g. ntfs-3g & sshfs)
+#file-system	UMAPFS		# NULLFS + uid and gid remapping
+#file-system	UNION		# union file system
+file-system	TMPFS		# memory file system
+file-system	PTYFS		# /dev/pts/N support
+
+# File system options
+#options 	QUOTA		# legacy UFS quotas
+#options 	QUOTA2		# new, in-filesystem UFS quotas
+#options 	FFS_EI		# FFS Endian Independent support
+#options 	NFSSERVER
+options 	WAPBL		# File system journaling support
+#options 	FFS_NO_SNAPSHOT	# No FFS snapshot support
+
+# Networking options
+
+#options 	GATEWAY		# packet forwarding
+options 	INET		# IP + ICMP + TCP + UDP
+options 	INET6		# IPV6
+#options 	IPSEC		# IP security
+#options 	IPSEC_DEBUG	# debug for IP security
+#options 	MROUTING	# IP multicast routing
+#options 	PIM		# Protocol Independent Multicast
+#options 	NETATALK	# AppleTalk networking
+#options 	PPP_BSDCOMP	# BSD-Compress compression support for PPP
+#options 	PPP_DEFLATE	# Deflate compression support for PPP
+#options 	PPP_FILTER	# Active filter support for PPP (requires bpf)
+#options 	TCP_DEBUG	# Record last TCP_NDEBUG packets with SO_DEBUG
+
+options 	NFS_BOOT_BOOTP
+options 	NFS_BOOT_DHCP
+#options		NFS_BOOT_BOOTSTATIC
+#options		NFS_BOOTSTATIC_MYIP="\"192.168.1.4\""
+#options		NFS_BOOTSTATIC_GWIP="\"192.168.1.1\""
+#options		NFS_BOOTSTATIC_MASK="\"255.255.255.0\""
+#options		NFS_BOOTSTATIC_SERVADDR="\"192.168.1.1\""
+#options		NFS_BOOTSTATIC_SERVER="\"192.168.1.1:/nfs/sdp2430\""
+
+options		NFS_BOOT_RWSIZE=1024
+
+# Compatibility options
+
+options		COMPAT_NETBSD32	# allow running arm (e.g. non-earm) binaries
+#options 	COMPAT_43	# 4.3BSD compatibility.
+#options 	COMPAT_09	# NetBSD 0.9,
+#options 	COMPAT_10	# NetBSD 1.0,
+#options 	COMPAT_11	# NetBSD 1.1,
+#options 	COMPAT_12	# NetBSD 1.2,
+#options 	COMPAT_13	# NetBSD 1.3,
+#options 	COMPAT_14	# NetBSD 1.4,
+#options 	COMPAT_15	# NetBSD 1.5,
+#options 	COMPAT_16	# NetBSD 1.6,
+#options 	COMPAT_20	# NetBSD 2.0,
+options 	COMPAT_30	# NetBSD 3.0,
+options 	COMPAT_40	# NetBSD 4.0,
+options 	COMPAT_50	# NetBSD 5.0,
+options 	COMPAT_60	# NetBSD 6.0, and
+options 	COMPAT_70	# NetBSD 7.0 binary compatibility.
+#options 	TCP_COMPAT_42	# 4.2BSD TCP/IP bug compat. Not recommended.
+#options		COMPAT_BSDPTY	# /dev/[pt]ty?? ptys.
+
+# Shared memory options
+
+options 	SYSVMSG		# System V-like message queues
+options 	SYSVSEM		# System V-like semaphores
+options 	SYSVSHM		# System V-like memory sharing
+
+# Device options
+
+#options 	MEMORY_DISK_HOOKS	# boottime setup of ramdisk
+#options 	MEMORY_DISK_ROOT_SIZE=8192	# Size in blocks
+#options 	MEMORY_DISK_DYNAMIC
+#options 	MINIROOTSIZE=1000	# Size in blocks
+#options 	MEMORY_DISK_IS_ROOT	# use memory disk as root
+
+# Wedge support
+options 	DKWEDGE_AUTODISCOVER	# Automatically add dk(4) instances
+options 	DKWEDGE_METHOD_GPT	# Supports GPT partitions as wedges
+
+# Miscellaneous kernel options
+options 	KTRACE		# system call tracing, a la ktrace(1)
+#options 	KMEMSTATS	# kernel memory statistics
+#options 	SCSIVERBOSE	# Verbose SCSI errors
+#options 	MIIVERBOSE	# Verbose MII autoconfuration messages
+#options 	DDB_KEYCODE=0x40
+#options 	USERCONF	# userconf(4) support
+#options	PIPE_SOCKETPAIR	# smaller, but slower pipe(2)
+
+# Alternate buffer queue strategies for better responsiveness under high
+# disk I/O load.
+#options 	BUFQ_READPRIO
+options 	BUFQ_PRIOCSCAN
+
+# Development and Debugging options
+
+#options 	PERFCTRS	# performance counters
+options 	DIAGNOSTIC	# internal consistency checks
+#options 	DEBUG
+#options 	PMAP_DEBUG	# Enable pmap_debug_level code
+#options 	IPKDB		# remote kernel debugging
+#options 	VERBOSE_INIT_ARM # verbose bootstraping messages
+options 	DDB		# in-kernel debugger
+options		DDB_ONPANIC=1
+options 	DDB_HISTORY_SIZE=100	# Enable history editing in DDB
+#options 	KGDB
+makeoptions	DEBUG="-g"	# compile full symbol table
+makeoptions	COPY_SYMTAB=1
+
+## USB Debugging options
+options USB_DEBUG
+options EHCI_DEBUG
+options OHCI_DEBUG
+options UHUB_DEBUG
+
+
+# Valid options for BOOT_ARGS:
+#  single		Boot to single user only
+#  kdb			Give control to kernel debugger
+#  ask			Ask for file name to reboot from
+#  memorydisk=<n>	Set memorydisk size to <n> KB
+#  quiet		Show aprint_naive output
+#  verbose		Show aprint_normal and aprint_verbose output
+options		BOOT_ARGS="\"\""
+
+config		netbsd		root on ? type ?
+
+# The main bus device
+mainbus0	at root
+
+# CPU
+#options 	MULTIPROCESSOR
+cpu*		at mainbus?
+
+# Specify the memory size in megabytes.
+options 	MEMSIZE=2048
+
+# A7 core devices
+armperiph0	at mainbus?
+armgic0		at armperiph?				# Interrupt Controller
+armgtmr0	at armperiph?				# ARM Generic Timer
+
+# SoC I/O
+awinio0		at mainbus?
+
+# SD/MMC controllers
+#awinmmc0	at awinio0 port 0
+#sdmmc*		at awinmmc?
+#ld*		at sdmmc?
+
+# Interrupt Controller
+awinicu0	at awinio0 
+
+# DMA Controller
+#awindma0	at awinio0
+
+# 64-bit counter
+#awincnt0	at awinio0
+
+# GPIO Controller
+awingpio0	at awinio0
+
+gpio*		at awingpio?
+
+# I2C Controllers
+#awiniic0	at awinio? port 0
+#iic0		at awiniic0
+
+#awiniic2	at awinio? port 2
+#iic2		at awiniic2
+#pcf8563rtc0	at iic2 addr 0x51	# PCF8563 RTC
+
+# P2WI
+#awinp2wi0	at awinio0
+#iic1		at awinp2wi0
+#axp22x0		at iic1 addr 0x34	# AXP221 Power Management Unit	
+
+# On-board 16550 UARTs
+com0		at awinio? port 0			# UART0 (console)
+options 	CONADDR=0x07000000, CONSPEED=115200
+
+# Consumer IR
+#awinir0		at awinio?
+#cir0		at awinir0
+
+# Watchdog timers
+#awinwdt*	at awinio?
+
+# RTC (not battery backed on this board; use PCF8563 instead)
+#awinrtc*	at awinio?
+
+# onboard audio codec
+#awinac0		at awinio0
+#audio0		at awinac0
+
+# GMAC Ethernet
+#awge0		at awinio0 port ?
+
+# HDMI
+#awinhdmi0	at awinio0
+#awinhdmiaudio0	at awinio0
+#audio1		at awinhdmiaudio0
+
+# TCON
+#awintcon0	at awinio0 port 0
+
+# DE-BE
+#awindebe0	at awinio0 port 0
+
+# Framebuffer
+#genfb0		at awindebe0
+#wsdisplay*	at genfb?
+#options 	VCONS_DRAW_INTR
+#options 	WSEMUL_VT100
+#options 	WS_KERNEL_FG=WSCOL_GREEN
+#options 	WS_KERNEL_BG=WSCOL_BLACK
+#options 	WSDISPLAY_COMPAT_PCVT
+#options 	WSDISPLAY_COMPAT_SYSCONS
+#options 	WSDISPLAY_COMPAT_USL
+#options 	WSDISPLAY_COMPAT_RAWKBD
+#options 	WSDISPLAY_DEFAULTSCREENS=4
+
+# On-board USB
+#awinusb0	at awinio0 port 0
+#awinusb1	at awinio0 port 1
+#ohci*		at awinusb?
+#ehci*		at awinusb?
+#usb*		at ohci?
+#usb*		at ehci?
+
+# USB OTG
+#motg0		at awinio0
+#usb*		at motg?
+
+#include "dev/usb/usbdevices.config"
+
+#midi*		at midibus?
+
+#rlphy*		at mii? phy ?
+#rgephy* 	at mii? phy ?
+#ukphy*		at mii? phy ?
+
+# Pseudo-Devices
+
+# disk/mass storage pseudo-devices
+#pseudo-device	md			# memory disk device (ramdisk)
+#pseudo-device	vnd			# disk-like interface to files
+#pseudo-device	fss			# file system snapshot device
+#pseudo-device	putter			# for puffs and pud
+pseudo-device	drvctl			# driver control
+
+# network pseudo-devices
+pseudo-device	bpfilter		# Berkeley packet filter
+pseudo-device	loop			# network loopback
+#pseudo-device	kttcp			# network loopback
+
+# miscellaneous pseudo-devices
+pseudo-device	pty			# pseudo-terminals
+#options	RND_COM
+#pseudo-device	clockctl		# user control of clock subsystem
+pseudo-device	ksyms			# /dev/ksyms
+pseudo-device	lockstat		# lock profiling
+
+# wscons pseudo-devices
+pseudo-device 	wsmux			# mouse & keyboard mux
+pseudo-device 	wsfont
+
+cinclude "arch/evbarm/conf/ALLWINNER_A80.local"

Reply via email to