Commit Graph

724 Commits

Author SHA1 Message Date
thorpej d502e68402 Fill in sc_link.max_target 1996-12-10 21:27:16 +00:00
cgd 96acdadef7 First step inn removing config_scan() and the hacks that gave devices
on indirect-config busses a (permanent) softc that they could share
between 'match' and 'attach' routines:

Define __BROKEN_INDIRECT_CONFIG so that old autoconfiguration
interfaces are used, until drivers are converted to use the new
interfaces (actually, converted back to use the _older_ interfaces)
which prohibit indirect configuration devices from receiving a softc
in their match routine that they can share with their attach routine.
1996-12-05 00:13:47 +00:00
jonathan 4c1d96de78 * Replace explicit -O2 in CFLAGS with COPTS macro. Default COPTS?= -O2.
Lets users over-ride with makeoptions COPTS="..." in kernel config files.

  Leave `mandatory' flags (like  -msoft-float which  on m68k enforces no
  FP in kernel) in CFLAGS.
1996-12-01 06:12:25 +00:00
jtc 9da5f60715 PROF -> GPROF 1996-11-30 02:48:57 +00:00
mark 1728fa466c Removed duplicate LKM option. 1996-11-23 21:15:46 +00:00
mark f4b69eb14d Removed a load of [cb]dev_decl() lines that are provided by sys/conf.h 1996-11-23 21:15:31 +00:00
mark e2b7ebae9d Now we have a fix for the StrongARM STM^ bug we can recache the SVC32 stack
pages.
Cleaned up several prototypes.
1996-11-23 04:09:01 +00:00
mark 9c855e4d1b Provide alternative trapframe push and pull macros from the StrongARM.
These alternative macros have a workaround for the STM^ bug in revision < 3
StrongARM CPU's that causes incorrect register saving if a cache line fill
is in progress during the STM.
1996-11-23 04:02:40 +00:00
mark 199fcfe651 Recognise the name Empty: as a possible valid partition in a RISCiX
partition table.
1996-11-23 03:56:44 +00:00
mark 12b8038548 Fixed the IPL level of the interrupt handler. 1996-11-23 03:56:02 +00:00
mark 4c515d528e Pass the device name to identify_master_cpu().
Identify StrongARM CPU's with bugged STM^ instructions.
1996-11-23 03:53:48 +00:00
mark 3c05da919c Use the IOMD_ID macro to check the IOMD ID number rather than direct reads
from the IOMD.
1996-11-23 03:45:52 +00:00
mark 2883a694fa Check the IOMD ID in the podulebus probe to make sure the IOMD supports
a podulebus.
Make sure the podulebus driver conforms to the Acorn expansion card
specification:
  - Probe the podule bus using sync access cycles rather than slow access
    cycles.
  - Read the podulebus header/ROM using sync access cycles rather than slow
    access cycles
1996-11-23 03:42:39 +00:00
mark 37f3875ce4 Use the IOMD_ID macro to check the IOMD ID number rather than direct reads
from the IOMD.
1996-11-23 03:37:35 +00:00
mark 374d51c858 Rebuild from latest podules list. 1996-11-23 03:27:15 +00:00
mark ecdf4c14bd Added a number of new manufacturer ID's and some new podule ID's. 1996-11-23 03:23:49 +00:00
mark 5debc61be1 Added IOMD_ID macro to return the 16bit IOMD ID code. 1996-11-23 03:21:43 +00:00
mark f74d5f023d Fixed typos. 1996-11-23 03:20:20 +00:00
mark f14bcbdac4 Added prototype for branch_taken(). 1996-11-23 03:20:18 +00:00
mark b38644ed8d Check for CPU_ARM8 when testing for comflicting CPU options. 1996-11-23 03:18:20 +00:00
mark 776f1e24d6 List the nbuf= bootloader option. 1996-11-23 03:16:51 +00:00
mark 3474eb69a0 Yet more items added to the list. 1996-11-23 03:13:19 +00:00
jtc 16b48272c4 Define _BSD_CLOCKID_T_ and _BSD_TIMER_T_ 1996-11-15 22:38:45 +00:00
thorpej 5bbb546d40 Add missing bitmask buffer declaration. (*sigh*) 1996-11-13 06:46:12 +00:00
thorpej f3d0bd2b74 Slight stylistic tweak, to match the same changes I made in the SPARC
version of the fd driver.
1996-11-13 06:41:21 +00:00
thorpej ae63cbffa1 Use bitmask_snprintf(). 1996-11-13 06:36:56 +00:00
cgd 8a3333b2a9 Fix an inconsistency that came in with Lite: setrq() was renamed to
setrunqueue(), but remrq() was never renamed.  Rename remrq() to
remrunqueue().
1996-11-06 20:19:19 +00:00
mark 092bb4bd47 Fixed type its NPPP not PPP. 1996-11-06 18:18:41 +00:00
mark de6db9f206 Added fix from Jasper Wallace th=at solves the bus hang ups caused when
DMA to the card going wrong.
1996-10-30 01:50:01 +00:00
mark 84d36b5c2f Brought right up to date and cleaned up. 1996-10-30 00:12:40 +00:00
mark 0bec347c79 Allocate a DMA channel number when setting up the podule descriptors.
The DMA channel is determined by the IOMD present in the machine and the
podule slot number.
1996-10-30 00:07:42 +00:00
mark c11a34daff Added a dma_channel field to the podulebus structure so that the
podulebus driver can allocate the DMA channels for the podules located.
1996-10-30 00:01:05 +00:00
mark 29465fe28a Updated the acknowledgement comments. 1996-10-29 23:52:59 +00:00
mark f5a1f76622 Remove the bufferable bit from the pte for the DMA buffer. 1996-10-29 23:37:39 +00:00
mark 68ecde0706 Added support for switch mouse reports between absolute and relative
positions.
1996-10-29 23:28:12 +00:00
mark 8666e8f843 Treat MOUSEMODE_REL as an absolute value rather than as a bit flag.
Use sc_mode rather than mode.
1996-10-29 23:25:29 +00:00
mark 8d9b74e953 Make sure that DMA channels 2 and 3 are setup as external for the podulebus
on RiscPC machines.
1996-10-29 23:22:57 +00:00
mark 7824cc4e83 Added definitions of the IOMD DMA registers. 1996-10-29 23:14:34 +00:00
mark 9785e7cd61 Added support for all variations of the msr instruction.
Added support the new instructions defined in the ARM V4 Architecture
Reference manual (long multiplies, half word load and stores,
half word/byte signed loads).
Added support for the ARM810 IMB architecture defined SWIs.
Fixed bug in calculating some immediate constants.
Added support for the wfs, rfs, wfc, rfc instructions
Added support for the floating point compare instructions
Added ldf, stf, ldc and stc instructions.
Fixed mis-disassembly of some msr/mrs instructions.
The ldm and stm instructions will modify the direction identifier to
use the stack variations if the base register is r13.
1996-10-29 23:12:26 +00:00
mark 1f388af5cf Fixed 4 compiler warnings about casts on insw() and outsw() calls. 1996-10-18 00:48:29 +00:00
mark ac0fd0fce1 Added a few more patches for SA100 support. This is just several
extra cache clean operations during pte manipulation.
1996-10-17 02:55:29 +00:00
mark 6b1666ce52 Don't generate an error if FFS is not compiled in. 1996-10-17 02:52:26 +00:00
mark c252b86536 Couple of fixes for SA100 support.
Added comments to match up #ifdef / #endif pairs.
1996-10-17 02:50:14 +00:00
mark 1dd91a8515 Updated vmemcachectl() to allow control of write buffer and cache enable
bits on the video memory ptes.
1996-10-17 02:48:39 +00:00
mark f5c1850ab4 Tweaked several db_printf() calls. 1996-10-17 02:46:49 +00:00
mark 65b01531b9 Reality check. 1996-10-17 02:44:17 +00:00
mark 36cd31048b Removed references to the debug function checkinodes(). 1996-10-17 02:43:38 +00:00
mark abb703fc1b Add files for cosc SCSI driver
Add file for RC7500 prom code.
1996-10-17 02:41:26 +00:00
mark 6ed8e72d96 Fix the pcb_fpstate field. 1996-10-17 02:37:48 +00:00
ws 31bdb14ed5 Rename recently checked in KGDB to IPKDB to resolve conflicts with older KGDB 1996-10-16 19:32:08 +00:00
mark fdf25ce9ce Added generic ARM7500 support. This mainly effects the kernel bootstrapping
code as video memory must be reserved from main memory for the display.
In addition this adds generic support for using DRAM for video memory
on all machines. All video memory accessing should use the video_memory_t
structure.
Added support for the RC7500 motherboard. The RC7500 support includes a
replacement init_arm() function. This also supports the RC7500 prom debug
monitor for debugging the kernel boot.
dumps now work so call dumpsys() following a panic.
Added support for the SA110. This mainly consists of making sure the data
cache is cleaned when appropriate and that the instruction cache is
kept in sync during the bootstrap and when signal handlers are built on
the stack.
Use a larger UND32 mode stack if we are configured for KGDB.
Remove KERNEL_PT_KSTACK references as these should have died with the
removal of double mapped kstacks eons ago.
Make sure we call doshutdownhooks() if boot is called while we are still
cold.
Cleaned up prototypes declarations.
Sorted out comment indentation.
1996-10-16 00:35:45 +00:00
mark 1beb8a9aad Added support for the SA110. This primarily consists of extra cache
clean and tlb flush code along with write buffer drains that are
dependant on the definition of  CPU_SA110.
The memory reserved for the L1 pagetables is now wired into the memory map
during the pmap_init rather than at L1 pagetable allocation time.
The L1 pages tables are zeroed during initialisation and when they are
released rather than when they are allocated.
When searching for a free L1 page table start search at the page table
after the last one allocated rather than always starting from the first one.
Added some extra DIAGNOSTIC checks for invalidate page index numbers.
Removed some old debugging code that escaped the last clean up.
Idented comments in line with code.
1996-10-15 23:52:52 +00:00
mark daec9c54ff Use atomic_{set,clear}_bit() for manipulating the soft interrupt mask.
splsoftclock() is now a macro so the function is dead.
Cleaned up and debugged dumpsys(), kernel core dumps now work.
1996-10-15 23:39:30 +00:00
mark 81f6df323e *Major* rewrite, long overdue.
The irq delivery code has been rewritten. On entry to the irq vector the
processor is switched to SVC32 mode so all interrupt routines now run
in SVC32 mode rather than IRQ32 mode. This fixes lots of irq re-enabling
problems.
Interrupt latency times are now vastly improved for high priority interrupts.
Cleaned up calling ast() before returning to USR32 mode (don't need to
mess about with trapframe copying.
Cleaned up all the comments and sorted out their indentation.
Rewritten the soft interrupt delivery code.
Added generic ARM7500 support rather than just RC7500 support.
1996-10-15 23:20:40 +00:00
mark b37e8debe6 Added a generic exit routine. This loops round calling ast() if the
astpending flag is set until it is clear at which point to exits to
user land.
Merged in latest kgdb support from Wolfgang.
1996-10-15 22:56:27 +00:00
mark 32549532dc Major comment and code clean up to suit KNF.
Added support for the SA110. This cpu does not need any register fix-ups
following a data abort.
Return valid signal code values on SEGV's. See machine/signal.h for
decoding SEGV signal codes.
1996-10-15 22:22:22 +00:00
mark f015b1bac6 Added support for the SA110. Additional cache clean operations are
required during pagemove() and vmapbuf() and vunmapbuf().
The kernel and undefined mode stack checks are now guarded with
#ifdef STACKCHECKS.
Tidied up comments.
1996-10-15 22:07:41 +00:00
mark af9c048e19 Added support for the SA110. If CPU_SA110 is defined then the data
cache needs to be cleans and the instruction and data caches need to
be invalidate along with the instruction and data tlbs when
the TTB is reloaded during a context switch.
1996-10-15 22:04:19 +00:00
mark 5a79d9e2a1 Add the lmcaudio device and files. 1996-10-15 21:53:21 +00:00
mark e41dd7d935 Provide a completely new set of cache clean and tlb flush functions
if CPU_SA110 is defined. Cache cleaning is different on the SA110 as
the cache is a write back virtual cache and is split for data and instruction.
Also the cache and tlb control instructions use different coprocessor #15
registers.
1996-10-15 21:47:51 +00:00
mark c77f36a38a Idented comments correctly.
Fixed bug in microtime() that could result in incorrect microsecond
adjustments.
1996-10-15 21:35:23 +00:00
mark 535518ceed Added support for the A7000 and more generally for ARM7500 based machines
that are not RC7500 boards.
Fixed vidcaudio_sw_encode() and vidcaudio_sw_decode() functions.
1996-10-15 21:33:51 +00:00
mark 0d4a130939 Added support for NFS root and swap.
Added comments to #ifdef / #endif pairs
Tidied up comments.
1996-10-15 21:32:10 +00:00
mark c2a3d7ad3c Cleaned up comments.
Removed suspect FPA probing code, instead use the ARM FPE to probe the FPA.
Neatened up the FPE attachment code.
Recognise StrongARM class of cpu.
Updated the fpa instruction bounce handler to expect a 4th argument
when called on an undefined trap to match recent changes made to
undefined handlers.
1996-10-15 21:26:25 +00:00
mark 46ee6bf856 Added support for the RC7500 and the lmc1982.
Added support for the A7000.
1996-10-15 21:20:15 +00:00
mark c69e8d2559 Initial commit of the lmc audio driver for the lmc1982 found on RC7500
motherboards.
1996-10-15 21:10:24 +00:00
mark c107a98f8b Tidied up the comments.
Removed the debugging code for vnode hangs now that this has been fixed
in the mi code.
1996-10-15 21:08:37 +00:00
mark e7e591d3b5 Separated out the function to place records in the mouse buffer.
Add acknowledgement records to the buffer following origin or bounding
box changes.
Removed prototype for strncmp().
Added support for switch mouse reports between absolute and relative
positions.
1996-10-15 21:06:51 +00:00
mark 65b094f18f Pull in all the recent changes made the dev/isa/com.c driver.
These are all the changes made between 1.81 and 1.88.
1996-10-15 21:00:55 +00:00
mark 8f75693ba4 Get the IIC clock and data bit masks correct on RC7500 boards. 1996-10-15 20:40:31 +00:00
mark 538cb0ef13 Recognise all ARM7500 systesm rather than just RC7500 during probing.
Fixed kbdpoll().
1996-10-15 19:47:04 +00:00
mark 4b50267049 Make the device probe generic to all ARM7500 systems rather than
just RC7500 systems.
1996-10-15 19:37:06 +00:00
mark 3f201e3de4 For RC7500 kernels treat drive type 0x00 the same as drive type 0x10. 1996-10-15 19:31:35 +00:00
mark 63b78f14d6 Cleaned up rtcread().
Implemented rtcwrite() so that the RTC can be set via /dev/rtc?
1996-10-15 19:28:01 +00:00
mark 583b16b82a Added comments to interrupt return points. 1996-10-15 15:51:56 +00:00
mark a6ee3b3fa9 Not needed as this config is practically identical to PHARM. 1996-10-15 15:43:28 +00:00
mark 0ecc08d0df Removed loads of old debugging code and special swi codes used during
earlier stages of the NetBSD/arm32 development.
Added support for the architecture defined SWI's. Currently
The IMB and IMB-range architecture defined SWI's for the ARM810 are
currently recognised.
Various comments cleaned up.
1996-10-15 03:08:45 +00:00
mark cbf4892982 Find the mode with the closest frame rate to the one requested if an
exact match cannot be found rather than picking the lowest frame rate.
1996-10-15 02:33:28 +00:00
mark a3f71d635a Use arm_fpe_getcontext() and arm_fpe_setcontext() to retrieve the
FP state for process_read_fpregs() and process_write_fpregs().
1996-10-15 02:26:11 +00:00
mark 760efeadb3 The undefined handlers now have a fourth argument which is a fault code.
Catch the user breakpoint instruction and generate a SIGTRAP.
1996-10-15 02:14:21 +00:00
mark 59ffb0612b Merged in latest KGDB changes from Wolfgang Solfrank. 1996-10-15 02:11:31 +00:00
mark 4b88966792 Merged in the KGDB changes to locore.S from Wolfgang.
Added the functions atmoic_set_bit() and atomic_clear_bit() that
can be used for setting and clearings bits atomically (need interrupts
to be turned off).
1996-10-15 02:10:17 +00:00
mark b24dfb3713 Removed dead kernel stack debugging code from the days when we had
a double mapped stack.
Guard the SVC32 and UND32 mode stack check code with #ifdef
STACKCHECKS.
1996-10-15 02:07:08 +00:00
mark febe210c2f Call mcount() from bcopy() and memcpy() is GPROF and PROFILE_ASM are
defined.
Replaced references to r14 with lr.
1996-10-15 02:04:40 +00:00
mark dab3173f56 Not needed as the assembly stub for mcount() is defined in
machine/profile.h
1996-10-15 02:00:47 +00:00
mark ec238c0c33 The bcopy_page() and bzero_page() functions now call mcount() if
GPROF and PROFILE_ASM are defined.
Register usage has been changed to avoid using r11. This means we have
one less register to save during this function.
1996-10-15 01:52:01 +00:00
mark 8850151b06 Removed file arch/arm32/arm32/scratch.S 1996-10-15 01:45:17 +00:00
mark 083ff3dd3d Dead at last.
The functions in this file are either dead, have been rewritten or have
found proper homes (like fusu.S).
1996-10-15 01:45:04 +00:00
mark 55db7609fb Remove the definition of cdev_uk_init() as this is done in <sys/conf.h> 1996-10-15 01:42:18 +00:00
mark 58e481e13b Call mcount() for all fpe core entry points if GPROF and PROFILE_ASM
are defined.
Switch to SVC32 mode before delivering FP exceptions and switch back
to UND32 mode afterwards before exiting.
1996-10-15 01:37:50 +00:00
mark ad466c40e1 If CPU_SA110 is define adjust the traceback PC values by 4 as the
StrongARM stores PC+8 on STR and STM instructions rather than PC+12.
1996-10-15 01:33:50 +00:00
mark 24e50982df Report the core identity string now available from the core header when
booting.
After assembling the post FP processing callback branch call
sync_icache() if CPU_SA110 is defined.
Return a valid signal code when raising a SIGFPE exception so
the cause of the SIGFPE can be determined.
Added the functions arm_fpe_getcontext() and arm_fpe_setcontext()
to obtain the FP context in a FPE independant form for the ptrace()
syscall.
1996-10-15 01:31:28 +00:00
mark 407ce69224 Use tlb_flush() rather than tlbflush().
In db_write_text() call sync_caches() after modifing the text area
if CPU_SA110 is defined.
Added a new machine command "frame" to print out a trapframe.
Trap the kernel break point instruction specifically and panic on
any other undefined instruction being executed in SVC mode.
1996-10-15 01:24:48 +00:00
mark e3c0a41e67 Added machine command to print a trapframe. 1996-10-15 01:23:36 +00:00
mark 804b62c479 Major code clean up.
Removed a load of old debugging code that has served it purpose.
1996-10-15 01:20:48 +00:00
mark 578797208e In the function fetchuserword() call mcount() on function entry if
GPROF and PROFILE_ASM are both defined.
Fixed a bug in suswintr() and susword() that caused the value written
to be trashed.
1996-10-15 01:17:59 +00:00
mark 695e09b29a Added generic support for the ARM7500 cpu rather than just the RC7500
motherboard.
Cleaned up a lot of code to match KNF.
When the device is attach the vidc refclk frequency is reported along
with the amount of video memory and the type.
1996-10-15 01:15:24 +00:00
mark 7d0bc8682c Recognise the ARM32_SYNC_ICACHE option to sysarch() syscall and call
sync_icache() to garentee any instruction cache the CPU may have is
in sync with the data cache and main memory.
1996-10-15 01:12:02 +00:00
mark 7cfe42e258 Overhauled and fixed teh console blanking code. Things no longer
go wrong when console blanking occurs while X is running.
The blanktime ioctl now allows blanking times to be set, force
immediate blanking or diable blanking on a per virtual console basis.
Updated the console version number to revision D.
1996-10-15 01:10:06 +00:00
mark be9a8e231a Removed the function vidc_col() as this has been guarded with #if 0
for a long time now as the function was replaced with a macro.
1996-10-15 01:05:04 +00:00
mark ea88364d7f Tidied up the comments.
Call the Debugger from the diagnostic code if userret() finds itself
at an spl level other than SPL_0.
1996-10-15 01:04:27 +00:00
mark 04c5783fb7 Call mcount() on function entry if GPROF and PROFILE_ASM are both defined. 1996-10-15 01:00:29 +00:00
mark a2a2b693c8 Removed a load on unused code that has been hiding here.
The functions vidcconsolemc_render() and vidcconsolemc_cls()
will call mcount if GPROF and PROFILE_ASM are both defined.
1996-10-15 00:55:26 +00:00
mark c90d8612e7 General code cnd formatting clean up. 1996-10-15 00:52:21 +00:00
mark 0d48d902ea New build of the ARM FPE core. The core header now has a version
number field and an core identity string pointer.
Labels are now defined for all the entry points in the core header
structure so that the linker can relocate the branches to the core.
The core entry points are now branch instructions relative to the
start of the core so the address of the core function does not have to
be calcuated are call time.
1996-10-15 00:49:10 +00:00
mark ed4a15bc3d Added prototypes for tlb_flush(), cache_clean(), sync_caches() and
sync_icache().
Removed prototype for memset().
Added prototypes for atomic_set_bit() and atomic_clear_bit().
1996-10-15 00:44:58 +00:00
mark a6bf04810f Include <machine/fp.h> and <machine/reg.h>
Define the two new fields added to the FPE core header in
the arm_fpe_mod_hdr_t structure.
Added prototypes for arm_fpe_getcontext() and arm_fpe_setcontext().
Updated the prototypes for arm_fpe_core_loadcontext() and
arm_fpe_core_savecontext() to pass a fp_context_frame pointer.
1996-10-15 00:42:46 +00:00
mark fcc485e573 Define a separate set of irq numbers for ARM7500 machines if RC7500 is
not defined as the ARM7500 in A7000 machines has different interrupt
numbers than the ARM7500 in RC7500 machines.
1996-10-15 00:39:23 +00:00
mark 796814b9e9 Added -Wcomment to the CPPFLAGS.
Added -Wreturn-type to the CWARNFLAGS.
Make dependancies for makemodes.
1996-10-15 00:35:48 +00:00
mark 4d21960d40 Added checks for illegal combinations of CPU_ARM6, CPU_ARM7, CPU_ARM7500,
CPU_SA110 and CPU_LATE_ABORT.
Updated the CLKF_INTR() macro for changes made to the interrupt system.
Updated some of the CPU ID codes.
Added the CPU ID for the ARM8.
1996-10-15 00:33:03 +00:00
mark 7e836e3676 splsoftclock() is now a macro rather than a function. 1996-10-15 00:26:46 +00:00
mark 3f12639e0e Added options EXEC_AOUT and EXEC_SCRIPT. 1996-10-15 00:25:45 +00:00
mark 25d5efdd4f Updated to match reality. 1996-10-15 00:23:51 +00:00
mark 478a722a54 New configuration file for RiscPC's with StrongARM CPUs (SA-110) rather
than an ARM6 or ARM7.
1996-10-15 00:22:58 +00:00
mark b352e3549b Updated fpreg_t to match changes made to fp.h 1996-10-15 00:21:36 +00:00
mark f930769a2b New configuration file.
This is for an Acorn A7000 machine with an ARM7500 CPU and no VRAM.
This config should also work for other ARM7500 machines with an
architecture that matches Acorns.
1996-10-15 00:21:06 +00:00
mark 7e6df6c20e Added a typedef for fp_extended_precision_t.
Make fp_reg_t a typedef of fp_extended_precision_t.
Rename the fp_state structure to fpe_sp_state as it describes
the single precision FPE state held in the pcb and is internal to the
kernel.
Define a new fp_state structure that is for user access to the fp
state (e.g. via ptrace()).
1996-10-15 00:15:37 +00:00
mark a7c2e7f767 Use tlb_flush() rather than tlbflush() in the pmap_update() macro. 1996-10-15 00:09:09 +00:00
mark c544086b51 Initial commit of the Connect32 SCSI driver. This driver uses the esc
generic driver.
Currently this is only a polling driver.
1996-10-15 00:08:43 +00:00
mark b4c38ce254 Define the FP exeception types.
Use these types to create the bit values used for fp_except values.
1996-10-15 00:06:47 +00:00
mark 43fce8325b Initial commit of the esc generic SCSI driver code. This is a driver for
the AMD AM53CF94 Enhanced SCSI Controller. The code is based on the
SFAS216 driver as these chips are very similar. There are several
differences but more will follow.
1996-10-15 00:05:04 +00:00
mark c5246aee6a Updated the typedef for undef_handler_t to have a 4th argument. This
argument is a fault code integer.
1996-10-15 00:00:44 +00:00
mark bc6649505b Add definition of configuration register B. 1996-10-14 23:57:11 +00:00
mark 8b97be16ab Include podules.h for definitions of manufacturer and podule ids.
Use definitions from this file for match_podule() rather than hardcoded
values.
Added packet filter support.
1996-10-14 23:55:01 +00:00
mark 91de56b1b6 Include podules.h for definitions of manufacturer and podule ids.
Use definitions from this file for match_podule() rather than hardcoded
values.
Added a routine asc_minphys() in preparation for driver changes when on
card DMA support is added.
1996-10-14 23:53:58 +00:00
mark 56250a75b0 Include podules.h for definitions of manufacturer and podule ids.
Use definitions from this file for match_podule() rather than hardcoded
values.
Reset the interface following a bad packet. This fixes some jams when
the driver failed to recover properly after a bad packet.
1996-10-14 23:50:20 +00:00
mark ce36c22380 Include podules.h and use the manufacturer and identities defined there
for calling match_podule() rather than using hardcoded values.
1996-10-14 23:42:17 +00:00
mark a7c4273ef8 Fix comments. 1996-10-14 23:35:41 +00:00
mark b7b4a80fa1 Remove old-style disk instrumentation. 1996-10-14 23:31:29 +00:00
mark cb1d61078c Use tlb_flush() rather than tlbflush(). 1996-10-14 23:29:47 +00:00
mark 9d8ffb415e Removed all the podule manufacturer and id structures and included
podule_data.h instead.
Removed the dead function find_podule().
The 0xf5 entry in the podules chunck directory is now searched for and
the podule description associated with this entry is placed in the
description field of the podule structure.
Generally tidied up all the comments.
1996-10-14 23:26:48 +00:00
mark ccdc440eac Added a description field to the podule structure. This is filled in
at config time with the podule description (if any) that is extracted
from the podule ROM.
1996-10-14 23:21:22 +00:00
mark 7e9e37b0bf Sync with master podule list. 1996-10-14 23:17:09 +00:00
mark 1698c1854e Initial commit of master list of podule manufacturers and ids along
with tools for building podules.h and podule_data.h from this file.
1996-10-14 23:16:07 +00:00
mark 159f169ad4 Added support for the ARM7500.
Added comments to relate #ifdef and #endif
1996-10-14 23:05:34 +00:00
mark 9ddac81db7 Added definitions for evaluating the signal code argument.
Currently the code field is only valid for SIGFPE, SIGBUS and SIGSEGV.
1996-10-14 23:02:53 +00:00
mark 06083cc7b9 Updated #ifdef to reflect filename change. 1996-10-14 22:57:37 +00:00
mark f0137e2cc0 At last, a version of profile.h that works properly and allows kernel
profiling.
Define an all assembly mcount stub routine and make sure r0-r3 and lr
are preserved.
1996-10-14 22:52:49 +00:00
mark cae31931a9 Initial commit of header file defining various traps.
Define a user breakpoint trap.
1996-10-14 22:49:23 +00:00
mark f24b0a3f91 Initial commit of the header file defining the architecture specific
syscalls.
Declare ARM32_SYNC_ICACHE call that ensures that main memory and any
instruction cache are in sync.
1996-10-14 22:47:31 +00:00
mark 135f110149 Added an ioctl acknowledgement bit to the buffer record flags field.
Added a new ioctl to select either relative or absolution mouse position
reports.
1996-10-14 22:41:59 +00:00
mark 44faa9154f Added a blanktime field to the vconsole structure so the blanktime time
is managed per virtual console rather than globally.
1996-10-14 22:35:03 +00:00
mark c4d76a3f02 Added a field for cpu specific data in the cpu_t structure. 1996-10-14 22:32:45 +00:00
mark 60c2014d86 Added magic number of bootconfig structure passed from the bootloader.
Added a field for the physical address of the display memory used
by the bootloader if VRAM is not fitted.
Declare the boot_args variable extern here.
1996-10-14 22:30:19 +00:00
mark d7004d5a55 Commit of notes on interrupts and their usage. 1996-10-14 22:27:03 +00:00
mark 114e806627 Added note that the current development history can be found
on source-changes.
1996-10-14 22:23:50 +00:00
mark 2c6e3deb80 Not needed as this file has been merged into the main TODO list. 1996-10-14 22:22:12 +00:00
mark 77cd383ae6 Updated. Now includes things that I hope users will work on as well. 1996-10-14 22:21:15 +00:00
christos ad67e04154 backout previous kprintf change 1996-10-13 16:50:51 +00:00
christos ca36ac9ef4 backout previous kprintf change 1996-10-13 03:05:43 +00:00
christos e43661dda6 use in_addr_t and in_port_t 1996-10-13 02:57:47 +00:00
mark 5b9a5a91b2 Added a macro for un-cacheable un-bufferable ptes. 1996-10-12 18:31:10 +00:00
mark 8759f643d5 Don't need to include machine/reg.h here. 1996-10-12 18:29:32 +00:00
mark 9e61254436 Fixed typo. 1996-10-12 18:25:59 +00:00
mark 61d95c8ea3 Initial commit of doc describing boot options and parameters recognised
by the kernel.
1996-10-12 18:24:43 +00:00
christos 60dd5ceebe printf -> kprintf, sprintf -> ksprintf 1996-10-11 00:06:28 +00:00
cgd 472889f8e4 moved to aout_machdep.h (via repository copy) 1996-10-08 12:57:37 +00:00
mycroft b3ffba62a6 Move strip(1) flags into a separate variable, so that $STRIP can
be passed to subordinate make(1)s.  Remove $TOUCH.  Add HOSTED_CC,
HOSTED_CPPFLAGS, and HOSTED_CFLAGS, and use them when depending genassym.
1996-09-09 21:06:55 +00:00
mycroft 9db220fa82 Use cdev_uk_init(). 1996-09-08 00:40:08 +00:00
mycroft 9e7223f23d Use cdev_scanner_init() rather than local cdev_ss_init(). 1996-09-08 00:11:51 +00:00
mycroft e6dd44f034 Use SIGBUS iff we get a legitimate bus fault. Use SIGSEGV for page protection
violations (per Solaris, SVR4, AIX, Linux, Irix, and SunOS).
1996-09-07 22:26:41 +00:00
mycroft 2bc736661a Implement poll(2). 1996-09-07 12:40:22 +00:00
mycroft fc3def4096 Remove duplicate declarations of LKM functions and macros. 1996-09-05 15:46:22 +00:00
mycroft b3eac79b64 tty stop functions really should return void, not int, and certainly not both. 1996-09-02 06:43:16 +00:00
mycroft 30a617c634 Wrap the default definition of `S' in `.ifndef'. 1996-08-31 21:40:47 +00:00
mark 97c857ef9c Initial commit of the prom interface code for VLSI RC7500 motherboards. 1996-08-29 22:35:41 +00:00
mark bda575c253 Removed stub code for copystr(), copyinstr() and copyout() now that
optimised assembly versions are in place.
Added support for mounting an NFS filesystem as the root filesystem even
for generic configs.
Don't hardcode the number of spl levels use the define in psl.h
1996-08-29 22:33:24 +00:00
mark 64860a1d74 Print the instruction word for undefined instructions. 1996-08-29 22:25:26 +00:00
mark 7568e05e32 Added machine command for reporting panic related information.
Trap undefined instructions that are used for breakpoints for all
processors modes. If the mode was USR32 then post a SIGTRAP signal.
1996-08-29 22:23:45 +00:00
mark 2fb1f405f7 Added a new machine function to report information following a panic
e.g. panic string, message buffer etc. This is to aid debugging panics
following a panic while X was running as X will swallow all the panic
text.
1996-08-29 22:21:06 +00:00
mark 75a39e190b Replaced the generic copystr() and copystrinout() functions with
optimised copystr(), copyinstr() and copyout() functions.
This removes the need for the copy{in,out}() stub code in stub.c
1996-08-29 22:18:09 +00:00
mark 8b3ff9c94f Added support for NFS root and swap.
Define argdev here.
Fixed the interpreting of the root and swap devices passed from the
boot loader.
1996-08-29 22:08:58 +00:00
mark 468b7ec21b Define swapdev here as all the other ports do. 1996-08-29 22:05:50 +00:00
mark 2c16eec75d Removed declarations of swapdev and argdev. These are now defined
elsewhere.
1996-08-29 22:03:53 +00:00
cgd 71ad30d0e9 (1) set scsi_link channel to either the appropriate channel (if a
multi-channel driver), or to SCSI_CHANNEL_ONLY_ONE if a
    single-channel driver.
