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"