Commit Graph

9147 Commits

Author SHA1 Message Date
scottr ccaecc2dda Some changes from hp300 (thanks Jason!):
- Initialize proc0.p_addr just after setting up the kernel stack, to avoid
  getting NULL pointers in trap().  Change suggested by Gordon Ross.
- Panic if main() returns.
1996-10-17 06:32:13 +00:00
jonathan 772aec9bf4 Remove #ifdef DEBUG lint:
change "%x" -> "%p" for printfs() with pointer args in i386_{set,get}_ldt()
1996-10-17 05:26:25 +00:00
jonathan 6dab138cc0 Remove lint inside #ifdef DEBUG:
* fix pmap debugging format strings: "%x" -> "%lx" for vm_offset_t
         "%x" -> "%p" for pointers.
  * add prottypes for pmap dumping functions
  * add missing return types on pmap dumping functions
  * move initialization of pamp_enter_pv():pv  before #ifdef DEBUG code
    which uses pv.
1996-10-17 05:11:47 +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
cgd 8cab2f173f update for changes in asm.h 1996-10-17 02:50:38 +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
cgd 905f7abae1 Add __CONCAT and ___CONCAT to concatenate identifiers. Add LLABEL to
create an assembly label, and SYSCALLNUM to convert a syscall name into
the macro that's defined to be its number.  Add a CALLSYS_NOERROR macro
which invokes the named system call.  (CALLSYS_NOERROR is here since
it's used in locore, for sigcode.)
1996-10-17 02:49:04 +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
jtk 37449bd6a8 fix compile warnings with -DDEBUG or -DAPMDEBUG 1996-10-16 22:30:34 +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
ws cf37e5a69e Indent properly 1996-10-16 17:26:19 +00:00
ws e8b039bf8b Add EXEC_ stuff 1996-10-16 17:13:28 +00:00
leo 86c616102f select -> poll 1996-10-16 12:57:11 +00:00
leo 226d874081 Add '-Wall -Wstrict-prototypes -Wmissing-prototypes' to CFLAGS. 1996-10-16 12:53:46 +00:00
leo 4a6637f783 Add EXEC_SCRIPT and EXEC_AOUT options. 1996-10-16 12:52:47 +00:00
leo b87085e3a0 Update pathnames of included files for new version of config. 1996-10-16 12:50:30 +00:00
leo b0b9a3e82c locore.s now needs FR_SIZE. 1996-10-16 12:42:45 +00:00
leo 1bd559103e Sync trace traps with the hp300. 1996-10-16 12:41:50 +00:00
jonathan 5c6013d588 Clone a 5000/{120,125,133} config file from the 5000/240 config. 1996-10-16 08:35:49 +00:00
jonathan 3280c75a3d Update model-specific pmax kernel config files for post-12 config:
add arch/pmax/conf/ to includes,  options MIPS1,   etc.
1996-10-16 08:29:34 +00:00
scottr fb42630e15 Eliminate fusword() prototype, as it's now in <sys/systm.h> 1996-10-16 06:27:05 +00:00
jonathan 8ffa855e18 Increase MAXDSIZE to 256Mbytes. 1996-10-16 06:10:41 +00:00
jonathan 0d1085302d alpha_mb() -> tc_mb(), for alpha/pmax convergence, even tho the tc_mb()
interface in tc_machdep.h is obsolete.
Change "#if 0" around  pmax rcons mouse-redirection to "#ifdef HAVE_RCONS"
1996-10-16 05:07:57 +00:00
jonathan f5343d2229 Cleanups, and convergence with the Alpha driver:
* kill scc_tty[] and needs-count.
  * Add usable-when-cold version of sccparam().
  * Add pre-autconf() console initialization entrypoint.
  * remove lint for gcc -Wall
  * wbflush() -> tc_mb()
all but the last of which have been fed through cgd and committed to the
Alpha scc driver.
1996-10-16 05:04:51 +00:00
cgd caa0b41652 spaces -> tabs where appropriate, some (minor) KNF (it needs much more),
kill spaces at EOL.
1996-10-16 04:07:16 +00:00
scottr e326c3123f We're paranoid; disable the IIci's cache card. 1996-10-16 04:00:28 +00:00
scottr 3370e6c419 External cache card on the IIci is enabled by default;
use DISABLE_EXT_CACHE to turn it off.
1996-10-16 03:55:21 +00:00
cgd 99ffca7953 more updates from jonathan. kill scc_tty array and needs-count 1996-10-16 03:53:31 +00:00
jonathan 428a2b873f Fix polled I/O getc/putc functions for non-serial consoles when
still cold (e.g., to initialize keyboards and mice).
Why these use polled, rather than interrupt-driven, IO is a mystery.
1996-10-16 02:10:33 +00:00
jtk aa8449a9ef fix compile errors & warnings 1996-10-16 01:12:18 +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
cgd 862e0d2653 various bits of cleanup, from jonathan stone, to make this and the pmax
driver slowly converge.
1996-10-16 00:03:02 +00:00
cgd f31bd002d2 add a new function, hwrbp_restart_setup(), to be called after
autoconfiguration.  It clears the RPB's per-cpu-slot BIP flag and
sets up the RPB's restore_term and restart vectors, etc.  add a
console_restart() function, which causes a panic and system dump,
that is invoked (indirectly) via those vectors.
1996-10-16 00:00:40 +00:00
cgd 2f7e2d8853 add an XentRestart, pointed to by the retore_term HWRPB vector (and maybe,
eventually, the restart HWRPB vector), which calls console_restart.  This
is invoked when the console halt switch is used and the user enters 'c'
at the console prompt, and eventually causes a system crash dump to be
generated.
1996-10-15 23:56:56 +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
cgd 9da2b9743a define and call a new function, hwrbp_restart_setup(). It's called after
autoconfiguration to clear the RPB's per-cpu-slot BIP flag and to set up the
RPB's restart function pointers, etc.
1996-10-15 23:52:49 +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
cgd e897979b3e don't set dumplo to -1 on error. deal with the case where dumplo is
still 0 after dumpconf().
1996-10-15 23:27:27 +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
thorpej 9f1ba5739f Don't need "options GENERIC" anymore. 1996-10-15 22:01:53 +00:00
thorpej 608efe383e Use the hp300 version of db_memrw.c (forgot to commit this change the
other day).
1996-10-15 22:00:31 +00:00
thorpej b12cf5890d RCS id police. 1996-10-15 21:59:03 +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
mycroft 7f28c2392c Increase the maximum number of ECBs. 1996-10-15 21:31:37 +00:00
mycroft d2f275101a Minor cosmetic change. 1996-10-15 21:30:19 +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
leo 5038453647 Initialisation of proc0->p_addr. (Gordon Ross)
This, in conjunction with the trap.c changes, solve the crashes when
referencing illegal addresses in the debugger. Thanks Jason for providing
the trigger and solution ;-)
1996-10-15 20:51:59 +00:00
leo a51538a2c6 - Some re-arrangements that make tracking of the hp300 version easier.
- Re-write panictrap() so that faults generated by the debugger can be
  handled by the debugger.
