From 492b11d1341c20e5c0b836f52d904efe3bed232d Mon Sep 17 00:00:00 2001 From: reinoud Date: Thu, 18 Oct 2001 00:05:00 +0000 Subject: [PATCH] Added the documentation section of arch/arm32 to not let it dissapear. Can't say for sure ig the interrupts/majors+minors files are still valid though. --- sys/arch/acorn32/doc/bootloader | 12 + sys/arch/acorn32/doc/bootoptions | 80 +++++ sys/arch/acorn32/doc/history | 463 +++++++++++++++++++++++++++++ sys/arch/acorn32/doc/interrupts | 81 +++++ sys/arch/acorn32/doc/majors+minors | 298 +++++++++++++++++++ 5 files changed, 934 insertions(+) create mode 100644 sys/arch/acorn32/doc/bootloader create mode 100644 sys/arch/acorn32/doc/bootoptions create mode 100644 sys/arch/acorn32/doc/history create mode 100644 sys/arch/acorn32/doc/interrupts create mode 100644 sys/arch/acorn32/doc/majors+minors diff --git a/sys/arch/acorn32/doc/bootloader b/sys/arch/acorn32/doc/bootloader new file mode 100644 index 000000000000..ecd63543f971 --- /dev/null +++ b/sys/arch/acorn32/doc/bootloader @@ -0,0 +1,12 @@ +# $NetBSD: bootloader,v 1.1 2001/10/18 00:05:00 reinoud Exp $ + + +The current bootloader (since 2001) is written in BASIC and is RISC OS +version independent; it even runs on NC's. + +In contrast to the old bootloader, the (new) bootloader is relocating the +kernel itself at 0xf0000000. This address is fixed to support OFW +machines which feature this start address. + +The development of a 2nd stage bootloader is a possible extension. + diff --git a/sys/arch/acorn32/doc/bootoptions b/sys/arch/acorn32/doc/bootoptions new file mode 100644 index 000000000000..e9a72f7ed584 --- /dev/null +++ b/sys/arch/acorn32/doc/bootoptions @@ -0,0 +1,80 @@ +/* $NetBSD: bootoptions,v 1.1 2001/10/18 00:05:01 reinoud Exp $ */ + +/* + * Copyright (c) 1996 Mark Brinicombe. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Mark Brinicombe. + * 4. The name of the company nor the name of the author may be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * RiscBSD kernel project + * + * bootoptions + * + * Description of all available boot options + * + * Created : 02/10/96 + * Updated : 20/02/01 + */ + +This file describes all the boot options available. + +RiscPC Boot options + + Options for all kernels + + nocache Disable all processor caches + nowritebuf Disable processor write buffer + fpaclk2 Clock FPA at half processor clock speed + single Single user mode + kdb KDB + maxproc= Specify the maximum in-core processes (L1 page tables) + ramdisc= Specify ramdisc size in KB + nbuf= Specify the number of buffers + nowdreset Skip the wd driver drive reset command + ascpoll Use polling mode rather than interrupt mode for the asc + driver + nbuf= Specify the number of buffers to use. + + Options for StrongARM kernels + + icache Enable instruction cache + dcache Enable data cache + + Special debugging options not for normal use + + pmapdebug= Specify pmap debug level + termdebug Enable console debugging + notermcls Console debugging option + +RC7500 Boot options + + -s Single user mode + -a Prompt for root device + -k KDB + -m video memory size + diff --git a/sys/arch/acorn32/doc/history b/sys/arch/acorn32/doc/history new file mode 100644 index 000000000000..3cab94969d40 --- /dev/null +++ b/sys/arch/acorn32/doc/history @@ -0,0 +1,463 @@ +# $NetBSD: history,v 1.1 2001/10/18 00:05:01 reinoud Exp $ +--------------------------------------------------------------------------- +This document is more included as a historical reference and nostalgia :) +rather than a still worked on list. +--------------------------------------------------------------------------- +(stuff before this time is aparently lost) + +3135 - fixed mode selection on boot + - page up/down, insert and delete now generate the correct codes in + the console + - the configured modesare now compiled in a separate file rather + than in vidcconsole.c + - The eb timeout reduced to 30 secs + + - clreos problems fixed + - / on the keypad generated the correct code + - the block cursor hove down 2 scan lines to align with characters + - extended irq renamed netslot + - extra double mapping of kstack removed + - kstack located at efbfe000 + - implementation of cpu_swapin() to remap the kstack + - patch to vm_glue to use kmem_alloc for the kstack + - extra pmap debugging code added with DEBUG669 + - the pventry tables can not be dumped from the kshell + or from a running system. + + - merged console code v133 into kernel + - the disklabel code no longer prints a warning if a HD is found + without a adfs partition + - the kbd driver now is capable of setting the keyboard leds. + - added ioctl to set the keyboard leds. + - added a routine to read the keyboard state. + - added a routine to set the keyboard state. + - added some prototypes to kbd.h + - implmented irq_setmasks() as an assembly function. + - added an extra disable irq mask + - the irq bits from IOMD reg A are cleared as soon as req A is read + - Debugged the plip driver. The ip packet is now word aligned when + passed to the upper network levels + +20/09/95 + - the cpu_switch routine checks the amount of stack space used when + swapping in a task and prints a warning when 6K has been used + - removed the remnants of the old kstack double mapping + - a separate message is printed for umounts during a halt. + - added extra validation in copyin() copyout() copyinstr() and + copyoutstr() + - podule irq handler no longer panics + - Lark A16 podule now recognised + - section permission faults now cause bus errors + - the syscall handler now correctly uses bcopy to copy the register + passed parameters + - the copyin() function now validates the uaddrs argumant + - the kstack is filled with a know pattern on a fork() + - the postmortem code will check the size of the kstack fill pattern + - the assembly bcopyinout() now returns EFAULT on error + - the copyin() copyout() copyinstr() copyoutstr() now return EFAULT + if the validation checks fail. +23/09/95 + - the fault handler will report faults from (fu/su)iwintr() + - added new pmap function to return the address of the next physical + page (pmap_next_phys_page). + - added code to machdep.c to compare the page number against + pmap_next_phys_page() to try and locate source to kernel size + limit + - added option to syscall_special (32) to return the address of the + next physical page. + - fixed the primary bootstrap to map more memory for the secondary + bootstrap to use. + - The 936K kernel size limit has been removed. + - Added support for KTRACE in syscall.c + - Seondary bootstrap now zeros down its memory + - cpu_switch now zeros curpcb while there is no valid process + - +1/10/95 + - cpuswitch now detects trahsed stacks. + - new compile option for generation of enhanced postmortem debugging + - merged console code 183b + - implemented a memcpy routine + - removed remnants of the kstackpte's + - cleaned old commented debugging code out of cpu_switch + - Added new comments in exception.S + - userret() check for a non-zero proc pointer + - extended postmortem debug for cpu_switch bug + - updated prototype declarations in machdep.c + - fixed passing of proc0 pointer into cpu_switch from switch_exit + - podulebus now recognised Lingenuity podules + - Lingenuity 16bit SCSI card recognised + +3/10/95 + - new compile option ROTTEN_INARDS to dump full debugging info on + postmortem + - Rewritten postmortem debug information printout + - Postmortem will now examine the IRQ stack for traceback info + - Fix cpu_exit() bug thus could result in the idle being entered at + splhigh() + - Added function prototypes for functions called in vm_machdep.c + - boot0() now makes sure IRQ's and FIQ's have been disabled + - The ARM700 FPA is now correctly turned off during boot + - A major has been allocated for the vidcaudio device (36) + - vidcaudio.c added to mainbus/ and associated support added in + conf/ and conf.c + - Patch to the console code to report the version number + - Latest version of dev/isa/com.c merged into mainbus/com.c + - Latest version of dev/isa/lpt.c merged into mainbus/lpt.c + - Latest version of dev/isa/wd.c merged into mainbus/wd.c + - new assembly version of copystr added + - buffer address for beep0 removed from attach message + - unrecognised undefined instructions are now logged as errors to + syslog + - fpe now attaches a coproc2 handler to stap coproc2 FP instructions + and report an error + - New compile option FPE_INLINE added to fpe.c to inline some of the + conversion functions + - Added new compile option FPE_PROF to fpe.c to compile in FP profiling + code + - + +14/10/95 + - added podule id for laser direct card + - added podule id for morley SCSI card + - added podule id for AXRE SCSI card + - added podule id for CC midi max card + - modified primary/secondary bootstraps to reserve special boot + - memory for hydra board + - added hydra device + - Added cpu identification for all hydra processors + - Private stacks are allocated to all slave processors + - All hydra processors are halted on reboot + - podule code checks for chunk directories but does not try to read + them yet. + - polling, immediate execution asc driver written for Acorn SCSI + card + - new special syscalls added to aid development of hydra software + +01/11/95 + - kernel built with new netbsd-current source tree + - arm32 source updated to conform to latest netbsd-current source + tree + +03/11/95 + - ALT-Cursor Left/Right now work the correct way round + - ALT-F6 now gernerates the correct code + - alpha version of the cumana SCSI II driver added + - alpha version of the ether1 driver added + - console code upgraded to V191 + - driver directory structure changed. + - ./src/patch directory updated + - alpha version of ATAPI CDROM driver added + - mainbus and podulebus directories split in to public and private + directories. + - warnings from validate_trapframe() are prefixed with "VTF" + - old rpc console stuff removed from files.arm32 and source moved to + arch/arm32/old/ + - the arch/arm32/pmap_stuff dir has been moved to arch/arm32/old/ + - the _mcount.S and belgium.S files have been moved to old and + removed from files.arm32 + - the device name to major code in autoconf.c now recognised /dev/cd + and /dev/wcd + - the mountroot code in stubs.c will call cd9660_mountroot() instead + of ffs_mountroot() is the root dev is a CDROM major. + - major 36 allocated to audio device + - major 37 allocated to vidcvideo device + - major 38 allocated to hydra device + + +07/11/95 + - cpu_fork() now maps in a page table for each process covering the + 0M-4M block of memory. + - VM_MIN_ADDRESS lowered to 0x1000 + - cpu_swapout() unmaps the system page at 0x00000000 from its page + table + - cpu_swapin() wires down the pagetable covering 0x00000000 and + maps in the system page at 0x00000000 + - cpu_swapin() and cpu_swapout() moved to vm_machdep.c + - pmap_enter_pv() no longer panics on duplicate mapping, it just + prints an warning. + - alpha version of the powertec SCSI driver + +15/11/95 + - switch_exit now unmaps the system page. + - added newline to printf in disksubr.c + - the console code has been moved to the dev directory + - cumana SCSI II driver upgraded to support interrupts + - powertec SCSI II driver upgraded to support interrupts + - the mount root code in stubs.c will attempt to mount + a hd partition as cd9660 if the ffs_mountroot() fails. + - added missing copyright notices + - updated some declarations in header files + - removed DEBUG669 code from pmap.c + - new syncing routine written for boot() + - syncing no longer requires kshell support + - Added extra comments to the boot() function + - Implemented cpu_sysctl() function (just returns not supported + error) + - The nosync kernel interrupt now correctly uses RB_NOSYNC + - + +20/11/95 + - restructure of directories contains device files + - fixed bug in pmap_pte() that could result in non-word + aligned pointers being returned in a off page boundry virtual + address was specified. + - + +24/11/95 + - merged in new netbsd-current source tree + - removed all the validate_trapframe() calls + - the ioctl CONSOLE_BLANKTIME now reloads the blank timer + - the ioctl CONSOLE_BLANKTIME uses the default blank time if a + negative time is specified. + - the machine id is now passed in the bootconfig structure + - the eb0 driver will set the MAC address from the machine id + if the address has not already been set. + +26/11/95 + - Fixed the definition of va_dcl in arm32/include/varargs.h + - + +02/12/95 + - Fixed the WriteShort() macro + - Removed some redundant code from machdep.c + - cpu_sysctl is now declared to return an int + - stubs.c now has prototypes for the floppy driver functions it + calls when loading the ramdisc. + - further debugging work on the ether3 driver + +10/12/95 + - Added uk device for unknown scsi devices to configuration files + and conf.c + - Alpha version of the ether3 ea device driver + +14/12/95 + - Merged in beta version of the ether1 (ie) device driver + - added ifdefs to stubs.c so the cd9660_mountroot() is only called + when the kernel is compiled with CD9660 + - created new text file to track all major and minor numbers + +16/12/95 + - define __FORK_BRAINDAMAGE for compilation with the latest NetBSD + sources + - boot() now calls doshutdownhooks() + - merged in frank's new debugger code (process_machdep.c, ptrace.h, + regs.h) + - patches stub.c to take account of frank's new code + - patch cpu.h to give more detail on the PSR bits + - fixed the setting of p->p_mdregs to point to the trapframe in + the kernel mapping of kstack rather than the current mapping. + - removed some redundant code from mem.c + - commented out all the trace_debug code + - cpu_coredump moved from stubs.c to vm_machdep.c + - implemented ptrace.S in libc + - boot() no longer sets the curproc to proc0 if it was zero. + - spl's added to the console locking code + - + +19/12/95 + - merged in new console code (V203) from Nut + - dosoftints() now calls pppintr() + +21/12/95 + - sys_sysarch() no longer panics but returns EINVAL instead. + - added 3 new debugging syscalls for tracing the vnode bug + - identified what goes wrong with vnodes resulting in a lockup + - fixed a number of source file headers + - Added new comments to a number of routines. + - readdisklabel() now sets the B_AGE flag on its buffer + - ether3 drive now reports the controller chip type + - removed all stand and glue code from kshell + - added a new debugging syscall to all wakeup() to be called + +24/12/95 + - removed redundant physconinit() call in initarm(). + - updated comments in machdep.c + - added support for mulitple swap devices to be specified at boot + time + - changed debugging output in userret() + - added extra debugging + - added new debugging syscalls for tracubg the vnode bug + - added new debugging commands to the kshell + - added a new insw16() function for faster block transfers + - created a patch to fix p_nice + - the wd driver now supports multisector transfers + - added a new outsw16() function for faster block transfers but is + currently untested + - the existing arm32/fpe directory has been renamed to + arm32/fpe-sp + - started work on integrating the ARM FPE + - a new fpe directory arm32/fpe-arm has been created for the new FPE + - file arm32/cpu.S renamed to arm32/cpuswitch.S + - created new mainbus device 'cpu' (mainbus/cpu.c) + - created new header file include/cpus.h to hold macros and + structure definitions for cpus. + - all identify functions for the processor and FPA have been moved + to mainbus/cpu.c + - FPE is now attached during the cpu attachment during + autoconfiguration + - Identification of CPU and FPU split into separate functions in + mainbus/cpu.c + - Added new function initialise_fpe() to fpe-sp/fpe.c This is the + new initialisation point for the FPE. All vector claiming is done + in this routine. Routine is also responsible for IDing the FPE. + - ramdisc memory allocation now only ever done in the ramdisc driver + - cpu_model now declared in mainbus/cpu.c + - rpc_configure() renamed to configure() + - added function need_proftick() to clock.c + - further development work ARM FPE driver + - glue code for ARM FPE written and tested. + - ARM FPE now gets first chance as being installed with + the existing FPE installed as a fallback if the ARM FPE + installation failed. + - Hooks for the ARM FPE added in cpu_fork() cpu_exit() and + cpu_switch() + - Recoding of ether3 driver started. + - More debugging code added to trace vnode bug + - macro added to syscall.c to handle exit from the syscall handler + for special development syscalls. + - Vnode bug idenitfied as a corruption of the first word (v_flag) + of certain vnodes. + - Ether3 driver rewritten and debugged. Now a beta stage driver + - Vnode corruption traced to console code. + - Ether3 drive now has interface buffer memory tests + - vnode corruption traced to do_scrolldown() routine in the + console driver. + - vnode corruption bug located and fixed. Incorrect loop start and + end points when scrolling the character map down (writing beyond + allocated memory). + - Started work on rewriting the etherB driver + - cleaned up various header files + - removed stub.c as it was no longer needed + - updated strstr.c + - hydra code hooks now only compiled in if hydra device is + configured + - EtherB driver rewritten to match recoding of ether3 driver + - EtherB driver now a beta stage driver + - Work started on generic driver code for SEEQ EDLC's + - vidcvideo device now supports multiple openings + - EtherB driver now puts the controller to sleep when not active + - strstr() replaced with version borrowed from libc/string/strstr.c + +05/01/96 + - Further development of ARM FPE + - generic fas216 code no longer experimental/NDA + - powertec scsi driver no longer experimental/NDA + - entry to undefined instruction handlers is now indirected in + exception.s + - entry to the undefined instruction handlers is made a trapframe + on the stack and r0-r12 preserved from exception. + - bounce code added so the existing undefined instuction handler + can be called with r0 pointing to the trapframe. + - new function arm_fpe_copycontext created + - fixed the use of FP instructions in sfas.c + - fixed errors in the softint code + - netns support can be be compiled in the kernel + - fixed warnings in fpe-sp/fpe.c and mainbus/cpu.c + +10/01/96 + - exception.S updated pending new undefined instruction handling + code + - merged in new wd driver from NetBSD-current + - merged in new com driver from NetBSD-current + - merged in new fd driver from NetBSD-current + - created new file sys_machdep.c for machine dependant syscall stuff + - moved sys_sysctl from machdep.c to sys_machdep.c + - fixed nested comments in iic.S + - removed old bug tracing code from cpuswitch.S + - debugged new fd driver + +13/01/96 + - undefined mode r13 added to the pcb structure + - new version of the ARM fpe built + - ARM FPE now has core deactivate routine accessible + - Call back from ARM FPE added on instruction completion + - cpu_switch() now switches UND32 mode r13 + - cpu_fork() now sets up UND32 mode r13 in pcb + - undefined vector now calls stub routine that indirects + via address held in data area. + - data abort handler address now held in data area rather + than text area. + - prefetch abort handler address now held in data area rather + than text area. + - disabled warnings about soft errors from the fd driver + +17/01/96 + - implemented pmap_resident_count() + - fixed the kernel avail_start and avail_end variable. This + fixes the divide by zero bug in /bin/ps + - ps now reports the correct resident size + +19/01/96 + - kernel now supports permission faults in UND32 mode. + - kernel shell now has kshell> prompt instead of # + - ramdisc loading code has been moved from stubs.c to fd.c + - ramdisc loading code now uses a rd_conf structure to + describe the ramdisc. + - rd_hooks.c file added to the arm32/dev directory in + order to support the generic ramdisk. + - patch to generic ramdisc driver to allow a device match hook + - mainbus/ramdisc.c removed. + - generic ramdisc has now replaces to mainbus/ramdisc. + - fault.c reformatted + - new compile symbols introduced to comile in debug code for + fault correction. + - all remnants of the trace_debug code removed. + - armfpe code moved from arm32/fpe-arm/arm32 to arm32/fpe-arm/ + - fu*() su*() functions moved from libkern into arm32/fusu.c + - added code to locore.S to traceback frames on the user process + stack + - added variable to enable / disable tracing back of user process + stacks + - added syscall to control user stack trackbacks. + - optimised ARM FPE exception delivery code + - implemented ARM FPE post processing callback glue + - ARM FPE post processor now calls user + - ARM FPE post processor optimised to recover some of the + performance lost by calling userret() + - integrated alpha version of the etherH driver + - updated ramdisc hooks to removed the need for a rd_match_hook() + function + - added Oak to the list of podule manufacturers + - kernel now reconised Oak SCSI I cards. + - Added generic NCR5380 SCSI driver code + - integrating in alpha version of the oak SCSI driver + +26/01/96 + - merged in latest updates from the NetBSD-current source tree + +29/01/96 + - code updated for merging into NetBSD source tree + +02/02/96 + - assembly symbol file now names assym.h instead of assym.s + - The symbol LOCORE has been replaced with _LOCORE + - ramdisc loading code in now compiled in conditionally on + RAMDISK_HOOKS + - Further development of hydrabus device. + - cpus can noe be attached to both the mainbus and the hydrabus + - hooks for hydrabus device updated in pmap.c syscall.c and + machdep.c + - Extra comments added in exception.S + - sizeof(struct trapframe) now defined in assym.h + - register fixup for data transfer instruction aborts now handles + LDC/STC instructions i.e. hardware executed LDF/STF + - configuration files updated for latest devices + - fixed use of mkdepend in makefile + - fixed the bug that caused panics when issuing the mode change + ioctl to the vidcvideo device + - console code version number updated + - Updated armfpe_post_proc() to take a trapframe pointer as the + second argument + - updated the armfpe_post_proc_glue() code to fake a trapframe + structure from the FPE frame before calling the post proc handler + so that sendsig has a valid trapframe in p->p_md.md_regs + - updated the armfpe_post_proc_glue() code to patch the FPE frame + with data from the trapframe on return from the post proc handler. + - signal delivery is now working during FP instructions. + - mondef code resurrected and renamed to setdisplay and moved to the + stand directory. + + +NetBSD/arm32 source code is now merged in to the NetBSD source tree. +All code changes are now logged via CVS and are available from the +NetBSD source-changes mailing list. diff --git a/sys/arch/acorn32/doc/interrupts b/sys/arch/acorn32/doc/interrupts new file mode 100644 index 000000000000..f3daf8e362cd --- /dev/null +++ b/sys/arch/acorn32/doc/interrupts @@ -0,0 +1,81 @@ +/* $NetBSD: interrupts,v 1.1 2001/10/18 00:05:01 reinoud Exp $ */ + +/* + * Copyright (c) 1996 Mark Brinicombe. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Mark Brinicombe. + * 4. The name of the company nor the name of the author may be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +Notes on interrupts. + +Ok since interrupts can be chained the return value from an interrupt +handler is important. + +The following return values are defined : + +-1 - interrupt may have been for us but not sure so pass it on +0 - interrupt no serviced (not ours) + interrupt serviced but pass on down the chain +1 - interrupt serviced do not pass on down the chain + +The important bit is whether the interrupt should be passed on down +the chain of attached interrupt handlers. + +For some interrupts and drivers where only a single device is +ever expected, the interrupt should be claimed if it has been serviced. +Passing it on down the chain may result in the stray interrupt handler +being called. +There are however some interrupt that should *always* be passed on down +the chain. These are interrupt which may commonly have multiple drivers +attached. + +The following interrupts should always be passed on (return value of 0) + +IRQ_TIMER0 +IRQ_TIMER1 +IRQ_VSYNC +IRQ_FLYBACK +IRQ_PODULE + +IRQ_CLOCK (RC7500) + +The following interrupts are recommended to be passed on + +IRQ_DMACH0 +IRQ_DMACH1 +IRQ_DMACH2 +IRQ_DMACH3 +IRQ_DMASCH0 +IRQ_DMASCH1 + +IRQ_SDMA (RC7500) + +All other interrupts are not expected to be shared and may be claimed +when serviced. Stray IRQ handlers may or may not be attached to the end +of these irq chains. diff --git a/sys/arch/acorn32/doc/majors+minors b/sys/arch/acorn32/doc/majors+minors new file mode 100644 index 000000000000..4b49bade955e --- /dev/null +++ b/sys/arch/acorn32/doc/majors+minors @@ -0,0 +1,298 @@ +/* $NetBSD: majors+minors,v 1.1 2001/10/18 00:05:01 reinoud Exp $ */ + +/* + * Copyright (c) 19941198 Mark Brinicombe. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Mark Brinicombe + * for the NetBSD Project. + * 4. The name of the company nor the name of the author may be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * list of all allocated major numbers + * + * Created : 17/09/94 + */ + +List of allocated and reserved major and minor numbers + +The block and character major numbers are ALWAYS allocated together to the +same device driver even if the driver does not require both. + + 0 B - reserved + 0 C - memory device + minor = 0 - /dev/mem + minor = 1 - /dev/kmem + minor = 2 - /dev/null + minor = 3 - /dev/zero + 1 B - swap device + 1 C - psuedo swap device + minor = 0 - /dev/drum + 2 B - reserved + 2 C - console device + minor = 0 - /dev/console + 3 B - reserved + 3 C - controlling terminal + minor = 0 - /dev/tty + 4 B - reserved + 4 C - virtual console + /dev/ttyv{unit} + unit = minor + 5 B - reserved + 5 C - kernel log device + minor = 0 - /dev/klog + 6 B - reserved + 6 C - psuedo tty master + /dev/pty{class}{unit} + unit = minor % 16 + minor / 16 = 0 - class = p + minor / 16 = 1 - class = q + minor / 16 = 2 - class = r + minor / 16 = 3 - class = s + minor / 16 = 4 - class = t + 7 B - reserved + 7 C - psuedo tty slave + /dev/tty{class}{unit} + unit = minor % 16 + minor / 16 = 0 - class = p + minor / 16 = 1 - class = q + minor / 16 = 2 - class = r + minor / 16 = 3 - class = s + minor / 16 = 4 - class = t + 8 B - reserved + 8 C - parallel printer + /dev/lp{class}{unit} + unit = minor & 0x1f + minor & 0x80 = 0x00 - class = t - interrupt driver + minor & 0x80 = 0x80 - class = a - polling driver + e.g. + 0 - /dev/lpt0 + 128 - /dev/lpa0 + 9 B - reserved + 9 C - quadrature mouse + minor = 0 - /dev/quadmouse +10 B - reserved +10 C - beep device + minor = 0 - /dev/beep +11 B - reserved +11 C - keyboard device + minor = 0 - /dev/kbd +12 B - reserved +12 C - serial port + /dev/tty0{unit} + unit = minor +13 B - reserver +13 C - reserved +14 B - reserved +14 C - reserved +15 B - reserved +15 C - reserved +16 B - ST506/ESDI/IDE disk + /dev/wd{unit}{partition} + partition = minor % 8 + unit = minor / 8 +16 C - ST506/ESDI/IDE disk + /dev/rwd{unit}{partition} + partition = minor % 8 + unit = minor / 8 +17 B - floppy disk + /dev/fd{unit}{partition} + partition = minor % 8 + unit = minor / 8 +17 C - floppy disk + /dev/rfd{unit}{partition} + partition = minor % 8 + unit = minor / 8 +18 B - ram disk + /dev/rd{unit}{partition} + partition = minor % 8 + unit = minor / 8 +18 C - ram disk + /dev/rrd{unit}{partition} + partition = minor % 8 + unit = minor / 8 +19 B - vnode disk driver + /dev/vnd{unit}{partition} + partition = minor % 8 + unit = minor / 8 +19 C - vnode disk driver + /dev/rvnd{unit}{partition} + partition = minor % 8 + unit = minor / 8 +20 B - reserved (ATAPI CDROM) + /dev/acd{unit}{partition} + partition = minor % 8 + unit = minor / 8 +20 C - reserved (ATAPI CDROM) + /dev/racd{unit}{partition} + partition = minor % 8 + unit = minor / 8 +21 B - concatenated disk driver + /dev/ccd{unit}{partition} + partition = minor % 8 + unit = minor / 8 +21 C - concatenated disk driver + /dev/rccd{unit}{partition} + partition = minor % 8 + unit = minor / 8 +22 B - reserved +22 C - reserved +23 B - reserved +23 C - reserved +24 B - SCSI disk + /dev/sd{unit}{partition} + partition = minor % 8 + unit = minor / 8 +24 C - SCSI disk + /dev/rsd{unit}{partition} + partition = minor % 8 + unit = minor / 8 +25 B - SCSI tape +25 C - SCSI tape +26 B - SCSI cdrom + /dev/cd{unit}{partition} + partition = minor % 8 + unit = minor / 8 +26 C - SCSI cdrom + /dev/rcd{unit}{partition} + partition = minor % 8 + unit = minor / 8 +27 B - reserved +27 C - SCSI autochanger + /dev/ch{unit} + unit = minor +28 B - reserved +28 C - SCSI unknown device + /dev/uk{unit} + unit = minor +29 B - reserved +29 C - SCSI scanner device + /dev/ss{unit} + unit = minor +30 B - reserved +30 C - reserved +31 B - reserved +31 C - reserved +32 B - reserved +32 C - Berkeley packet filter + /dev/bpf{unit} + unit = minor + minor = 0 - /dev/bpf0 + minor = 1 - /dev/bpf1 + minor = 2 - /dev/bpf2 + minor = 3 - /dev/bpf3 +33 B - reserved +33 C - network tunnel + /dev/tun{unit} + unit = minor + minor = 0 - /dev/tun0 + minor = 1 - /dev/tun1 + minor = 2 - /dev/tun2 +34 B - reserved +34 C - file descriptor pseudo-device + minor = 0 - /dev/stdin + minor = 1 - /dev/stdout + minor = 2 - /dev/stderr +35 B - reserved +35 C - loadable module driver + minor = 0 - /dev/lkm +36 B - reserved +36 C - generic audio device +37 B - reserved +37 C - vidcconsole device + minor = 0 - /dev/vidcconsole +38 B - reserved +38 C - cpu/hydra + minor = 0 - /dev/cpu0 +39 B - reserved +39 C - reserved +40 B - reserved +40 C - PS2 mouse + minor = 0 - /dev/pms +41 B - reserved +41 C - reserved +42 B - reserved +42 C - IIC device +43 B - reserved +43 C - RTC device +44 B - reserved +44 C - reserved (generic video) + (/dev/gfx{unit}) + (unit = minor) +45 B - reserved +45 C - reserved (virtual console) + (/dev/ttyg{unit}) + (unit = minor) +46 B - reserved +46 C - ip-filter +47 - reserved +48 B - reserved +48 C - S/PDIF +49 B - reserved +49 C - ofrom +50 B - reserved +50 C - smart card (/dev/scr) +51 B - reserved +51 C - reserved +52 B - reserved +52 C - random device +53 B - reserved +53 C - FIQ profiler +54 B - reserved +54 C - Footbridge diag serial + minor = 0 - /dev/fcom +55 B - reserved +55 C - reserved for bypass device +56 B - reserved +56 C - ISA jostick +57 B - reserved +57 C - MIDI I/O +58 B - reserved +58 C - Sequencer I/O +59 B - reserved +59 C - reserved for CODA +60 B - reserved +60 C - wsdisplay device +61 B - reserved +61 C - wskbd device +62 B - reserved +62 C - wsmouse device +63 B - reserved +63 C - reserved +64 B - reserved +64 C - USB controller +65 B - reserved +65 C - USB HID +66 B - reserved +66 C - USB printer +67 B - reserved +67 C - reserved +68 B - reserved +68 C - reserved +69 B - reserved +69 C - reserved + +70+ free for allocation