1596 Commits

Author SHA1 Message Date
dg
396b2fd60b Comment out pmap_prefault for the time being (perhaps until after 2.1).
The object_init_pt routine is still enabled and used, however, and this
is where most of the 'pre-faulting' performance improvement comes from.
1995-01-26 01:45:02 +00:00
dg
1e642dc8a4 Make sure that the pages being 'pre-faulted' are currently on a queue. 1995-01-26 00:55:03 +00:00
dg
3b410c524f Be a bit less fast and loose about setting non-cacheablity of pages. 1995-01-25 22:06:23 +00:00
bde
802677cea8 Load the kernel symbol table in the boot loader and not at compile time.
(Boot with the -D flag if you want symbols.)

Make it easier to extend `struct bootinfo' without losing either forwards
or backwards compatibility.

ddb_aout.c:
Get the symbol table from wherever the loader put it.
Nuke db_symtab[SYMTAB_SPACE].

boot.c:
Enable loading of symbols.  Align them on a page boundary.  Add printfs
about the symbol table sizes.
Pass the memory sizes to the kernel.
Fix initialization of `unit' (it got moved out of the loop).
Fix adding the bss size (it got moved inside an ifdef).
Initialize serial port when RB_SERIAL is toggled on.
Fix comments.
Clean up formatting of recently added code.

io.c:
Clean up formatting of recently added code.

netboot/main.c, machdep.c, wd.c:
Change names of bootinfo fields.

LINT:
Nuke SYMTAB_SPACE.
Fix comment about DODUMP.

Makefile.i386:
Nuke use of dbsym.
Exclude gcc symbols from kernel unless compiling with -g.
Remove unused macro.
Fix comments and formatting.

genassym.c:
Generate defines for some new bootinfo fields.  Change names of old ones.

locore.s:
Copy only the valid part of the `struct bootinfo' passed by the loader.
Reserve space for symbol table, if any.

machdep.c:
Check the memory sizes passed by the loader, if any.  Don't use them yet.

bootinfo.h:
Add a size field so that we can resolve some mismatches between the loader
bootinfo and the kernel boot info.  The version number is not so good for
this because of historical botches and because it's harder to maintain.
Add memory size and symbol table fields.  Change the names of everything.

Hacks to save a few bytes:

asm.S, boot.c, boot2.S:
Replace `ouraddr' by `(BOOTSEG << 4)'.

