Commit Graph

17437 Commits

Author SHA1 Message Date
simonb 47c28b03d8 Move via repository copy to sys/arch/pmax/stand/scsiboot 1999-01-20 12:03:56 +00:00
mycroft 7ef318056c sync 1999-01-20 11:15:56 +00:00
ragge 08e32be08c Forgot copyright notice. Thanx, Jason! 1999-01-20 07:32:52 +00:00
pk 565d3768e5 Catch `Unimplemented Flush' traps. 1999-01-20 00:15:07 +00:00
pk 521611091a Set the Hypersparc ICCR bits. 1999-01-19 23:07:29 +00:00
pk 88993b57d9 Define macros to read & write Ancillary State registers. 1999-01-19 23:05:52 +00:00
pk 66cd211961 Define Hypersparc ICCR bits. 1999-01-19 23:04:02 +00:00
ragge cb2675ff12 Fix some void pointers. 1999-01-19 22:57:47 +00:00
ragge bef0af5311 Allocate (almost) all interrupt vectors dynamically. Simplifies much
work when adding support for new machines and devices.
1999-01-19 21:04:47 +00:00
thorpej 2fb041ce0a No need for <sys/mtio.h> 1999-01-19 18:18:41 +00:00
scottr d51a8c71b9 Need bswap.h for the bswap32() prototype. From Steve Allen
in PR 6846.
1999-01-19 15:41:03 +00:00
pk a711033aa2 Deal with SIR_SERIAL (for `com' devices).
XXX - consider using __GENERIC_SOFT_INTERRUPTS instead
1999-01-19 10:04:42 +00:00
pk dd91d8a2b4 Add SIR_SERIAL soft interrupt source. 1999-01-19 10:02:40 +00:00
ross c79856181a NetBSD RCS id. 1999-01-18 20:36:22 +00:00
ross 7346c0043b FreeBSD's fpu.h. 1999-01-18 20:33:23 +00:00
tsubai 321f772d99 Invert Y axis (like ums, pms, ...). 1999-01-18 12:36:36 +00:00
drochner 67589898ca Be more cautious about writing to the CMOS century byte. Update it only
if it contained a "19" before. There are machines (in particular PS/2
descendants) which have a checksum at this place.
Introduce a patchable kernel variable "rtc_update_century" to modify
the behaviour: 1="always update" (for testing and if one wants to set
the clock back) or -1="never touch".
1999-01-18 10:50:23 +00:00
itohy fe5278bffc MACHINE_NEW_NONCONTIG is no longer optional
remove non-MNN code
1999-01-18 07:39:51 +00:00
castor de42f91db3 Forgot to also ship out regnum.h 1999-01-18 04:59:54 +00:00
nisimura 3478ed1de4 - Nuke 90 lines of dead code inherited from 4.4BSD. They were mostly for
VAX BSD VM.
1999-01-18 03:48:34 +00:00
castor 4e216f5744 Remove vestiges of cpuarch.h. Revert to using cpuregs.h instead. 1999-01-18 02:11:07 +00:00
pk 58fa0024a5 Add `qe'. 1999-01-17 20:45:26 +00:00
eeh 2dd29df04b Let's try to add network support. 1999-01-17 20:07:52 +00:00
matt 8e06ef5a52 If using egcs, use -mno-pic to generate better code. 1999-01-17 19:09:00 +00:00
he 30cc2d95cb Actually handle small boot blocks (<=15 blocks) correctly in the ffs case. 1999-01-17 18:16:16 +00:00
tsubai 3e7448240b Add missing backslash. 1999-01-17 12:51:03 +00:00
tsubai ffffbb419c Fix a intrcnt bug. 1999-01-17 11:53:52 +00:00
tsubai 07d83c4919 Add bmac ethernet. 1999-01-17 11:49:56 +00:00
mark 8ee86da26a Clean up the last remains of non-MNN the code. 1999-01-17 06:58:16 +00:00
scottr 2159f8a301 Add support for the Contour 3-button mouse, inadvertantly missed
in the ADB split a few months back.  Noticed by Takashi NAKAMURA.
1999-01-16 22:49:37 +00:00
chuck 4e484e0e02 remove dead non-MNN code (one block left) 1999-01-16 21:03:48 +00:00
chuck bef8ae1103 MNN is no longer optional 1999-01-16 20:49:12 +00:00
chuck 90ddaed9b5 MNN is no longer optional, remove dead code 1999-01-16 20:43:21 +00:00
chuck 9cb41178b7 MNN is no longer optional, remove old code 1999-01-16 20:39:03 +00:00
chuck 417e5339f0 MNN is no longer optional 1999-01-16 20:31:50 +00:00
chuck e6f055e44b MNN is no longer an option 1999-01-16 20:31:20 +00:00
chuck 8bd992a5f6 remove non MNN code 1999-01-16 20:30:34 +00:00
chuck 32244a5a1a MNN is now the default 1999-01-16 20:13:17 +00:00
chuck 9588304ded MNN no longer an option 1999-01-16 20:11:51 +00:00
chuck 66226eb6ff remove non-MNN code 1999-01-16 20:11:03 +00:00
chuck b0289cbb75 MNN is no longer an option 1999-01-16 20:07:37 +00:00
chuck 4dcbe95100 remove old MACHINE_NONCONTIG code 1999-01-16 20:06:47 +00:00
chuck 3a1fcc746e MNN is now the only option possible 1999-01-16 20:04:22 +00:00
he 4155434b1c Fix uninitialized `inode' variable in save_ffs(), fixing port-i386/6682. 1999-01-16 18:26:47 +00:00
pk c884428427 Add `be' + MII devices.
Add PCMCIA devices that are known to compile at the moment.
1999-01-16 13:43:50 +00:00
nisimura f3b48dd536 - Restore 'cpuregs.h'. 1999-01-16 09:25:18 +00:00
nisimura d9b9f639e6 - Update 'cpuregs.h' and decline 'cpuarch.h'. 1999-01-16 09:07:37 +00:00
nisimura 6119939f5a - Restore 'cpuregs.h'. 1999-01-16 08:51:04 +00:00
nisimura b6cc76ac91 - Never use an uninitialized variable. 1999-01-16 08:48:06 +00:00
nisimura 25806f2bf5 - Make cpu_switch() a normal call; formally it was splitted into halves.
- Fix an error in mips3_cpu_switch_resume(); ASID was not set correctly.
- Remove global variable 'curpcb' reference in mips1_proc_trampoline().
- Restore 'cpuregs.h'.
1999-01-16 08:45:53 +00:00
nisimura 358a8c3092 - Add two macros to deal with a recent change in mips/trap.c. 1999-01-16 08:26:24 +00:00
nisimura 34410d5d0c - Fixup imcomplete vm_offset_t purge work... 1999-01-16 07:05:05 +00:00
tron 3601b98911 Add missing backslashes between continued lines. 1999-01-16 06:24:07 +00:00
nisimura f163b5653f - Replace the stub value of 'eret' instruction with correct one. 1999-01-16 03:44:42 +00:00
nisimura f4b56d8060 - Clarify how inimplemented FP instruction traps are handled. 1999-01-16 03:31:49 +00:00
nisimura d077749e8f - Fix errors involving proc0's kernel stack usage. Fortunately it made
no error so far...
1999-01-16 03:17:06 +00:00
nisimura 7dce3ef311 - User mode context held with pcb_regs[38] in 'struct pcb' was relocated
at the very bottom of process kernel stack.   The address is pointed with
'curproc->p_md.md_regs'.
- Define 'struct md_coredump'.
1999-01-16 03:12:18 +00:00
nisimura f714e02733 - Fixup for recent change in arch/mips. 1999-01-16 02:36:01 +00:00
bouyer f20d50fae4 Add byte_swap.h here too. 1999-01-16 02:31:54 +00:00
bouyer 62a77e9dfe Oups, need byte_swap.h too. Pointed out by Robert V. Baron 1999-01-16 02:20:26 +00:00
thorpej 8922647c58 Some minor, mostly costmetic, changes to CPPFLAGS/CFLAGS. 1999-01-15 23:37:05 +00:00
thorpej f52ee598ae __pmax__ -> pmax, __arc__ -> arc, like other ports. 1999-01-15 23:35:54 +00:00
thorpej c84a74b16b Don't define "mc68020". Nothing uses it. 1999-01-15 23:21:25 +00:00
thorpej cd3a2c5a2a Eliminate use of CPP symbol "mc68020". 1999-01-15 23:15:50 +00:00
castor 48cbfb842a * Add prototype for mips1_clean_tlb
* Add the correct version of locore_mips1.S [ See previous revision for
	description of changes ]
* Use defopt'ed MIPS3_L2CACHE_ABSENT in mips_machdep.c and pmap.c
	to avoid generating extraneous code.
* GC pmap_set_referenced in pmap.c
1999-01-15 22:26:42 +00:00
bouyer dc306354b0 Move the bswap functions from libutil to libc (this bups the
minor of libc and the major of libutil). For little-endian architectures
merge the bnswap() assembly versions with nto* and hton* using symbols
aliasing. Use symbol renaming for the bswap function in this case to avoid
namespace pollution.
Declare bswap* in machine/bswap.h, not machine/endian.h. For little-endian
machines, common code for inline macros go in machine/byte_swap.h
Sync libkern with libc.
Adjust #include in kernel sources for machine/bswap.h.
1999-01-15 13:31:15 +00:00
castor 45a22daf10 allow generated kernel includes and support mips pubassym.cf mechanism 1999-01-15 10:57:36 +00:00
castor c729b2ffeb add support for locore_mips[13].S 1999-01-15 10:33:11 +00:00
castor 534c67a373 Protect defopt against -D_LKM 1999-01-15 10:07:12 +00:00
castor 84915f67d7 Fix typo in mips3_ConfigCache() -- mips3_L2CachePresent 1999-01-15 09:58:43 +00:00
matthias 2dff258464 Support BUFCACHE option (stolen from i386). 1999-01-15 07:43:48 +00:00
matthias 88b2c1662d Protect all defines in this file with #ifdef _KERNEL. At least the
definition of T_SLAVE will cause the bind build to fail. Thank's
to Phil Budne for noting this.
1999-01-15 07:42:48 +00:00
castor 4720afb463 Avoid introducing new prefix '__JB' -- '_JB' is fine. 1999-01-15 03:43:56 +00:00
castor e20f6d6203 * Elimination of UADDR/KERNELSTACK
Affected files:
	include/mips_param.h, include/pcb.h,
	mips/locore_mips1.S, mips/locore_mips3.S,
	mips/mips_machdep.c, mips/vm_machdep.c

   Issue:

So far, NetBSD/mips has not successfully got rid of fixed-address
kernel stack.  USPACE (two 4KB pages) of each process has two distinct
KSEG2 addresses, both refer to a single physical storage; one address
for fixed range [ UADDR .. KERNELSTACK ), and another for "normal" KSEG2
address which was allocated by kernel memory manager and unique to each
others of processes.

"Doubly mapped" USPACE complicates context switch.  Both address ranges
have to be managed with a special care of "wired" TLB entries which
are never replaced until next context switch to ensure no TLB miss for
USPACE access.  It's equally crumbersome that MIPS processor's cache
machinary gets be confused about USPACE contents because there are two
distinct KSEG2 addresses to manipulate one physical storage.

   Solution:

Purge KERNELSTACK constant for kernel stack pointer and replace
it with process unique values.  Kernel stack bottom is located at
'curproc->p_addr + USPACE'.  Context switch is simplified as it unloads
half of TLB hardwiring burden.  It just manages the unique KSEG2 address
of each USPACE to be wired.  As the side effect, switch_exit() has no
MIPS processor ISA dependent code anymore.  It switchs kernel stack to
proc0's USPACE which has KSEG0 address and no need of TLB entry.

* Extensive use of 'genassym.cf'

To hide target port dependent and/or processor register size dependent
constants from assembler routines, 'genassym.cf' now has an extentive
set of definitions for various constants and offset values of
structural objects.  This change will contribute possible NetBSD/mips64
portability too.

* Separation and rename of locore_r2000/_r4000.S

Those files are now indepedent standalones from locore.S to ease
maintainance works, and renamed to match MIPS processor ISA version.

* Changes in kernel mode exception handlers

Kernel mode exception handlers hold exception contexts by pushing a
certain set of register values on stack for resuming kernel mode
processing.  This context is now represented with 'struct trapframe',
which is smaller than full scale (user mode) exception context 'struct
frame'.  Stack consumption of kernel mode exception services is now
similar to 4.4BSD/mips.

* Relocation of exception frame

User mode context 'struct frame' is moved to the very bottom of kernel
stack at 'curproc->p_addr + USPACE - sizeof(struct frame)'  This change
saves a bit of instructions on every return to user processes as it
eliminates reference to global variable 'curpcb' each time.

* Refurblished DDB backtrace routine

It's a growing concern to maintain stacktrace() code correctly.  It
could be simplified by enforcing special arrangements for some of
obscure locore routines which violate usual coding conventions.

New backtrace code searchs for certain instructions peculiar to any of
function tails.  Specifically, "jr ra" for normal function returns, "jr
k0" for MIPS1 exception handlers and "eret" for MIPS3 handlers.

* Support for 64-bit safe user code
    Affected Files:
	${ARCH}/include/pubassym.cf lib/libc/arch/mips/gen/*setjmp*
	include/setjmp.h mips/include/[lots] mips/mips/[lots]

    Solution:

	We define macros REG_L/REG_S and SZREG for loading and storing
	registers and for the size of registers.  The exact meaning
	of these is controlled by a macro (currently _MIPS64) which
	allows one to treat the registers as either 32-bit or 64-bit.
	There are data types mips_reg_t and mips_fpreg_t which represent
	the true register sizes, and avoid confusing register_t.

	We needed a way to dynamically gen the structure sizes of things
	like sigcontext for setjmp.h, so we defined a pubassym.cf for
	libc routines like setjmp and longjmp.

	NetBSD/mips allows ${ARCH}'s to be defined which preserve
	all 64-bits of registers across user context switches.  There
	are still a few niceties to clean up for kernel mode context
	switches.

* Support for QED 52xx processors
    Affected Files:
	mips/locore_mips3.S mips/pmap.c include/locore.h

    Issue:
	The QED 52xx family of processors are targeted at low cost
	embedded systems, (i.e. CPUs ~$30) for systems like routers, printers,
	etc.  We have added preliminary support for some of the idiosyncrasies
	of this processor, e.g. no L2 cache, etc.  More work needs to be
	done here because with a modest 2-way  L1 cache, some of the rampant
	flushing has significant performance implications.  However,
	it doesn't crash, which is a start.

    Solution:
	A routine for flushing the cache based on virtual addresses was added;
	a routine which deals with the two-way set associativity of the
	5230 L1 cache was added, accomodations to 5230's instruction hazards
	were added.


* TLB Miss code for mips3/mips4 processors cleaned up significantly.
    Affected Files:
	mips/locore_mips3.S mips/vm_machdep.c include/locore.h mips_machdep.c
    Issue:
	The TLB Miss handler exceeded the allowed size, which wasn't
	a problem because there was no handler for when the processor
	was in 64-bit mode.  The handler for invalid TLB exceptions
	also appears to have much vestigial code, which made it
	difficult to understand.

    Solution:
	Use the XCONTEXT register to store a pointer to the segment
	map table, this coupled with removing some dead code allows
	the handlers to fit.
1999-01-15 01:23:12 +00:00
mrg bb4584ec40 look for /^Version:/ to find the boot block version, rather than using
the "version" file's RCS id (which is useless for branches).
1999-01-15 00:48:03 +00:00
pk 6a8119ff1d Sanity check from Matthias Drochner. 1999-01-15 00:26:24 +00:00
castor a6f7b8ff0e Add defopt opt_mips_cache.h and allow 'clock' device to not require the mc6xx files 1999-01-14 18:51:31 +00:00
castor a84ec5a3c1 * Create mips_reg_t data type to allow register size to be
decoupled from long or int or long long.  Define macros in asm.h to facilitate
  choosing these on a port by port basis.

* Create <machine/pubassym.h> mechanism to allow jmp_buf structure size
  to be calculated at system build time.

* Define _MIPS_BSD_SIM macro which specifies what calling style is appropritae
  for the architecture.  For 64-bit oriented systems set the Status Register
  to allow 64-bit instructions.

* Remove UADDR related macros because kernel U structure is now mapped
  normally.
* Separate cpu.h into cpu.h and cpuarch.h to keep things neat.
* Add support for QED 52xx processors
1999-01-14 18:45:45 +00:00
pk 0372e36e3f device_register: recognize `lebuffer' and `isp' as controllers. 1999-01-14 13:08:24 +00:00
cgd ba831d2c43 update for present reality 1999-01-14 04:44:23 +00:00
cgd f3c3f37dc8 update for ed split 1999-01-14 04:26:46 +00:00
pk de7b3f5492 Add `bus_space_subregion()' which was curiously missing. 1999-01-13 20:48:40 +00:00
pk 53c6ccd94d Add `eccmemctl' entry. 1999-01-13 20:35:30 +00:00
leo 7b74d44255 As Ignatios suggested:
Use CCB when dealing with a 68040 type MMU (for cache consistency).
1999-01-13 12:17:15 +00:00
itohy cd16d23d21 Make it compile again.
Use err(3) functions.
KNF
1999-01-13 10:23:40 +00:00
abs 1e21e1233b Change 'from from' to 'from' in some comments 1999-01-13 09:25:59 +00:00
tsubai 12d2afa11a Use KS_KEYCODE macro. 1999-01-13 08:13:41 +00:00
abs 4b0a936711 fix void arithmetic 1999-01-13 04:19:08 +00:00
tsubai 3bc029b332 Add ``#include "akbd.h"''. 1999-01-12 15:12:44 +00:00
tsubai 5998caa414 Support irq > 31.
XXX dirty hack...
1999-01-12 12:06:46 +00:00
tsubai c2bb308ef9 Use (fast!) dcbz asm instruction in pmap_zero_page(). 1999-01-12 11:03:04 +00:00
tsubai bb426487a5 Move MSGBUFSIZE from machdep.c to param.h
Use the last page for msgbuf instead of fixed MSGBUFADDR.
1999-01-12 10:51:40 +00:00
tsubai 90a73bba2c Always use polling when poweroff/restart. 1999-01-12 10:38:00 +00:00
tsubai 4293e4ff3c Use the last available page(s) for msgbuf. 1999-01-12 10:26:18 +00:00
kleink 657d577aeb Pull in <errno.h> instead of <sys/errno.h> for declaration of errno. 1999-01-11 22:21:30 +00:00
drochner 35eeb3f1cd remove dummy "load_font" entries 1999-01-11 21:54:22 +00:00
thorpej 8406f65cbf Use a pool for pmap structures. 1999-01-11 20:58:46 +00:00
christos e0c19ac888 We cannot relocate our interpreter (yet). 1999-01-11 11:02:50 +00:00
christos e293d1bc34 Add ELF crap. 1999-01-11 11:02:16 +00:00
tsubai c91ac313c1 Count clock interrupts. 1999-01-11 09:44:51 +00:00