(2) use scsiprint() rather than a locally-defined autoconfig print
    function, and kill any locally-defined print function.
1996-08-28 18:59:15 +00:00
cgd 2a73ef60b7 change cfprint_t type definition to take a const char *, rather than
a char *, because that's what was really intended, and because
if the print function modifies the string, various things could become
unhappy (so the string should _not_ be modified).
1996-08-27 21:53:46 +00:00
mrg b8e9f36083 add COMPAT_12. 1996-08-26 23:39:36 +00:00
mark 4be6fcfb6e Only disable IRQs during cpu_switch(). FIQs can be left activeas they cannot
interfere with a context switch.
Fixed several comments.
1996-08-21 20:29:19 +00:00
mark 4522daecc9 Added defines for more proc structure fields (used by the FPE). 1996-08-21 20:26:41 +00:00
mark 7b0a0c0a24 Initial commit of the NetBSD/arm32 kernel TODO list. 1996-08-21 20:25:04 +00:00
mark 9d18e41fd8 No longer need the relocation function arm_fpe_mod_reloc() as this is now
sorted out at link time.
fpe_arm_header is now the header structure for the fpe and no longer
a pointer to a header structure.
1996-08-21 20:21:05 +00:00
mark 7b8910c01d Vastly simplified the FPE stubs code now that there are labels for all the
core entry points. i.e. the linker does the work rather than the stub code.
Optimised transferring the trapframe between UND32 and SVC32 mode stacks
in the fpe_post_proc handler.
Added experimental code to handle must of userret in UND32 mode. This means
that the copy of the trapframe and the switch to SVC32 mode is only needed
if mi_switch() has to be called. (This saves a vast number of pointless
trapframe copies).
1996-08-21 20:16:30 +00:00
mark 3142731d09 Re-written FPE core header.
Added branches relative to the start of the module and labels to the various
entry points.
All other offsets are now relative to _fpe_arm_start.
This removes the need for boot time relocation of the FPE.
1996-08-21 20:10:04 +00:00
mark e37583ac84 Removed the prototype arm_fpe_mod_reloc(). 1996-08-21 20:06:26 +00:00
mark 66d9ef4edb Updated with more info on the ARM7500 IOC/IOMD. 1996-08-21 20:00:50 +00:00
mark 9c8e5632da Replaced arch/arm32/arm32/fusu.c with arch/arm32/arm32/fusu.S
Added new iomd device.
1996-08-21 19:56:00 +00:00
mark 45bd77d893 Initial commit of a new iomd device. This device manages IOMD devices
for all ARM processors.
1996-08-21 19:53:21 +00:00
mark 64c91a1cc3 Report EASI space timings when probing the podule bus. 1996-08-21 19:46:47 +00:00
mark e8f3059a07 Define EASI space cycle types.
Added macro for setting the EASE space cycle time for a podule.
1996-08-21 19:44:53 +00:00
mark e53ec9745b Updated to work better with the new assembly functions like fuswintr().
Removed calls to traceback() as this info can be obtained via DDB after
a panic if needed.
1996-08-21 19:42:36 +00:00
mark 165dc50b4c This file can be removed now that the stubs functions it contained have
been replaced with proper assembly version in fusu.S
1996-08-21 19:38:39 +00:00
mark e75becbba3 Initial commit of proper [fs]uword() and associated functions. This
replaces fusu.c which comtained horrible stubs to things like copy{in,out}().
1996-08-21 19:37:43 +00:00
mark 663aa7fac0 Removed the #if notyet guards as this code now works.
Optimised the imsw16() and outsw16() functions by using ldm and stm
instructions.
1996-08-21 19:19:44 +00:00
mark caddfcc9e1 Make sure we have at least 1 rtc device configured otherwise
inittodr() and resettodr() will not work.
1996-08-21 19:07:19 +00:00
mark 88331f5ddc Removed debugging/diagnostic tracebacks. We have DDB now so can traceback
from there after the panic.
Guarded several checks with #ifdef DIAGNOSTIC
1996-08-21 19:04:17 +00:00
mycroft 1eba3fc001 Use to build `makemodes'. 1996-08-12 00:57:35 +00:00
mycroft 558d72128e Put into . Remove hooks for `config-dependent' and
`device-driver' flags.
1996-08-12 00:51:24 +00:00
mycroft cf67f29afe * Add a HOSTED_C_C variable, which strips `-p', `-pg', and
`-nostdinc', and use it when building genassym.
* Use `-nostdinc' just to be sure we're self-contained.
1996-08-10 06:07:57 +00:00
mycroft f94052ed3a * Define CWARNFLAGS and MKDEP in some moderately consistent fashion.
* Make S expand to an absolute path at compile time.
* Use `-S' rather than `-x' to remove debugging symbols.
* Garbage collect unused variables.
* Reverse a handful of port-specific changes that do not correspond to
the common build model and are not needed.
1996-08-10 05:29:24 +00:00
mrg 5abbf990f3 Change reboot(2) to take two arguments: bootopt like normal and also
a boot string for firmware that can do this, such as the SPARC and
the sun3 models.  It is currently silently ignored on all other
hardware now, however.  The MD function "boot()" has been changed to
also take a char *.
1996-08-09 10:30:23 +00:00
mark f5ee3d4ce6 Make sure all routes through vt_curadr() range check the x and y coordinates.
This fixes a nasty bug that could kill the kernel without ever reporting
a panic.
1996-07-05 19:07:55 +00:00
cgd af576d8a9f no need for a local implementation of SIOCGIFMTU; delete it.
s/ifr_metric/ifr_mtu/ where appropriate (in SIOCSIFMTU code), since
MTU data no longer (loggically) stored in ifr_metric.
1996-06-13 21:51:53 +00:00
mark 103a43ae29 Get the interrupt flags address from sc->sc_specific.sc_podule rather
than sc->sc_podule.
1996-06-13 18:29:45 +00:00
mark 31c4f7d574 Only read beyond the first byte of the podule header if we know that
an extended header is present i.e. don't assume an extended header as
however unlikely there could be a podule that doesn't have one.
Calculate an absolute address for the podule's interrupt mask rather
than leaving it relative to the base address of the podule.
If the interrupt status pointers are not present or are zero then
used the default bits as specified in the podule specification to
determine if the podule is interrupting.
1996-06-12 21:09:55 +00:00
mark 857439698b Claim the interrupt when leaving the interrupt handler as there can
only ever be a owner of the netslot interrupt.
Don't declare ebintr() as static.
1996-06-12 21:01:56 +00:00
mark 27ab616466 Don't claim the podule interrupts but pass them on in case of
chained podule interrupt handlers.
Fill out the ih_maskaddr and ih_maskbits fields in the interrupt handler
structure so that interrupt dispatcher knows where to look to determine
if the handler should be called.
General code tidy up and source code formatting.
1996-06-12 20:59:10 +00:00
mark 4dd0dabfca Don't claim the podule interrupts but pass them on in case of
chained podule interrupt handlers.
Fill out the ih_maskaddr and ih_maskbits fields in the interrupt handler
structure so that interrupt dispatcher knows where to look to determine
if the handler should be called.
1996-06-12 20:46:58 +00:00
mark e5aad86168 Allow the mouse interrupt to be specified in the config file. Fall
back on timer 1 interrupts if none is specified.
Only set up timer 1 is the driver is using timer 1 interrupts.
Don't claim the interrupt but allow them to be passed on to other
handlers.
1996-06-12 20:30:59 +00:00
mark 7d688793a8 Claim the interrupt if it has been dealt with otherwise pass it on. 1996-06-12 20:28:29 +00:00
mark 08ec43427f Added some sanity checks to irq_claim().
Fixed the handling of IPL_NONE.
Debugged support for interrupt chaining.
Fill out the intrnames array with the name of the interrupt handler
currently at the head of the chain.
Guarded several sanity checks with #ifdef DIAGNOSTIC.
1996-06-12 20:23:58 +00:00
mark 459cefbe67 Added support for the RC7500 interrupt registers
Added interrupt chaining.
Removed some dead debugging code.
Guarded several sanity checks with #ifdef DIAGNOSTIC
Make sure interrupts are disable while updating the IOMD interrupt
masks.
1996-06-12 20:19:35 +00:00
mark 1fd9b6f37c Removed some dead code that could never get executed (followed a panic).
Updated several panic messages to indicate what part of the fault code
they came from.
1996-06-12 20:15:28 +00:00
mark 977f90bd3b Removed copyin()/copyout() stub code.
Removed several old debugging functions that are no longer needed.
Block interrupts while updating the soft interrupt masks.
Fixed softclock interrupts and added IRQ_SOFTPLIP to the SPL_SOFT mask.
1996-06-12 20:12:04 +00:00
mark 47c523fff0 Spilt the copyinout() function into two separate functions copyin()
and copyout() so that the address space checks are done here rather than
in a bit of stub code.
1996-06-12 20:06:00 +00:00
mark 7b05ce2841 Updated to match changes in the irq handler structure.
Define symbols for the address space limits that copyin() and copyout()
compare against.
1996-06-12 20:02:42 +00:00
mark 13ff05d513 Don't claim the interrupts in hardclock() and statclock() but allow
them to be passed on to other interrupt handlers attached to the
timer interrupts.
1996-06-12 20:00:21 +00:00
mark b8dfbd8fe6 Don't use signed compares when determining the copy direction. 1996-06-12 19:58:43 +00:00
mark 120210258e Added a new machine command intrchain to dump the interupt handler
chains.
1996-06-12 19:57:06 +00:00
mark 8f541bdd1d Added a couple of comments.
Defined VM_MAXKERN_ADDRESS as the maximum address for the kernel address
argument to copyin() and copyout().
1996-06-12 19:55:04 +00:00
mark 78d05630aa Define insl() and outsl() as macros that currently just panic for the
moment.
1996-06-12 19:50:14 +00:00
mark 167d543662 Define several new macros for testing the processor mode. 1996-06-12 19:48:48 +00:00
mark 544631c0be Guard structures and prototypes with #ifndef _LOCORE
Rename the currently unused irq handler structure fields for podule
interrupts so they make more sense.
Define IPL_NONE as a positive value instead of -1 and increase the
number of IPL levels.
1996-06-12 19:47:11 +00:00
mark 4d280731dd Updated comments.
Print the irq masks for IPL_NONE.
1996-06-12 19:42:23 +00:00
mark 1f81e394d6 Only check the proc pointer in userret() if DIAGNOSTIC is defined. 1996-06-12 19:40:48 +00:00
mark d4a21812c0 Updated the arm_fpe_boot() prototype. 1996-06-12 19:37:37 +00:00
mark bbf3f35a4c Pass the cpu structure to the FPE boot function so that the FPU class
and type can be updated if a FPA is detected.
1996-06-12 19:37:03 +00:00
mark d9d6f7f246 RCS Id police. 1996-06-12 19:24:19 +00:00
mark 3ed835cae8 Only attach 1 VSYNC interrupt handler instead of a interrupt handler per
virtual console.
1996-06-12 19:12:57 +00:00
mark b58401e04e Not needed. This was identical to the VOYAGER config. 1996-06-03 22:50:07 +00:00
mark 8477987501 Fixed lots and lots and lots of -Wall compiler warnings. 1996-06-03 22:44:53 +00:00
mark f2a8347cc4 Fixed -Wall compiler warnings.
Implemented a setsoftintr() function.
1996-06-03 22:44:36 +00:00
mark bfe01da7b5 Tidied up the prototype declarations. 1996-06-03 22:41:14 +00:00
mark 4732cc6c39 Make sure that the ethernet address has been set correctly before
attaching the interface to the network code.
1996-06-03 22:39:12 +00:00
mark 45842a3af6 Merged in the latest changes that have been mode to the isa lpt driver.
Merged in the latest plip code from the pc532 port.
1996-06-03 22:36:23 +00:00
mark 0217e55278 Fixed the softnet interrupt code to properly use netisr. 1996-06-03 22:33:51 +00:00
mark e2391b47fd Merged in the latest changes that have been made to the isa com driver. 1996-06-03 22:30:36 +00:00
mark f941f8cdb9 Fixed -Wall compiler warnings. 1996-06-03 22:20:32 +00:00
mark 1c9f0501fc Don't complain about a drive type of zero, just treat it as no drive
present.
1996-06-03 22:19:21 +00:00
mark 59e4127d96 Use the sync information in the mode definition to set the VIDC sync
polarity.
1996-06-03 22:14:56 +00:00
mark 2f6e37b679 Fixed -Wall compiler warnings. 1996-06-03 22:11:34 +00:00
mark d4b96c659d Fixed -Wall compiler warnings introduced when fixing the vt220 printing
bug.
1996-06-03 22:08:37 +00:00
mark a2a08dd859 Removed the old QUADMOUSE_* ioctl names. Everything now uses the
generic mouse ones.
1996-06-03 22:07:39 +00:00
mark aa4be90f73 General code format tidy up.
Added missing function prototypes.
1996-06-03 22:04:40 +00:00
mark 0ba929925d Added proper definitions of quadrature mouse button register. 1996-06-03 22:03:36 +00:00
mark 258f83367c Added setsoftintr() prototype. 1996-06-03 22:00:50 +00:00
mark 0b265889c6 RCS Id police. 1996-06-03 21:58:25 +00:00
mark 515759c222 Added PLIP soft interrupt. 1996-06-03 21:57:52 +00:00
mark 10d9fbd5fe RCS Id police. 1996-06-03 21:55:46 +00:00
mark 89711a59f0 Fixed -Wall compiler warnings. 1996-06-03 21:53:33 +00:00
mark 17582aa655 Removed some dead code from cpu_exit().
Fixed -Wall compiler warnings.
1996-06-03 21:46:15 +00:00