boot.c:
Don't statically initialize `loadflags' to 0.  Disable the "REDUNDANT"
code that skips the BIOS variables.  Eliminate `total'.  Combine some
more printfs.

boot.h, disk.c, io.c, table.c:
Move all statically initialzed data to table.c.

io.c:
Don't put the A20 gate bits in a variable.
1995-01-25 21:40:47 +00:00
jmz
babb177fec Add entry for the joystick driver 1995-01-25 21:04:15 +00:00
jmz
44cc799e54 Add entry for joystick 1995-01-25 20:57:32 +00:00
jmz
c931c201ef ioctls for the joystick driver 1995-01-25 20:41:06 +00:00
jmz
cfe92acba3 Add: device joy0 at isa? port "IO_GAME" (joystick) 1995-01-25 20:35:14 +00:00
jmz
84f1d5b409 Changed address of the game controller to 0x201 (was 0x200)
joy.c: joystick driver
1995-01-25 20:11:51 +00:00
paul
d9f2fb9522 Fix probe so it now correctly identifies all the different chips
in the PCnet/Lance family.

Fix attach so 32 bit cards don't call isa_dmacascade.

Add a workaround for 32 bit chips which incorrectly truncate the
ring buffer size.

Fix a bug where CRC errors were reported as framming errors.

Change copyright to a BSD style one.
1995-01-25 03:50:33 +00:00
dg
7f1b929f72 Added Andres Vega Garcia's email address.
Submitted by:	Andres Vega Garcia
1995-01-24 20:53:45 +00:00
paul
ffce7eccf3 is to lnc changes 1995-01-24 20:38:39 +00:00
ache
5c963d4a7f Fix stdarg.h for GNU C using builtin_next_arg 1995-01-24 16:22:52 +00:00
dg
b45fe32f10 Moved various pmap 'bit' test/set functions back into real functions; gcc
generates better code at the expense of more of it.

Submitted by:	John Dyson
1995-01-24 09:57:39 +00:00
dg
daf280a076 Changed buffer allocation policy (machdep.c)
Moved various pmap 'bit' test/set functions back into real functions; gcc
generates better code at the expense of more of it. (pmap.c)
Fixed a deadlock problem with pv entry allocations (pmap.c)
Added a new, optional function 'pmap_prefault' that does clustered page
table preloading (pmap.c)
Changed the way that page tables are held onto (trap.c).

Submitted by:	John Dyson
1995-01-24 09:56:33 +00:00
jkh
375b4a802c Y.A.B.M (Yet Another Bogus Makefile) 1995-01-24 00:41:50 +00:00
dg
4923029fb7 Decrease MCLBYTES from 4k back to 2k. It isn't likely that we'll be doing
page flipping anytime soon and 4k just wastes memory. Performance via the
looback interface will decrease slightly by this change. Idealy, we need
buffers that can have variable sizes, but this requires a rewrite of far
too much code at the moment.
1995-01-23 19:21:49 +00:00
dg
e870016a53 Much better fix/support for the 83c795 based cards (the new SMC EtherEZ)
by steve@simon.chi.il.us (Steven E. Piette). Minor changes by me.
1995-01-23 19:06:08 +00:00
dg
dfe0c08e86 Kill redundant declarations of d_open_t and d_close_t. 1995-01-23 18:46:13 +00:00
phk
8fdfed6a17 if_ze was not updated when the arp_ifinit stuff was done. now it is. 1995-01-23 18:02:32 +00:00
phk
daed5e7c4d Moved the typedefs of d_<foo>_t into sys/sys/conf.h and used them in
the definition of struct [cb]devsw.  Guess Bruce never got around to
complete this (?)

Poul-Henning
1995-01-23 02:52:28 +00:00
phk
a7a3a2fb54 Nobody seems to need "mem_no" anymore, so I zapped it. 1995-01-23 02:36:22 +00:00
phk
b884f0d791 Fixed $Id$ 1995-01-23 02:31:53 +00:00
jkh
ec2e8d597c Add support for Olof Johansson's WD7000 driver.
Submitted by:   Olof Johansson <offe@ludd.luth.se>
1995-01-23 00:25:44 +00:00
jkh
a504b09724 Add support for Olof Johansson's WD7000 driver.
Submitted by:	Olof Johansson <offe@ludd.luth.se>
Obtained from:
1995-01-23 00:25:03 +00:00
gibbs
8e92a2f20c Initialize SIMODE1, SCSIID, and SXFRCTL1 in ahc_init instead of at each
reconnection/selection with a target.
1995-01-22 00:48:39 +00:00
gibbs
144f061bf6 Change the string returned in the aic7870 motherboard probe case. Change
#define to a more appropriate name.
1995-01-22 00:47:50 +00:00
bde
717b884d1e Don't use mi_switch() to terminate cpu_exit(). Calling it just happened to
work (mi_switch() counted the last timeslice again but this didn't affect
the exiting process' rusage because the rusage has already been finalized).

Remove stale comment.
1995-01-21 15:34:03 +00:00
bde
fefb40a4f2 Remove unused definitions of vm statistics counters. Most of the
counting is now done in C.  There are still about 100 unused
definitions for other things.
1995-01-21 15:22:28 +00:00
bde
c00ebedb70 Don't count context switches here, they are already counted in mi_switch(). 1995-01-21 15:20:23 +00:00
bde
bd41d459e4 Keep track of open devices better to avoid closing the console device when
the physical device is closed.  Previously only the reverse case was handled.
Abuse the cdevsw interface instead of the vfs interface to do this.

Remove unnecessary #includes.
1995-01-21 14:12:15 +00:00
sos
20ccaa1777 Second round in syscons update:
Support for pseudo graphic mouse cursor (not complete yet)
Some cheap speed fixes.
More cleanups.
Call ourselves scxxxx finally.
1995-01-20 08:35:32 +00:00
wpaul
fe760b5318 Removed hardcoded definition for RB_SERIAL that I left in my accident
(had it there for testing purposes). RB_SERIAL should be found in
<sys/reboot.h>.
1995-01-20 07:52:42 +00:00
wpaul
1875d75ad1 Submitted by: Bill Paul (wpaul@ctr.columbia.edu)
Obtained from:
bios boot block changed to allow booting from both the attached graphics
display and from a serial port. (A specially compiled serial boot block
is no longer necessary.) The boot block should detect the presence or
absence of a keyboard: if there is no keyboard, COM1 is turned into the
console. This simulates the behavior of the Sun boot PROMs. Unplug your
keyboard, attach a terminal to COM1 and you should be ready to go. :)
1995-01-20 07:48:27 +00:00
wpaul
7a6a5253ca Submitted by: Bill Paul (wpaul@ctr.columbia.edu)
Obtained from:
sio.c and sioreg.c changed to allow autodetecting the RB_SERIAL flag
passed by the boot blocks so that the kernel can switch to 'serial
console' mode automagically. 'options COMCONSOLE' can still be specified
to force the kernel to always use the serial port as a console.
CONUNIT and CONADDR can also be specified in the kernel config file
if the user wants to shift the console to a different port.
1995-01-20 07:34:18 +00:00
ats
8f8e6b75d8 Submitted by: Bruce Evans
Put in the much shorter and cleaner version for the calibrate_cycle_counter
for the Pentium that Bruce suggested. Tested here on my Pentium  and
it works okay.
1995-01-19 22:05:27 +00:00
dufault
1918e6dc4c Print out exactly what we think the board is, and for the latest
rev Adaptec boards enable data transfer length detection instead
of assuming requested amount of data is transferred.
1995-01-19 12:33:10 +00:00
jkh
3cce6d4ff2 Enable floppy-tape controller by default again. Flags no longer has any
special meaning.
1995-01-17 17:32:33 +00:00
bde
6b90797270 The %eflags checking introduced in the previous commit was too zealous.
sigreturn() sometimes failed for ordinary returns from signal handlers.
Failures of ordinary returns "can't happen" and are badly handled.
"Temporary" fix: allow users to corrupt PSL_RF.  This is fairly
harmless.  A correct fix would involve saving the old %eflags (and
perhaps the old segment registers) where the user can't get at them.
1995-01-17 01:15:12 +00:00
gibbs
cd232c506d Add $Ids. Use DMA for downloading SCBs to the sequencer. Implement SDTR,
WDTR, and message reject handlers so they don't need to exist in the
sequencer.  All three of these cases are not on the critical path, so it
makes little sense to use up precious sequencer ram for them.
1995-01-16 16:33:47 +00:00
gibbs
6617f0bfe4 Add $Id. Recognize motherboard aic7870 based controllers. 1995-01-16 16:31:57 +00:00
gibbs
d55c379829 Add $Id 1995-01-16 16:31:34 +00:00
dg
3a5df73fbd Fixed some page table reference count problems; these changes may not be
complete, but should be closer to correct than before.
1995-01-15 09:06:23 +00:00
wollman
9fe40fb5dd Some fixes to device configuration, now that I've had a chance to do it
properly from the beginning:

	1) The `kern_devconf' struct should be a part of the driver's
	   `softc' structure (now it is).
	2) The `description' should say what the device actually is,
	   rather than just giving a model number (now it does).
	3) The device should be registered even if the probe fails, so
	   that it can be reconfigured later.
	4) For netifs, the device state should follow the IFF_UP flag.

