Initial Allwinner A80 support.
This commit is contained in:
parent
d8e7f02599
commit
4b4f62e211
@ -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";
|
||||
}
|
||||
}
|
||||
|
@ -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 cf, void *aux)
|
||||
}
|
||||
|
||||
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
|
||||
|
@ -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_ */
|
||||
|
@ -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_locators[] = {
|
||||
{ "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 self, void *aux)
|
||||
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 self, void *aux)
|
||||
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 = {
|
||||
|
@ -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_ */
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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.c,v 1.29 2014/11/17 00:50:40 jmcneill E
|
||||
#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 *aux)
|
||||
|
||||
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 *aux)
|
||||
}
|
||||
|
||||
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 *aux)
|
||||
prop_object_release(pd);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#if AWIN_board == AWIN_cubieboard
|
||||
if (awin_chip_id() == AWIN_CHIP_ID_A20) {
|
||||
|
319
sys/arch/evbarm/conf/ALLWINNER_A80
Normal file
319
sys/arch/evbarm/conf/ALLWINNER_A80
Normal file
@ -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"
|
Loading…
Reference in New Issue
Block a user