- Add a small bit of extra checking to the MMU_FAULT case, to make it more
  robust against pieces of the proc-structure being NULL (Jason Thorpe)
- If p == NULL at the entry of trap(), assign proc0 to it. Fixes a *lot* of
  NULL-pointer dereferences. (Gordon Ross)
1996-10-15 20:46:45 +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
scottr a6bbf8fc5b Define MACH_CLASSQ2, used by Performa 575.
Remove susword() because of prototype conflict with <sys/systm.h>.
1996-10-15 14:42:49 +00:00
scottr b599d4a3f6 We no longer need 'options GENERIC' 1996-10-15 07:25:55 +00:00
scottr dca6a7e025 Critical fix from Bill Studenmund: if CTS is deasserted and then
immediately reasserted before we get a chance to process the interrupt,
we can inadvertantly get stuck with zs_tx_stopped set.  Move the delta
detection to the hard zs interrupt handler; the softint handler
will notice that something has happened with CTS and restart the
transmitter if it's asserted.
1996-10-15 06:57:43 +00:00
scottr 6cd86aa894 BSD -> NetBSD 1996-10-15 06:41:48 +00:00
scottr f4eeb69eab Several 68040/68LC040-related changes; we're not there yet, but this
brings us closer to basic operation.

  - Verified/updated ROM vector entries for many systems, and new vector
    table entries for LC 520, LC 575/577/578, and Quadra 950
  - Implement a new machine class (MACH_CLASSQ2) for the LC 575 series
  - Use the ptest040() helper function in get_physical().

Also, in straytrap(), only enter the debugger #ifdef DDB.
1996-10-15 06:40:39 +00:00
scottr 31d8d5c176 Implement ptest040(), a helper for get_physical(). 1996-10-15 06:31:07 +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