Other network interfaces should follow this example.  (Please?)  Eventually
there should be a rundown routine doing the equivalent of setting IFF_UP
off, and perhaps more if warranted.
1995-01-15 00:18:17 +00:00
bde
f864467045 Fix security holes in sigreturn(), ptrace() and procfs. sigreturn()
attempted to check for insecure and fatal eflags and segment
selectors, but missed many cases and got the IOPL check back to
front.  The other syscalls didn't check at all.

sys_process.c, machdep.c:
Only allow PT_WRITE_U to write to the registers (ordinary and FP).

psl.h, locore.s, machdep.c:
Eliminate PSL_MBZ, PSL_MBO and PSL_USERCLR.  We are not supposed
to assume anything about the reserved bits.  Use PSL_USERCHANGE
and PSL_KERNEL instead.  Rename PSL_USERSET to PSL_USER.

exception.s:
Define a private label for use by doreti when returning to user
mode fails.

machdep.c:
In syscalls, allow changing only the eflags that can be changed on
486's in user mode (no longer attempt to allow benign IOPL changes;
allow changing the nasty PSL_NT; don't allow changing the i586
bits).

Don't attempt to check all the cases involving invalid selectors
and %eip's.  Just check for privilege violations and let the invalid
things cause a trap.

procfs_machdep.c:
Call the ptrace register functions to do all the work for reading
and writing ordinary registers and for single stepping.

trap.c:
Ignore traps caused by PSL_NT being set.  Previously, users could
cause a fatal trap in user mode by setting PSL_NT and executing an
iret, and a fatal trap in kernel mode by setting PSL_NT and making
a syscall.  PSL_NT was cleared too late and not in enough modes to
fix the problem.

Make all traps in user mode (except T_NMI) nonfatal.

Recover from traps caused by attempting to load invalid user
registers in doreti by restarting the traps so that they appear to
occur in user mode.
---

Fix bogons that I noticed while fixing the above:

psl.h:
Fix some comments.

Uniformize idempotency ifdef.

exception.s, machdep.c:
Remove rsvd[0-14].  rsvd0 hasn't been reserved since the 486 came
out.  Replace rsvd0 by `align'.  rsvd[0-11] used wrong (magic
non-unique) trap numbers.  Replace rsvd[1-14] by rsvd.

locore.s:
Enable alignment check flag on 486's and 586's.

machdep.c:
Use a better type for kstack[].

Use TFREGP() to find the registers.

Reformat ptrace functions from SEF to something closer to KNF.

procfs_machdep.c:
The wrong pointer to the registers got fixed as a side effect.

Implement reading and writing of FP registers.

/proc/*/*regs now work (only) for processes that are in memory.

Clean up comments.

trap.c, trap.h:
Remove unused trap types.
1995-01-14 13:20:26 +00:00
bde
ddcce018ef Define some public labels for use by trap(). 1995-01-14 11:00:27 +00:00
jkh
f8ac3c83a6 Remove bogus scd0 driver - I should have looked at LINT first, anyway. 1995-01-14 10:48:56 +00:00
bde
56e94090e5 Enable define of CR0_AM to prepare for implementing alignment checking.
Uniformize idempotency ifdef.
1995-01-14 10:44:55 +00:00
bde
4296366254 Declare a real `struct fpreg' to prepare for implementing reading and
writing of FP regs for procfs.

Uniformize idempotency ifdef.
1995-01-14 10:41:41 +00:00
bde
352cf37066 Remove reference to impossible trap type T_KDBTRAP. We don't support
watchpoints.

Uniformize idempotency ifdef.
1995-01-14 10:34:52 +00:00