summaryrefslogtreecommitdiff
path: root/sys/arch/arm32/doc
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>1996-04-24 11:09:01 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>1996-04-24 11:09:01 +0000
commit6bbb90fd25d2dcd7a4acdc8969a442fd71b98a06 (patch)
treeda1eb150bc647bb89c88e694d8714e5193738055 /sys/arch/arm32/doc
parent00287be7e84692788588bfeb60508f1022602abb (diff)
Initial import of arm32 port
Diffstat (limited to 'sys/arch/arm32/doc')
-rw-r--r--sys/arch/arm32/doc/bootloader12
-rw-r--r--sys/arch/arm32/doc/history451
-rw-r--r--sys/arch/arm32/doc/majors+minors246
-rw-r--r--sys/arch/arm32/doc/note.users13
4 files changed, 722 insertions, 0 deletions
diff --git a/sys/arch/arm32/doc/bootloader b/sys/arch/arm32/doc/bootloader
new file mode 100644
index 00000000000..4bab605b630
--- /dev/null
+++ b/sys/arch/arm32/doc/bootloader
@@ -0,0 +1,12 @@
+Currently the bootloader can only be built under RiscOS as this
+is the platform which it runs on. A spark file version of the
+bootloader source code is also available
+
+[ From boot/README ]
+Ok, this is the bootloader source that can be used to boot NetBSD/arm32
+from RISCOS. This code was written for use with Norcroft C and
+objasm under RISCOS. It has been modified to compile under NetBSD/arm32
+but is as yet untested.
+
+It is provided here for the moment as example code for a boot loader
+and will be updated shortly to compile under NetBSD/arm32
diff --git a/sys/arch/arm32/doc/history b/sys/arch/arm32/doc/history
new file mode 100644
index 00000000000..5180a93e7b1
--- /dev/null
+++ b/sys/arch/arm32/doc/history
@@ -0,0 +1,451 @@
+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 responcible 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 accessable
+ - 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.
diff --git a/sys/arch/arm32/doc/majors+minors b/sys/arch/arm32/doc/majors+minors
new file mode 100644
index 00000000000..7d8bb241a42
--- /dev/null
+++ b/sys/arch/arm32/doc/majors+minors
@@ -0,0 +1,246 @@
+/* $NetBSD: majors+minors,v 1.3 1996/04/19 20:04:29 mark Exp $ */
+
+/*
+ * Copyright (c) 1994 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
+ *
+ * majors
+ *
+ * list of all allocated major numbers
+ *
+ * Created : 17/09/94
+ * Last updated : 30/12/95
+ *
+ * $Id: majors+minors,v 1.1 1996/04/24 11:08:39 deraadt Exp $
+ */
+
+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/wcd{unit}{partition}
+ partition = minor % 8
+ unit = minor / 8
+20 C - reserved (ATAPI CDROM)
+ /dev/rwcd{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 - vidcvideo device
+ minor = 0 - /dev/vidcvideo
+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
diff --git a/sys/arch/arm32/doc/note.users b/sys/arch/arm32/doc/note.users
new file mode 100644
index 00000000000..bfe56a9a2df
--- /dev/null
+++ b/sys/arch/arm32/doc/note.users
@@ -0,0 +1,13 @@
+Ok there are a number of things that need to be done that I do not
+have time to do and am unlikely to have time to do them in the near
+future.
+These are currently being left in the hope that users will do them
+instead.
+
+1. replace netinet/in_cksum.c with an assembly version
+2. replace netns/ns_chsum.c with an assembly version
+3. drivers for currently unsupported podules
+4. replacing the C string functions in libc with assembly ones (work
+ started but not finished)
+5. porting libpthread to arm32 architecture
+