From 8c3155bfa8b79dd47d2cc64189a919a9b434dc79 Mon Sep 17 00:00:00 2001 From: Dale Rahn Date: Sun, 1 Feb 2004 05:12:56 +0000 Subject: cats (ARM) support for OpenBSD, based on NetBSD code. --- sys/arch/cats/conf/GENERIC | 349 ++++++++++++++++++++++++++++++++++++ sys/arch/cats/conf/Makefile.cats | 214 ++++++++++++++++++++++ sys/arch/cats/conf/RAMDISK | 374 +++++++++++++++++++++++++++++++++++++++ sys/arch/cats/conf/files.cats | 108 +++++++++++ sys/arch/cats/conf/ldscript.elf | 76 ++++++++ 5 files changed, 1121 insertions(+) create mode 100644 sys/arch/cats/conf/GENERIC create mode 100644 sys/arch/cats/conf/Makefile.cats create mode 100644 sys/arch/cats/conf/RAMDISK create mode 100644 sys/arch/cats/conf/files.cats create mode 100644 sys/arch/cats/conf/ldscript.elf (limited to 'sys/arch/cats/conf') diff --git a/sys/arch/cats/conf/GENERIC b/sys/arch/cats/conf/GENERIC new file mode 100644 index 00000000000..22fa56f2c03 --- /dev/null +++ b/sys/arch/cats/conf/GENERIC @@ -0,0 +1,349 @@ +# $OpenBSD: GENERIC,v 1.1 2004/02/01 05:12:54 drahn Exp $ +# $NetBSD: GENERIC,v 1.27.4.1 2002/08/01 04:18:06 lukem Exp $ +# +# GENERIC machine description file +# +# This machine description file is used to generate the default NetBSD +# kernel. The generic kernel does not include all options, subsystems +# and device drivers, but should be useful for most applications. +# +# The machine description file can be customised for your specific +# machine to reduce the kernel size and improve its performance. +# +# For further information on compiling NetBSD kernels, see the config(8) +# man page. +# +# For further information on hardware support for this architecture, see +# the intro(4) man page. For further information about kernel options +# for this architecture, see the options(4) man page. For an explanation +# of each device driver in this file see the section 4 man page for the +# device. + +machine cats arm + +include "../../../conf/GENERIC" + +options ARM32 +options FOOTBRIDGE_INTR + +# estimated number of users + +maxusers 32 + +# Standard system options + +#options UCONSOLE # users can use TIOCCONS (for xconsole) +#options INSECURE # disable kernel securelevel + +#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_SA110 # Support the SA110 core + +# FPA options + +#options ARMFPE # ARM Ltd FPE + + + + +# Compatibility options + +option WSDISPLAY_COMPAT_USL # VT handling +option WSDISPLAY_COMPAT_RAWKBD # can get raw scancodes +option WSDISPLAY_DEFAULTSCREENS=6 # can get raw scancodes +option WSDISPLAY_COMPAT_PCVT # can get raw scancodes + + +config bsd swap generic + +# The main bus device +mainbus0 at root + +# The boot cpu +cpu0 at mainbus? + +# Core logic +footbridge0 at mainbus? + +# footbridge uart +fcom0 at footbridge? + +# system clock via footbridge +#clock* at footbridge? + +# time-of-day device via footbridge or RTC +todclock0 at todservice? + +# PCI bus support +# PCI bus via footbridge +pci0 at footbridge? # PCI bus + +pci* at ppb? bus ? + +option PCIVERBOSE +option USBVERBOSE + +# PCI bridges +ppb* at pci? dev ? function ? # PCI-PCI bridges +# XXX 'puc's aren't really bridges, but there's no better place for them here +#puc* at pci? dev ? function ? # PCI "universal" comm. cards + +# PCI serial interfaces +#com* at puc? port ? # 16x50s on "universal" comm boards +#cy* at pci? dev ? function ? # Cyclades Cyclom-Y serial boards + +# PCI parallel printer interfaces +#lpt* at puc? port ? # || ports on "universal" comm boards + +# PCI SCSI Controllers and Buses +adv* at pci? dev ? function ? # AdvanSys 1200[A,B], ULTRA SCSI +scsibus* at adv? +#adw* at pci? dev ? function ? # AdvanSys 9xxUW SCSI +#scsibus* at adw? +ahc* at pci? dev ? function ? # Adaptec [23]94x, aic78x0 SCSI controllers +scsibus* at ahc? +#bha* at pci? dev ? function ? # BusLogic 9xx SCSI +#scsibus* at bha? +iha* at pci? dev ? function ? # Initio INIC-940/950 SCSI +scsibus* at iha? +#isp* at pci? dev ? function ? # Qlogic ISP 10x0 SCSI controllers +#scsibus* at isp? +pcscp* at pci? dev ? function ? # AMD 53c974 PCscsi-PCI SCSI +scsibus* at pcscp? +siop* at pci? dev ? function ? # NCR 53c8xx SCSI +scsibus* at siop? + +# SCSI devices +sd* at scsibus? target ? lun ? # SCSI disk drives +st* at scsibus? target ? lun ? # SCSI tape drives +cd* at scsibus? target ? lun ? # SCSI CD-ROM drives +#ch* at scsibus? target ? lun ? # SCSI auto-changers +#uk* at scsibus? target ? lun ? # SCSI unknown device +#ss* at scsibus? target ? lun ? # SCSI scanner + +# PCI IDE Controllers and Devices +# PCI IDE controllers - see pciide(4) for supported hardware. +# The 0x0001 flag force the driver to use DMA, even if the driver doesn't know +# how to set up DMA modes for this chip. This may work, or may cause +# a machine hang with some controllers. +pciide* at pci? dev ? function ? flags 0x0000 + +# IDE drives +# Flags are used only with controllers that support DMA operations +# and mode settings (e.g. some pciide controllers) +# The lowest order four bits (rightmost digit) of the flags define the PIO +# mode to use, the next set of four bits the DMA mode and the third set the +# UltraDMA mode. For each set of four bits, the 3 lower bits define the mode +# to use, and the last bit must be 1 for this setting to be used. +# For DMA and UDMA, 0xf (1111) means 'disable'. +# 0x0fac means 'use PIO mode 4, DMA mode 2, disable UltraDMA'. +# (0xc=1100, 0xa=1010, 0xf=1111) +# 0x0000 means "use whatever the drive claims to support". +wd* at pciide? channel ? drive ? flags 0x0000 # the drives themselves + +# ATAPI bus support +atapiscsi* at pciide? channel ? +scsibus* at atapiscsi? + +# PCI network interfaces +#en* at pci? dev ? function ? # ENI/Adaptec ATM +#ep* at pci? dev ? function ? # 3C590 ethernet cards +fxp* at pci? dev ? function ? # Intel EtherExpress PRO 10+/100B +ne* at pci? dev ? function ? # NE2000 compat ethernet +#ntwoc* at pci? dev ? function ? # Riscom/N2 PCI Sync Serial +dc* at pci? dev ? function ? # DECchip 21x4x and clones +de* at pci? dev ? function ? # DECchip 21x4x and clones +vr* at pci? dev ? function ? # VIA Rhine Fast Ethernet +#lmc* at pci? dev ? function ? # Lan Media Corp SSI/HSSI/DS3 + +# MII/PHY support +exphy* at mii? phy ? # 3Com internal PHYs +#icsphy* at mii? phy ? # Integrated Circuit Systems ICS189x +inphy* at mii? phy ? # Intel 82555 PHYs +#iophy* at mii? phy ? # Intel 82553 PHYs +#lxtphy* at mii? phy ? # Level One LXT-970 PHYs +nsphy* at mii? phy ? # NS83840 PHYs +#nsphyter* at mii? phy ? # NS83843 PHYs +qsphy* at mii? phy ? # Quality Semiconductor QS6612 PHYs +#sqphy* at mii? phy ? # Seeq 80220/80221/80223 PHYs +#tlphy* at mii? phy ? # ThunderLAN PHYs +#tqphy* at mii? phy ? # TDK Semiconductor PHYs +ukphy* at mii? phy ? # generic unknown PHYs + +# USB Controller and Devices + +# PCI USB controllers +ohci* at pci? # Open Host Controller + +# USB bus support +usb* at ohci? + +# USB Hubs +uhub* at usb? +uhub* at uhub? port ? configuration ? interface ? + +# USB HID device +uhidev* at uhub? port ? configuration ? interface ? + +# USB Mice +ums* at uhidev? reportid ? +wsmouse* at ums? + +# USB Keyboards +ukbd* at uhidev? reportid ? +wskbd* at ukbd? console ? + +# USB Generic HID devices +uhid* at uhidev? reportid ? + +# USB Printer +ulpt* at uhub? port ? configuration ? interface ? + +# USB Modem +umodem* at uhub? port ? configuration ? +ucom* at umodem? + +# USB Mass Storage +umass* at uhub? port ? configuration ? interface ? +atapiscsi* at umass? +scsibus* at umass? + +# USB audio +uaudio* at uhub? port ? configuration ? +audio* at uaudio? + +# USB MIDI +umidi* at uhub? port ? configuration ? +midi* at umidi? + +# USB Ethernet adapters +aue* at uhub? port ? # ADMtek AN986 Pegasus based adapters +cue* at uhub? port ? # CATC USB-EL1201A based adapters +kue* at uhub? port ? # Kawasaki LSI KL5KUSB101B based adapters + +# Prolofic PL2301/PL2302 host-to-host adapter +upl* at uhub? port ? + +# Serial adapters +# FTDI FT8U100AX serial adapter +uftdi* at uhub? port ? +ucom* at uftdi? portno ? + +uplcom* at uhub? port ? # I/O DATA USB-RSAQ2 serial adapter +ucom* at uplcom? portno ? + +umct* at uhub? port ? # MCT USB-RS232 serial adapter +ucom* at umct? portno ? + +# Diamond Multimedia Rio 500 +urio* at uhub? port ? + +# USB Handspring Visor +uvisor* at uhub? port ? +ucom* at uvisor? + +# USB scanners +uscanner* at uhub? port ? + +# USB scanners that use SCSI emulation, e.g., HP5300 +usscanner* at uhub? port ? +scsibus* at usscanner? + +# Y@P firmware loader +uyap* at uhub? port ? + +# USB Generic driver +ugen* at uhub? port ? + +# Audio Devices + +# PCI audio devices +#eap* at pci? dev ? function ? # Ensoniq AudioPCI +#sv* at pci? dev ? function ? # S3 SonicVibes + +# Audio support +#audio* at eap? +#audio* at sv? + +vga* at pci? +wsdisplay* at vga? console ? + +# ISA bus bridging + +pcib* at pci? dev ? function ? # PCI-ISA bridge +isa* at pcib? # ISA bus + +# ISA Plug-and-Play bus support +#isapnp0 at isa? + +# wscons +pckbc0 at isa? # pc keyboard controller +pckbd* at pckbc? # PC keyboard +pms* at pckbc? # PS/2 mouse for wsmouse +wskbd* at pckbd? console ? +wsmouse* at pms? + +pcppi0 at isa? +sysbeep0 at pcppi? + +# ISA Plug-and-Play serial interfaces +#com* at isapnp? # Modems and serial boards + +# ISA Plug-and-Play network interfaces +#ep* at isapnp? # 3Com 3c509 Ethernet + +# ISA serial interfaces +com0 at isa? port 0x3f8 irq 4 # Standard PC serial ports +com1 at isa? port 0x2f8 irq 3 +#com2 at isa? port 0x3e8 irq 9 +#com3 at isa? port 0x2e8 irq 10 + +# ISA parallel printer interfaces +lpt0 at isa? port 0x378 irq 7 # standard PC parallel ports +lpt1 at isa? port 0x278 irq 5 +#lpt2 at isa? port 0x3bc + +# ISA floppy +#fdc0 at isa? port 0x3f0 irq 6 drq 2 # standard PC floppy controllers +#fdc1 at isa? port 0x370 irq ? drq ? +#fd* at fdc? drive ? # the drives themselves + +# ISA network interface +#ne0 at isa? port 0x280 irq 9 +#ne1 at isa? port 0x300 irq 10 +#ep* at isa? port ? irq ? + +# The spkr driver provides a simple tone interface to the built in speaker. +spkr0 at pcppi? # PC speaker + +ds1687rtc0 at isa? port 0x72 # Dallas RTC + +# ISA Plug-and-Play audio devices +#ess* at isapnp? # ESS Tech ES1887, ES1888, ES888 audio +#sb* at isapnp? # SoundBlaster-compatible audio +#wss* at isapnp? # Windows Sound System + +# MPU 401 UARTs +#mpu* at sb? + +# MIDI support +midi* at pcppi? # MIDI interface to the PC speaker +#midi* at mpu? # MPU 401 + +# Joysticks + +# ISA Plug-and-Play joysticks +#joy* at isapnp? # Game ports (usually on audio cards) + +# ISA joysticks. Probe is a little strange; add only if you have one. +#joy0 at isa? port 0x201 + +# Pseudo-Devices + +# mouse & keyboard multiplexor pseudo-devices +pseudo-device wsmux 2 +pseudo-device crypto 1 diff --git a/sys/arch/cats/conf/Makefile.cats b/sys/arch/cats/conf/Makefile.cats new file mode 100644 index 00000000000..4970327a07b --- /dev/null +++ b/sys/arch/cats/conf/Makefile.cats @@ -0,0 +1,214 @@ +# $OpenBSD: Makefile.cats,v 1.1 2004/02/01 05:12:54 drahn Exp $ +# $OpenBSD: Makefile.cats,v 1.1 2004/02/01 05:12:54 drahn Exp $ +# $NetBSD: Makefile.i386,v 1.67 1996/05/11 16:12:11 mycroft Exp $ + +# Makefile for OpenBSD +# +# This makefile is constructed from a machine description: +# config machineid +# Most changes should be made in the machine description +# /sys/arch/cats/conf/``machineid'' +# after which you should do +# config machineid +# Machine generic makefile changes should be made in +# /sys/arch/cats/conf/Makefile.cats +# after which config should be rerun for all machines of that type. +# +# N.B.: NO DEPENDENCIES ON FOLLOWING FLAGS ARE VISIBLE TO MAKEFILE +# IF YOU CHANGE THE DEFINITION OF ANY OF THESE RECOMPILE EVERYTHING +# +# -DTRACE compile in kernel tracing hooks +# -DQUOTA compile in file system quotas + +# DEBUG is set to -g if debugging. +# PROF is set to -pg if profiling. + +.include + +MKDEP?= mkdep +SIZE?= size +STRIP?= strip + +# source tree is located via $S relative to the compilation directory +.ifndef S +S!= cd ../../../..; pwd +.endif +CATS= $S/arch/cats +ARM= $S/arch/arm + +INCLUDES= -nostdinc -I. -I$S/arch -I$S +CPPFLAGS= ${INCLUDES} ${IDENT} -D_KERNEL -D__cats__ +CDIAGFLAGS= -Werror -Wall -Wstrict-prototypes -Wmissing-prototypes \ + -Wno-uninitialized -Wno-format -Wno-main + +CMACHFLAGS= -ffreestanding +#CMACHFLAGS= -march=armv4 -mtune=strongarm -ffreestanding +.if ${IDENT:M-DNO_PROPOLICE} +CMACHFLAGS+= -msoft-float -fno-stack-protector +.endif +CMACHFLAGS+= -msoft-float -fno-builtin-printf -fno-builtin-log + +COPTS?= -O2 +CFLAGS= ${DEBUG} ${CDIAGFLAGS} ${CMACHFLAGS} ${COPTS} ${PIPE} +AFLAGS= -x assembler-with-cpp -D_LOCORE ${CMACHFLAGS} +#LINKFLAGS= -Ttext 0xF0000020 -e start --warn-common +#LINKFLAGS= -T ${CATS}/conf/kern.ldscript +LINKFLAGS= -T ${CATS}/conf/ldscript.elf +LINKFLAGS+= --warn-common +STRIPFLAGS= -g -X -x + +HOSTCC= ${CC} +HOSTED_CPPFLAGS=${CPPFLAGS:S/^-nostdinc$//} +HOSTED_CFLAGS= ${CFLAGS} + +### find out what to use for libkern +.include "$S/lib/libkern/Makefile.inc" +.ifndef PROF +LIBKERN= ${KERNLIB} +.else +LIBKERN= ${KERNLIB_PROF} +.endif + +### find out what to use for libcompat +.include "$S/compat/common/Makefile.inc" +.ifndef PROF +LIBCOMPAT= ${COMPATLIB} +.else +LIBCOMPAT= ${COMPATLIB_PROF} +.endif + +# compile rules: rules are named ${TYPE}_${SUFFIX}${CONFIG_DEP} +# where TYPE is NORMAL, DRIVER, or PROFILE; SUFFIX is the file suffix, +# capitalized (e.g. C for a .c file), and CONFIG_DEP is _C if the file +# is marked as config-dependent. + +NORMAL_C= ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c $< +NORMAL_C_C= ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} ${PARAM} -c $< + +DRIVER_C= ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c $< +DRIVER_C_C= ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} ${PARAM} -c $< + +NORMAL_S= ${CC} ${AFLAGS} ${CPPFLAGS} -c $< +NORMAL_S_C= ${CC} ${AFLAGS} ${CPPFLAGS} ${PARAM} -c $< + +HOSTED_C= ${HOSTCC} ${HOSTED_CFLAGS} ${HOSTED_CPPFLAGS} -c $< + +%OBJS + +%CFILES + +%SFILES + +# load lines for config "xxx" will be emitted as: +# xxx: ${SYSTEM_DEP} swapxxx.o +# ${SYSTEM_LD_HEAD} +# ${SYSTEM_LD} swapxxx.o +# ${SYSTEM_LD_TAIL} +SYSTEM_OBJ= locore.o \ + param.o ioconf.o ${OBJS} ${LIBKERN} ${LIBCOMPAT} +SYSTEM_DEP= Makefile ${SYSTEM_OBJ} +SYSTEM_LD_HEAD= rm -f $@ +SYSTEM_LD= @echo ${LD} ${LINKFLAGS} -o $@ '$${SYSTEM_OBJ}' vers.o; \ + ${LD} ${LINKFLAGS} -o $@ ${SYSTEM_OBJ} vers.o +SYSTEM_LD_TAIL= @${SIZE} $@; chmod 755 $@ + +DEBUG?= +.if ${DEBUG} == "-g" +LINKFLAGS+= -X +SYSTEM_LD_TAIL+=; \ + echo cp $@ $@.gdb; rm -f $@.gdb; cp $@ $@.gdb; \ + echo ${STRIP} ${STRIPFLAGS} $@; ${STRIP} ${STRIPFLAGS} $@ +.else +LINKFLAGS+= -x +.endif + +%LOAD + +assym.h: $S/kern/genassym.sh ${ARM}/arm/genassym.cf Makefile + cat ${ARM}/arm/genassym.cf | \ + sh $S/kern/genassym.sh ${CC} ${CFLAGS} \ + ${CPPFLAGS} ${PARAM} > assym.h.tmp && \ + mv -f assym.h.tmp assym.h + +param.c: $S/conf/param.c + rm -f param.c + cp $S/conf/param.c . + +param.o: param.c Makefile + ${NORMAL_C_C} + +ioconf.o: ioconf.c + ${NORMAL_C} + +newvers: ${SYSTEM_DEP} ${SYSTEM_SWAP_DEP} + sh $S/conf/newvers.sh + ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c vers.c + + +clean:: + rm -f eddep *bsd bsd.gdb tags *.[io] [a-z]*.s \ + [Ee]rrs linterrs makelinks assym.h + +lint: + @lint -hbxncez -Dvolatile= ${CPPFLAGS} ${PARAM} -UKGDB \ + ${CFILES} ioconf.c param.c | \ + grep -v 'static function .* unused' + +tags: + @echo "see $S/kern/Makefile for tags" + +links: + egrep '#if' ${CFILES} | sed -f $S/conf/defines | \ + sed -e 's/:.*//' -e 's/\.c/.o/' | sort -u > dontlink + echo ${CFILES} | tr -s ' ' '\12' | sed 's/\.c/.o/' | \ + sort -u | comm -23 - dontlink | \ + sed 's,.*/\(.*.o\),rm -f \1; ln -s ../GENERIC/\1 \1,' > makelinks + sh makelinks && rm -f dontlink makelinks + +SRCS= ${ARM}/arm/locore.S \ + param.c ioconf.c ${CFILES} ${SFILES} +depend:: .depend +.depend: ${SRCS} assym.h param.c ${APMINC} + ${MKDEP} ${AFLAGS} ${CPPFLAGS} ${ARM}/arm/locore.S + ${MKDEP} -a ${CFLAGS} ${CPPFLAGS} param.c ioconf.c ${CFILES} + ${MKDEP} -a ${AFLAGS} ${CPPFLAGS} ${SFILES} + cat ${ARM}/arm/genassym.cf ${ARM}/footbridge/genassym.cf | \ + sh $S/kern/genassym.sh ${MKDEP} -f assym.dep ${CFLAGS} \ + ${CPPFLAGS} + @sed -e 's/.*\.o:.* /assym.h: /' < assym.dep >> .depend + @rm -f assym.dep + + +# depend on root or device configuration +autoconf.o conf.o: Makefile + +# depend on network or filesystem configuration +uipc_domain.o uipc_proto.o vfs_conf.o: Makefile +if.o if_tun.o if_loop.o if_ethersubr.o: Makefile +if_arp.o if_ether.o: Makefile +ip_input.o ip_output.o in_pcb.o in_proto.o: Makefile +tcp_subr.o tcp_timer.o tcp_output.o: Makefile + +# depend on maxusers +machdep.o: Makefile + +# depend on CPU configuration +locore.o machdep.o: Makefile + + +locore.o: ${ARM}/arm/locore.S assym.h + ${NORMAL_S} + +# The install target can be redefined by putting a +# install-kernel-${MACHINE_NAME} target into /etc/mk.conf +MACHINE_NAME!= uname -n +install: install-kernel-${MACHINE_NAME} +.if !target(install-kernel-${MACHINE_NAME}}) +install-kernel-${MACHINE_NAME}: + rm -f /obsd + ln /bsd /obsd + cp bsd /nbsd + mv /nbsd /bsd +.endif + +%RULES diff --git a/sys/arch/cats/conf/RAMDISK b/sys/arch/cats/conf/RAMDISK new file mode 100644 index 00000000000..19436ee5ac6 --- /dev/null +++ b/sys/arch/cats/conf/RAMDISK @@ -0,0 +1,374 @@ +# $OpenBSD: RAMDISK,v 1.1 2004/02/01 05:12:54 drahn Exp $ +# $NetBSD: GENERIC,v 1.27.4.1 2002/08/01 04:18:06 lukem Exp $ +# +# GENERIC machine description file +# +# This machine description file is used to generate the default NetBSD +# kernel. The generic kernel does not include all options, subsystems +# and device drivers, but should be useful for most applications. +# +# The machine description file can be customised for your specific +# machine to reduce the kernel size and improve its performance. +# +# For further information on compiling NetBSD kernels, see the config(8) +# man page. +# +# For further information on hardware support for this architecture, see +# the intro(4) man page. For further information about kernel options +# for this architecture, see the options(4) man page. For an explanation +# of each device driver in this file see the section 4 man page for the +# device. + +machine cats arm + +# include "../../../conf/GENERIC" +option TIMEZONE=0 # time zone to adjust RTC time by +option DST=0 # daylight saving time used by RTC +option COMPAT_43 # and 4.3BSD +option FFS # UFS +option NFSCLIENT # Network File System client +option CD9660 # ISO 9660 + Rock Ridge file system +option MSDOSFS # MS-DOS file system +option INET # IP + ICMP + TCP + UDP +option INET6 # IPv6 (needs INET) +option DDB # kernel debugger +option EXT2FS # Second Extended Filesystem +option FIFO # FIFOs; RECOMMENDED + +options SYSCALL_DEBUG +options ARM32 +options FOOTBRIDGE_INTR + +# estimated number of users + +maxusers 32 + +# Standard system options + +#options UCONSOLE # users can use TIOCCONS (for xconsole) +#options INSECURE # disable kernel securelevel + +#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_SA110 # Support the SA110 core + +# FPA options + +#options ARMFPE # ARM Ltd FPE + + + + +# Compatibility options + +option WSDISPLAY_COMPAT_USL # VT handling +option WSDISPLAY_COMPAT_RAWKBD # can get raw scancodes +option WSDISPLAY_DEFAULTSCREENS=6 # can get raw scancodes +option WSDISPLAY_COMPAT_PCVT # can get raw scancodes + + +#config bsd swap generic +config bsd root on rd0a swap on rd0b + +# The main bus device +mainbus0 at root + +# The boot cpu +cpu0 at mainbus? + +# Core logic +footbridge0 at mainbus? + +# footbridge uart +fcom0 at footbridge? + +# system clock via footbridge +#clock* at footbridge? + +# time-of-day device via footbridge or RTC +todclock0 at todservice? + +# PCI bus support +# PCI bus via footbridge +pci0 at footbridge? # PCI bus + +pci* at ppb? bus ? + +option PCIVERBOSE +option USBVERBOSE + +# PCI bridges +ppb* at pci? dev ? function ? # PCI-PCI bridges +# XXX 'puc's aren't really bridges, but there's no better place for them here +#puc* at pci? dev ? function ? # PCI "universal" comm. cards + +# PCI serial interfaces +#com* at puc? port ? # 16x50s on "universal" comm boards +#cy* at pci? dev ? function ? # Cyclades Cyclom-Y serial boards + +# PCI parallel printer interfaces +#lpt* at puc? port ? # || ports on "universal" comm boards + +# PCI SCSI Controllers and Buses +adv* at pci? dev ? function ? # AdvanSys 1200[A,B], ULTRA SCSI +scsibus* at adv? +#adw* at pci? dev ? function ? # AdvanSys 9xxUW SCSI +#scsibus* at adw? +ahc* at pci? dev ? function ? # Adaptec [23]94x, aic78x0 SCSI controllers +scsibus* at ahc? +#bha* at pci? dev ? function ? # BusLogic 9xx SCSI +#scsibus* at bha? +iha* at pci? dev ? function ? # Initio INIC-940/950 SCSI +scsibus* at iha? +#isp* at pci? dev ? function ? # Qlogic ISP 10x0 SCSI controllers +#scsibus* at isp? +pcscp* at pci? dev ? function ? # AMD 53c974 PCscsi-PCI SCSI +scsibus* at pcscp? +siop* at pci? dev ? function ? # NCR 53c8xx SCSI +scsibus* at siop? + +# SCSI devices +sd* at scsibus? target ? lun ? # SCSI disk drives +st* at scsibus? target ? lun ? # SCSI tape drives +cd* at scsibus? target ? lun ? # SCSI CD-ROM drives +#ch* at scsibus? target ? lun ? # SCSI auto-changers +#uk* at scsibus? target ? lun ? # SCSI unknown device +#ss* at scsibus? target ? lun ? # SCSI scanner + +# PCI IDE Controllers and Devices +# PCI IDE controllers - see pciide(4) for supported hardware. +# The 0x0001 flag force the driver to use DMA, even if the driver doesn't know +# how to set up DMA modes for this chip. This may work, or may cause +# a machine hang with some controllers. +pciide* at pci? dev ? function ? flags 0x0000 + +# IDE drives +# Flags are used only with controllers that support DMA operations +# and mode settings (e.g. some pciide controllers) +# The lowest order four bits (rightmost digit) of the flags define the PIO +# mode to use, the next set of four bits the DMA mode and the third set the +# UltraDMA mode. For each set of four bits, the 3 lower bits define the mode +# to use, and the last bit must be 1 for this setting to be used. +# For DMA and UDMA, 0xf (1111) means 'disable'. +# 0x0fac means 'use PIO mode 4, DMA mode 2, disable UltraDMA'. +# (0xc=1100, 0xa=1010, 0xf=1111) +# 0x0000 means "use whatever the drive claims to support". +wd* at pciide? channel ? drive ? flags 0x0000 # the drives themselves + +# ATAPI bus support +atapiscsi* at pciide? channel ? +scsibus* at atapiscsi? + +# PCI network interfaces +#en* at pci? dev ? function ? # ENI/Adaptec ATM +#ep* at pci? dev ? function ? # 3C590 ethernet cards +fxp* at pci? dev ? function ? # Intel EtherExpress PRO 10+/100B +ne* at pci? dev ? function ? # NE2000 compat ethernet +#ntwoc* at pci? dev ? function ? # Riscom/N2 PCI Sync Serial +dc* at pci? dev ? function ? # DECchip 21x4x and clones +de* at pci? dev ? function ? # DECchip 21x4x and clones +vr* at pci? dev ? function ? # VIA Rhine Fast Ethernet +#lmc* at pci? dev ? function ? # Lan Media Corp SSI/HSSI/DS3 + +# MII/PHY support +exphy* at mii? phy ? # 3Com internal PHYs +#icsphy* at mii? phy ? # Integrated Circuit Systems ICS189x +inphy* at mii? phy ? # Intel 82555 PHYs +#iophy* at mii? phy ? # Intel 82553 PHYs +#lxtphy* at mii? phy ? # Level One LXT-970 PHYs +nsphy* at mii? phy ? # NS83840 PHYs +#nsphyter* at mii? phy ? # NS83843 PHYs +qsphy* at mii? phy ? # Quality Semiconductor QS6612 PHYs +#sqphy* at mii? phy ? # Seeq 80220/80221/80223 PHYs +#tlphy* at mii? phy ? # ThunderLAN PHYs +#tqphy* at mii? phy ? # TDK Semiconductor PHYs +ukphy* at mii? phy ? # generic unknown PHYs + +# USB Controller and Devices + +# PCI USB controllers +ohci* at pci? # Open Host Controller + +# USB bus support +usb* at ohci? + +# USB Hubs +uhub* at usb? +uhub* at uhub? port ? configuration ? interface ? + +# USB HID device +uhidev* at uhub? port ? configuration ? interface ? + +# USB Mice +ums* at uhidev? reportid ? +wsmouse* at ums? + +# USB Keyboards +ukbd* at uhidev? reportid ? +wskbd* at ukbd? console ? + +# USB Generic HID devices +uhid* at uhidev? reportid ? + +# USB Printer +ulpt* at uhub? port ? configuration ? interface ? + +# USB Modem +umodem* at uhub? port ? configuration ? +ucom* at umodem? + +# USB Mass Storage +umass* at uhub? port ? configuration ? interface ? +atapiscsi* at umass? +scsibus* at umass? + +# USB audio +uaudio* at uhub? port ? configuration ? +audio* at uaudio? + +# USB MIDI +umidi* at uhub? port ? configuration ? +midi* at umidi? + +# USB Ethernet adapters +aue* at uhub? port ? # ADMtek AN986 Pegasus based adapters +cue* at uhub? port ? # CATC USB-EL1201A based adapters +kue* at uhub? port ? # Kawasaki LSI KL5KUSB101B based adapters + +# Prolofic PL2301/PL2302 host-to-host adapter +upl* at uhub? port ? + +# Serial adapters +# FTDI FT8U100AX serial adapter +uftdi* at uhub? port ? +ucom* at uftdi? portno ? + +uplcom* at uhub? port ? # I/O DATA USB-RSAQ2 serial adapter +ucom* at uplcom? portno ? + +umct* at uhub? port ? # MCT USB-RS232 serial adapter +ucom* at umct? portno ? + +# Diamond Multimedia Rio 500 +urio* at uhub? port ? + +# USB Handspring Visor +uvisor* at uhub? port ? +ucom* at uvisor? + +# USB scanners +uscanner* at uhub? port ? + +# USB scanners that use SCSI emulation, e.g., HP5300 +usscanner* at uhub? port ? +scsibus* at usscanner? + +# Y@P firmware loader +uyap* at uhub? port ? + +# USB Generic driver +ugen* at uhub? port ? + +# Audio Devices + +# PCI audio devices +#eap* at pci? dev ? function ? # Ensoniq AudioPCI +#sv* at pci? dev ? function ? # S3 SonicVibes + +# Audio support +#audio* at eap? +#audio* at sv? + +vga* at pci? +wsdisplay* at vga? console ? + +# ISA bus bridging + +pcib* at pci? dev ? function ? # PCI-ISA bridge +isa* at pcib? # ISA bus + +# ISA Plug-and-Play bus support +#isapnp0 at isa? + +# wscons +pckbc0 at isa? # pc keyboard controller +pckbd* at pckbc? # PC keyboard +pms* at pckbc? # PS/2 mouse for wsmouse +wskbd* at pckbd? console ? +wsmouse* at pms? + +pcppi0 at isa? +sysbeep0 at pcppi? + +# ISA Plug-and-Play serial interfaces +#com* at isapnp? # Modems and serial boards + +# ISA Plug-and-Play network interfaces +#ep* at isapnp? # 3Com 3c509 Ethernet + +# ISA serial interfaces +com0 at isa? port 0x3f8 irq 4 # Standard PC serial ports +com1 at isa? port 0x2f8 irq 3 +#com2 at isa? port 0x3e8 irq 9 +#com3 at isa? port 0x2e8 irq 10 + +# ISA parallel printer interfaces +lpt0 at isa? port 0x378 irq 7 # standard PC parallel ports +lpt1 at isa? port 0x278 irq 5 +#lpt2 at isa? port 0x3bc + +# ISA floppy +#fdc0 at isa? port 0x3f0 irq 6 drq 2 # standard PC floppy controllers +#fdc1 at isa? port 0x370 irq ? drq ? +#fd* at fdc? drive ? # the drives themselves + +# ISA network interface +#ne0 at isa? port 0x280 irq 9 +#ne1 at isa? port 0x300 irq 10 +#ep* at isa? port ? irq ? + +# The spkr driver provides a simple tone interface to the built in speaker. +spkr0 at pcppi? # PC speaker + +ds1687rtc0 at isa? port 0x72 # Dallas RTC + +# ISA Plug-and-Play audio devices +#ess* at isapnp? # ESS Tech ES1887, ES1888, ES888 audio +#sb* at isapnp? # SoundBlaster-compatible audio +#wss* at isapnp? # Windows Sound System + +# MPU 401 UARTs +#mpu* at sb? + +# MIDI support +midi* at pcppi? # MIDI interface to the PC speaker +#midi* at mpu? # MPU 401 + +# Joysticks + +# ISA Plug-and-Play joysticks +#joy* at isapnp? # Game ports (usually on audio cards) + +# ISA joysticks. Probe is a little strange; add only if you have one. +#joy0 at isa? port 0x201 + +# Pseudo-Devices + +# mouse & keyboard multiplexor pseudo-devices +pseudo-device wsmux 2 +pseudo-device crypto 1 +pseudo-device loop 1 # network loopback +pseudo-device bpfilter 1 # packet filter +pseudo-device rd 1 # ram disk + + +option BOOT_CONFIG # boot-time kernel config + +# RAMDISK stuff +option MINIROOTSIZE=8192 +option RAMDISK_HOOKS + diff --git a/sys/arch/cats/conf/files.cats b/sys/arch/cats/conf/files.cats new file mode 100644 index 00000000000..a9019b29955 --- /dev/null +++ b/sys/arch/cats/conf/files.cats @@ -0,0 +1,108 @@ +# $OpenBSD: files.cats,v 1.1 2004/02/01 05:12:54 drahn Exp $ +# $NetBSD: files.cats,v 1.27 2003/10/21 08:15:40 skrll Exp $ +# +# CATS-specific configuration info +# + +maxpartitions 8 +maxusers 2 8 64 + +define todservice {} + +# +# ISA and mixed ISA+EISA or ISA+PCI drivers +# +include "dev/isa/files.isa" +include "dev/isa/files.isapnp" + +# Include arm32 footbridge +include "arch/arm/conf/files.footbridge" + +# +# Machine-independent ATA drivers +# +include "dev/ata/files.ata" +major {wd = 16} + +# +# time of day clock +# +device todclock +attach todclock at todservice +file arch/arm/footbridge/todclock.c todclock needs-count + +# ISA DMA glue +file arch/arm/footbridge/isa/isadma_machdep.c isadma + +# Game adapter (joystick) +file arch/arm/footbridge/isa/joy_timer.c joy + +major {rd = 18} + +# RAIDframe +major {raid = 71} + +# +# Machine-independent SCSI/ATAPI drivers +# + +include "../../../scsi/files.scsi" +include "../../../dev/atapiscsi/files.atapiscsi" +major {sd = 24} +major {cd = 26} + +file arch/arm/arm/conf.c + +# Generic MD files +file arch/cats/cats/autoconf.c +file arch/cats/cats/cats_machdep.c + +# library functions + +file arch/arm/arm/disksubr.c disk +#file arch/arm/arm/disksubr_acorn.c disk +file arch/arm/arm/disksubr_mbr.c disk + +# ISA Plug 'n Play autoconfiguration glue. +file arch/arm/footbridge/isa/isapnp_machdep.c isapnp + +# ISA support. +file arch/arm/footbridge/isa/isa_io.c isa +file arch/arm/footbridge/isa/isa_io_asm.S isa + +# CATS boards have an EBSA285 based core with an ISA bus +file arch/arm/footbridge/isa/isa_machdep.c isa + +device sysbeep +attach sysbeep at pcppi with sysbeep_isa +file arch/arm/footbridge/isa/sysbeep_isa.c sysbeep_isa + +device ds1687rtc: todservice +attach ds1687rtc at isa +file arch/arm/footbridge/isa/dsrtc.c ds1687rtc + +# Machine-independent I2O drivers. +include "dev/i2o/files.i2o" + +# PCI devices + +# +# Include PCI config +# +include "dev/mii/files.mii" +include "dev/pci/files.pci" + +device pcib: isabus +attach pcib at pci +file arch/cats/pci/pcib.c pcib + +file arch/cats/pci/pciide_machdep.c pciide + +# Include USB stuff +include "dev/usb/files.usb" + +# Include WSCONS stuff +include "dev/wscons/files.wscons" +include "dev/rasops/files.rasops" +include "dev/wsfont/files.wsfont" +include "dev/pckbc/files.pckbc" diff --git a/sys/arch/cats/conf/ldscript.elf b/sys/arch/cats/conf/ldscript.elf new file mode 100644 index 00000000000..26b2ab2dbaf --- /dev/null +++ b/sys/arch/cats/conf/ldscript.elf @@ -0,0 +1,76 @@ +/* $OpenBSD: ldscript.elf,v 1.1 2004/02/01 05:12:54 drahn Exp $ */ +/* $NetBSD: ldscript.evbarm,v 1.3 2003/05/23 00:57:27 ichiro Exp $ */ + +OUTPUT_ARCH(arm) +ENTRY(KERNEL_BASE_phys) +SECTIONS +{ + KERNEL_BASE_phys = 0xF0000000; + KERNEL_BASE_virt = 0xF0000000; + + /* Kernel start: */ + .start (KERNEL_BASE_phys) : + { + *(.start) + } =0 + + /* Read-only sections, merged into text segment: */ + .text (KERNEL_BASE_virt + SIZEOF(.start)) : + AT (LOADADDR(.start) + SIZEOF(.start)) + { + *(.text) + *(.text.*) + *(.stub) + *(.glue_7t) *(.glue_7) + *(.rodata) *(.rodata.*) + } =0 + PROVIDE (__etext = .); + PROVIDE (_etext = .); + PROVIDE (etext = .); + /* Adjust the address for the data segment to start on the next page + boundary. */ + . = ALIGN(0x8000); + .data : + AT (LOADADDR(.text) + (ADDR(.data) - ADDR(.text))) + { + __data_start = . ; + *(.data) + *(.data.*) + } + .sdata : + AT (LOADADDR(.data) + (ADDR(.sdata) - ADDR(.data))) + { + *(.sdata) + *(.sdata.*) + } + _edata = .; + PROVIDE (edata = .); + __bss_start = .; + __bss_start__ = .; + .sbss : + { + PROVIDE (__sbss_start = .); + PROVIDE (___sbss_start = .); + *(.dynsbss) + *(.sbss) + *(.sbss.*) + *(.scommon) + PROVIDE (__sbss_end = .); + PROVIDE (___sbss_end = .); + } + .bss : + { + *(.dynbss) + *(.bss) + *(.bss.*) + *(COMMON) + /* Align here to ensure that the .bss section occupies space up to + _end. Align after .bss to ensure correct alignment even if the + .bss section disappears because there are no input sections. */ + . = ALIGN(32 / 8); + } + . = ALIGN(32 / 8); + _end = .; + _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; + PROVIDE (end = .); +} -- cgit v1.2.3