diff --git a/sys/arch/evbarm/conf/TEAMASA_NPWR b/sys/arch/evbarm/conf/TEAMASA_NPWR new file mode 100644 index 000000000000..39de30e749c3 --- /dev/null +++ b/sys/arch/evbarm/conf/TEAMASA_NPWR @@ -0,0 +1,195 @@ +# $NetBSD: TEAMASA_NPWR,v 1.1 2002/02/07 21:34:23 thorpej Exp $ +# +# TEAMASA_NPWR -- Team ASA, Inc. Npwr -- XScale/IOP310-based +# server appliance. +# + +include "arch/evbarm/conf/std.iq80310" +options TEAMASA_NPWR # Enable Npwr support + +# 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 + +# For StrongARM systems +options CPU_XSCALE # Support the XScale core +makeoptions COPTS="-O2 -march=armv4 -mtune=strongarm" +#makeoptions COPTS="-O2 -march=armv5 -mtune=xscale" + +# 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 PORTAL # portal filesystem (still experimental) +file-system PROCFS # /proc +#file-system UMAPFS # NULLFS + uid and gid remapping +#file-system UNION # union file system + +# File system options +#options QUOTA # UFS quotas +#options FFS_EI # FFS Endian Independant support +options NFSSERVER +options SOFTDEP + +# Networking options + +#options GATEWAY # packet forwarding +options INET # IP + ICMP + TCP + UDP +options INET6 # IPV6 +#options IPSEC # IP security +#options IPSEC_ESP # IP security (encryption part; define w/ IPSEC) +#options IPSEC_DEBUG # debug for IP security +#options MROUTING # IP multicast routing +#options NS # XNS +#options NSIP # XNS tunneling over IP +#options ISO,TPIP # OSI +#options EON # OSI tunneling over IP +#options CCITT,LLC,HDLC # X.25 +#options NETATALK # AppleTalk networking +#options PFIL_HOOKS # pfil(9) packet filter hooks +#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_BOOTPARAM + +# Compatibility options + +#options COMPAT_43 # 4.3BSD compatibility. +options COMPAT_15 # NetBSD 1.5 compatibility. +options COMPAT_14 # NetBSD 1.4 compatibility. +#options COMPAT_13 # NetBSD 1.3 compatibility. +#options COMPAT_12 # NetBSD 1.2 compatibility. +#options COMPAT_11 # NetBSD 1.1 compatibility. +#options COMPAT_10 # NetBSD 1.0 compatibility. +#options COMPAT_09 # NetBSD 0.9 compatibility. +#options TCP_COMPAT_42 # 4.2BSD TCP/IP bug compat. Not recommended. + +# Shared memory options + +options SYSVMSG # System V-like message queues +options SYSVSEM # System V-like semaphores +#options SEMMNI=10 # number of semaphore identifiers +#options SEMMNS=60 # number of semaphores in system +#options SEMUME=10 # max number of undo entries per process +#options SEMMNU=30 # number of undo structures in system +options SYSVSHM # System V-like memory sharing +options SHMMAXPGS=1024 # 1024 pages is the default + +# Device options + +#options MEMORY_DISK_HOOKS # boottime setup of ramdisk +#options MEMORY_DISK_SIZE=0 # Size in blocks +#options MINIROOTSIZE=3400 # Size in blocks +#options MEMORY_DISK_IS_ROOT # use memory disk as root + +# Console options. The default console is oriented towards the IQ80310 +# eval board, on connector J9 ("com0") at # 115200 baud. +# +# The Npwr's RedBoot firmware uses 19200, and there is only one +# serial port. +options CONSPEED=19200 # Console speed +#options CONUNIT=1 # Console unit (0=J9, 1=J10) + +# Miscellaneous kernel options +options KTRACE # system call tracing, a la ktrace(1) +#options LKM # loadable kernel modules +#options KMEMSTATS # kernel memory statistics +options SCSIVERBOSE # Verbose SCSI errors +options PCIVERBOSE # Verbose PCI descriptions +options MIIVERBOSE # Verbose MII autoconfuration messages +#options PCI_CONFIG_DUMP # verbosely dump PCI config space +#options DDB_KEYCODE=0x40 +#options PIPE_SOCKETPAIR # smaller, but slower pipe(2) + +# Development and Debugging options + +options DIAGNOSTIC # internally 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_HISTORY_SIZE=100 # Enable history editing in DDB +makeoptions DEBUG="-g" # compile full symbol table +options SYMTAB_SPACE=200000 + +config netbsd root on ? type ? +config netbsd-wm0 root on wm0 type nfs + +# The main bus device +mainbus0 at root + +# The boot cpu +cpu0 at mainbus? + +# On-board device support +obio* at mainbus? +com* at obio? addr ? # on-board XR 16550 UARTs + +# i80312 Companion I/O support +iopxs* at mainbus? +pci* at iopxs? bus ? + +# +# Networking devices +# + +# PCI network devices +wm0 at pci? dev 1 function ? # on-board i82544GC #1 +wm1 at pci? dev 2 function ? # on-board i82544GC #2 + +# MII/PHY support +makphy* at mii? phy ? # Marvell "Alaska" Gig-E PHY +ukphy* at mii? phy ? # Generic IEEE 802.3u PHYs + +# +# Mass storage devices +# + +# PCI SCSI controllers +siop0 at pci? dev 0 function ? # on-board LSI 53c1010 +scsibus* at scsi? + +# SCSI device support +sd* at scsibus? target ? lun ? # SCSI disks +cd* at scsibus? target ? lun ? # SCSI CD-ROMs +st* at scsibus? target ? lun ? # SCSI tapes +uk* at scsibus? target ? lun ? # unknown SCSI devices + +# Pseudo-Devices + +# disk/mass storage pseudo-devices +#pseudo-device md 1 # memory disk device (ramdisk) +pseudo-device vnd 4 # disk-like interface to files +pseudo-device raid 4 # RAIDframe devices +pseudo-device ccd 4 # Concatenated disk devices + +# network pseudo-devices +pseudo-device bpfilter 4 # Berkeley packet filter +pseudo-device loop # network loopback + +# miscellaneous pseudo-devices +pseudo-device pty # pseudo-terminals +pseudo-device rnd # /dev/random and in-kernel generator diff --git a/sys/arch/evbarm/conf/files.iq80310 b/sys/arch/evbarm/conf/files.iq80310 index 249a60b9a576..6e6d894b9f31 100644 --- a/sys/arch/evbarm/conf/files.iq80310 +++ b/sys/arch/evbarm/conf/files.iq80310 @@ -1,8 +1,18 @@ -# $NetBSD: files.iq80310,v 1.6 2002/01/30 03:59:40 thorpej Exp $ +# $NetBSD: files.iq80310,v 1.7 2002/02/07 21:34:23 thorpej Exp $ # # Intel IQ80310 evaluation board configuration info # +# Define the (IQ80310-based) board types that we support: +# +# IOP310_TEAMASA_NPWR +# Team ASA, Inc. Npwr http://www.teamasa.com/ +# +# If no board type options are specified, the default is the +# Intel/Cyclone IQ80310 (which is the IOP310 reference design +# eval board). +defflag opt_iop310.h IOP310_TEAMASA_NPWR + # Use the generic ARM soft interrupt code. file arch/arm/arm/softintr.c diff --git a/sys/arch/evbarm/iq80310/i80312_mainbus.c b/sys/arch/evbarm/iq80310/i80312_mainbus.c index 09fd6e890333..444a25f9dc98 100644 --- a/sys/arch/evbarm/iq80310/i80312_mainbus.c +++ b/sys/arch/evbarm/iq80310/i80312_mainbus.c @@ -1,7 +1,7 @@ -/* $NetBSD: i80312_mainbus.c,v 1.3 2001/11/09 23:15:53 thorpej Exp $ */ +/* $NetBSD: i80312_mainbus.c,v 1.4 2002/02/07 21:34:24 thorpej Exp $ */ /* - * Copyright (c) 2001 Wasabi Systems, Inc. + * Copyright (c) 2001, 2002 Wasabi Systems, Inc. * All rights reserved. * * Written by Jason R. Thorpe for Wasabi Systems, Inc. @@ -123,7 +123,12 @@ i80312_mainbus_attach(struct device *parent, struct device *self, void *aux) sc->sc_piow_vaddr = IQ80310_PIOW_VBASE; sc->sc_siow_vaddr = IQ80310_SIOW_VBASE; + /* Some boards are always considered "host". */ +#if defined(IOP310_TEAMASA_NPWR) + sc->sc_is_host = 1; +#else sc->sc_is_host = CPLD_READ(IQ80310_BACKPLANE_DET) & 1; +#endif printf(": i80312 Companion I/O, acting as PCI %s\n", sc->sc_is_host ? "host" : "slave"); diff --git a/sys/arch/evbarm/iq80310/iq80310_pci.c b/sys/arch/evbarm/iq80310/iq80310_pci.c index b0f8d69b4d0b..2c1891b25a13 100644 --- a/sys/arch/evbarm/iq80310/iq80310_pci.c +++ b/sys/arch/evbarm/iq80310/iq80310_pci.c @@ -1,7 +1,7 @@ -/* $NetBSD: iq80310_pci.c,v 1.4 2002/01/30 03:59:43 thorpej Exp $ */ +/* $NetBSD: iq80310_pci.c,v 1.5 2002/02/07 21:34:24 thorpej Exp $ */ /* - * Copyright (c) 2001 Wasabi Systems, Inc. + * Copyright (c) 2001, 2002 Wasabi Systems, Inc. * All rights reserved. * * Written by Jason R. Thorpe for Wasabi Systems, Inc. @@ -74,6 +74,50 @@ iq80310_pci_init(pci_chipset_tag_t pc, void *cookie) pc->pc_intr_disestablish = iq80310_pci_intr_disestablish; } +#if defined(IOP310_TEAMASA_NPWR) +int +iq80310_pci_intr_map(struct pci_attach_args *pa, pci_intr_handle_t *ihp) +{ + struct i80312_softc *sc = pa->pa_pc->pc_intr_v; + int sbus; + + /* + * The Npwr routes #INTA of the on-board PCI devices directly + * through the CPLD. There is no PCI-PCI bridge and no PCI + * slots on the Npwr. + * + * We also expect the devices to be on the Secondary side of + * the i80312. + */ + + reg = bus_space_read_4(sc->sc_st, sc->sc_ppb_sh, PPB_REG_BUSINFO); + sbus = PPB_BUSINFO_SECONDARY(reg); + + if (pa->pa_bus != pbus) { + printf("iq80310_pci_intr_map: %d/%d/%d not on Secondary bus\n", + pa->pa_bus, pa->pa_device, pa->pa_function); + return (1); + } + + switch (pa->pa_device) { + case 0: /* LSI 53c1010 SCSI */ + *ihp = XINT3_IRQ(2); + break; + case 1: /* Intel i82544GC Gig-E #1 */ + *ihp = XINT3_IRQ(1); + break; + case 2: /* Intel i82544GC Gig-E #2 */ + *ihp = XINT3_IRQ(4); + break; + default: + printf("iq80310_pci_intr_map: no mapping for %d/%d/%d\n", + pa->pa_bus, pa->pa_device, pa->pa_function); + return (1); + } + + return (0); +} +#else /* Default to stock IQ80310 */ int iq80310_pci_intr_map(struct pci_attach_args *pa, pci_intr_handle_t *ihp) { @@ -178,6 +222,7 @@ iq80310_pci_intr_map(struct pci_attach_args *pa, pci_intr_handle_t *ihp) return (0); } +#endif /* list of IQ80310-based designs */ const char * iq80310_pci_intr_string(void *v, pci_intr_handle_t ih) diff --git a/sys/arch/evbarm/iq80310/iq80310var.h b/sys/arch/evbarm/iq80310/iq80310var.h index d287a8aaee70..3bebdbac90f5 100644 --- a/sys/arch/evbarm/iq80310/iq80310var.h +++ b/sys/arch/evbarm/iq80310/iq80310var.h @@ -1,7 +1,7 @@ -/* $NetBSD: iq80310var.h,v 1.4 2002/01/30 03:59:43 thorpej Exp $ */ +/* $NetBSD: iq80310var.h,v 1.5 2002/02/07 21:34:24 thorpej Exp $ */ /* - * Copyright (c) 2001 Wasabi Systems, Inc. + * Copyright (c) 2001, 2002 Wasabi Systems, Inc. * All rights reserved. * * Written by Jason R. Thorpe for Wasabi Systems, Inc. @@ -38,6 +38,16 @@ #ifndef _IQ80310_IQ80310VAR_H_ #define _IQ80310_IQ80310VAR_H_ +#include "opt_iop310.h" + +/* + * If no IOP310 board type options are specified, default to IQ80310. + * Otherwise, make sure only one board type option is specified. + */ +#if (defined(IOP310_TEAMASA_NPWR)) > 1 +#error May not define more than one IOP310 board type +#endif + #include #include diff --git a/sys/arch/evbarm/iq80310/obio.c b/sys/arch/evbarm/iq80310/obio.c index 5cad2242bcbf..0fe394422027 100644 --- a/sys/arch/evbarm/iq80310/obio.c +++ b/sys/arch/evbarm/iq80310/obio.c @@ -1,7 +1,7 @@ -/* $NetBSD: obio.c,v 1.3 2001/11/19 19:08:33 thorpej Exp $ */ +/* $NetBSD: obio.c,v 1.4 2002/02/07 21:34:24 thorpej Exp $ */ /* - * Copyright (c) 2001 Wasabi Systems, Inc. + * Copyright (c) 2001, 2002 Wasabi Systems, Inc. * All rights reserved. * * Written by Jason R. Thorpe for Wasabi Systems, Inc. @@ -73,7 +73,18 @@ struct { const char *od_name; bus_addr_t od_addr; int od_irq; -} obio_devices[] = { +} obio_devices[] = +#if defined(TEAMASA_NPWR) +{ + /* + * There is only one UART on the Npwr. + */ + { "com", IQ80310_UART2, XINT3_IRQ(XINT3_UART2) }, + + { NULL, 0, 0 }, +}; +#else /* Default to stock IQ80310 */ +{ /* * Order these so the first UART matched is the one at J9 * and the second is the one at J10. (This is the same @@ -84,6 +95,7 @@ struct { { NULL, 0, 0 }, }; +#endif /* list of IQ80310-based designs */ int obio_match(struct device *parent, struct cfdata *cf, void *aux)