1011 Commits

Author SHA1 Message Date
bde
04cbebd0ad Initialize CR0_MP in setregs() in case npx0 is disabled or not configured.
Disabling npx0 works right now.

Don't reference `npxdriver' if npx0 is not configured.  Not configuring
npx0 doesn't quite work yet.

Don't clear potential non-npx pcb flags in setregs().
1997-01-24 19:01:54 +00:00
obrien
83ff141779 KNF style police.
Reported by:	Bruce
Thanks to:	Bruce for also providing a diff.
1997-01-24 12:39:11 +00:00
dyson
f950a9a8f5 Remove some dead code from trapwrite.
Submitted by:	Stephen McKay <syssgm@devetir.qld.gov.au>
1997-01-23 01:30:59 +00:00
dyson
3822812622 Fix I386 copyout support. The new page-table management code will
not lazy-fault page table pages.  Update the copyout support to take
that into account.  This should fix some segfault problems on such
machines.

After a short test period, we'll move this into 2.2.

Submitted by:	Stephen McKay <syssgm@devetir.qld.gov.au>
1997-01-22 06:15:27 +00:00
obrien
252a91a9ee Add bits to identify AMD K5 and K6 cpu's.
Tested only on my AMD K5 PR-133.  Bit values for K6 taken from AMD document
on how to test such things.

2.2 Candidate.
1997-01-19 01:56:55 +00:00
jkh
efe3090908 Adjust ex0 entries properly after talking with Javier. 1997-01-17 14:19:04 +00:00
bde
a1dd37c329 Guard against the i8254 timer being uninitialzed if DELAY() is
called early for console i/o.  The timer is usually in BIOS mode
if it isn't explicitly initialized.  Then it counts twice as fast
and has a max count of 65535 instead of 11932.  The larger count
tended to cause infinite loops for delays of > 20 us.  Such delays
are rare.  For syscons and kbdio, DELAY() is only called early
enough to matter for ddb input after booting with -d, and the delay
is too small to matter (and too small to be correct) except in the
PC98 case.  For pcvt, DELAY() is not used for small delays (pcvt
uses its own broken routine instead of the standard broken one),
but some versions call DELAY() with a large arg when they unnecessarily
initialize the keyboard for doing console output.  The problem is
more serious for pcvt because there is always some early console
output.

Guard against the i8254 timer being partially or incorrectly
initialized.  This would have prevented the endless loop.

Should be in 2.2.
1997-01-16 18:28:20 +00:00
jkh
c1b63f3e27 Add the ex driver (Intel EtherExpress Pro/10).
I have no idea if this works since I don't have one of the cards to test.
I also don't know what the LINT and GENERIC entries should look like,
so I just made up some values for now and left them commented out.
Someone who knows the factory settings for a Pro/10, please contact me!

Submitted-By: Javier Martín Rueda <jmrueda@diatel.upm.es>
1997-01-16 12:19:21 +00:00
bde
42a95278a7 Fixed printing of small offsets. E.g., -4(%ebp) is now printed
as -0x4(%ebp) instead of as _APTD+0xffc(%ebp), and if GUPROF is
defined, 8(%ebp) is now printed as 0x8(%ebp) instead of as
GMON_PROF_HIRES+0x4(%ebp).
1997-01-16 11:27:11 +00:00
dg
78afd808d5 Fix bug related to map entry allocations where a sleep might be attempted
when allocating memory for network buffers at interrupt time. This is due
to inadequate checking for the new mcl_map. Fixed by merging mb_map and
mcl_map into a single mb_map.

Reviewed by:	wollman
1997-01-15 20:46:02 +00:00
bde
dc8e52ae76 Fixed longstanding annoying warning about a type mismatch. pmap doesn't
really uses pt_entry_t internally, so don't use it here.

Fixed range checking for writing.  The partial page (if any) following
etext wasn't writable.
1997-01-15 19:24:12 +00:00
jkh
808a36ef65 Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore.  This update would have been
insane otherwise.
1997-01-14 07:20:47 +00:00
dyson
337e885768 When we changed pmap_protect to support adding the writeable
attribute to a page range, we forgot to set the PG_WRITEABLE
flag in the vm_page_t.  This fixes that problem.
1997-01-11 23:50:42 +00:00
nate
785c77a90e Moved pccard_configure() to the end of the configure() list. This
avoids problems with the PCIC controller grabbing an interrupt that
another card needs.

Closes PR: kernel/2405

Reviewed by:	bde
1997-01-11 17:41:36 +00:00
dyson
73dafb0b2c Prepare better for multi-platform by eliminating another required
pmap routine (pmap_is_referenced.)  Upper level recoded to use
pmap_ts_referenced.
1997-01-11 07:19:02 +00:00
kato
3dab297b1f Staticize the functions rtc_inb, rtc_outb, rtc_serialcombit, and
rtc_serialcom.  These functions are only used by PC98.
1997-01-10 17:11:09 +00:00
nate
68ca277fec Make the code more consistant by using the INTR*MASK macros througout the
code.

Reviewed by:	bde

[
Bruce suggest removing the macros completely, but I'm not up to that
task quite yet.
]
1997-01-08 16:12:56 +00:00
nate
a320d1c0ac Changed magic # 0xa0000 -> ISA_HOLE_START since it's now defined. 1997-01-08 05:56:55 +00:00
bde
87362192e8 Reenabled i586_optimized_copyin/out yet again. 1997-01-04 13:57:17 +00:00
bde
96974e95d6 Fixed context switching of FPU state after a fault in
i586_optimized_copyin/out.
1997-01-04 13:56:18 +00:00
bde
1fc3295f28 Fixed botched tables:
- the operands for bt, bts, arpl and `enter' were reversed.
- btr was reported as bts (with the correct operand order).
- cmpxchg was misplaced.  It was misplaced differently in the
  comments.  It is misplaced differently again in the i486 manual.
  I put it where the i586 manual and gas say it is.
- fucompp was misplaced.
- the rr table for(s) some versions of fstp, fcom and fcomp was non-null.
  This caused some invalid opcodes to be reported as "" instead of as
  "<bad instruction>".
- the word and long versions of the fi* instructions were reversed.
- aaa and daa were reversed.

Fixed bugs involving unusual operand sizes:
- 32-bit registers weren't always forced for bswap or for moves to and
  from special registers.
- the operand sizes weren't reported for [l]call or [l]jmp.
- displacements weren't truncated mod 2^16 when the operand size was
  16-bit.
- too-large displacements and offsets were fetched, and too-large
  offsets were reported, when the operand size was 16-bit.
- sign extended immediate bytes were extended too far when the operand
  size was 16-bit.

Fixed bugs involving usual operand sizes:
- 8-bit source registers weren't forced for mov[sz]b[wl].
- 16-bit source registers weren't forced for mov[sz]w[wl].
- immediate bytes were sometimes reported as sign extended even for
  byte operations.  Same for immediate words in word operations.
- the immediate byte was not reported as sign extended for `push'.

Finished Pentium support:
- cpuid, cmpxchg8b and rsm were missing.

Finished i287 support:
- fneni, fndisi and fsetpm were missing.  These are harmless nops on
  later FPUs.

Improvements:
- report invalid opcodes 0xd6 and 0xf1 using .byte.  They are special
  in not causing invalid operand exceptions when executed.
- report the immediate byte for unusual aam and aad instuctions.
  Immediate bytes other than 0x0a always worked and are documented to
  work on Pentiums.
1997-01-04 13:47:30 +00:00
se
41dcd5fc85 Add code to copy the LDT, if required.
This code was sent to me by Bruce Evans, and seems to fix some
possible kernel panic in case of an execution error. It did not
cause any problems on my system, but I did never observe the
problem this patch is supposed to fix, anyway.

This patch is a NOP, unless the kernel is built with "options
USER_LDT", and doesn't affect the GENERIC kernel for this reason.

I want to have it in 2.2: it fixes a bug ...

Submitted by:	bde
1997-01-02 01:43:09 +00:00
dyson
c232302d3f Let the VM system know that on certain arch's that VM_PROT_READ
also implies VM_PROT_EXEC.  We support it that way for now,
since the break system call by default gives VM_PROT_ALL.  Now
we have a better chance of coalesing map entries when mixing
mmap/break type operations.  This was contributing to excessive
numbers of map entries on the modula-3 runtime system.  The
problem is still not "solved", but the situation makes more
sense.

Eventually, when we work on architectures where VM_PROT_READ
is orthogonal to VM_PROT_EXEC, we will have to visit this
issue carefully (esp. regarding security issues.)
1996-12-30 05:31:21 +00:00
dyson
3a939018c3 Superficial clean-up of useracc calls. (The useracc usage of
B_READ/B_WRITE is bogus anyway.)  Might as well make the call prettier
anyway.
1996-12-29 02:29:41 +00:00
dyson
6a2a246ed7 Allow pmap_protect to increase permissions. This mod can eliminate
the need for unnecessary vm_faults.
Submitted by:	Alan Cox <alc@cs.rice.edu>
1996-12-29 02:27:07 +00:00
bde
8ad899fed7 Disabled i586-optimized copyin and copyout again. The fault handler
is still broken - it doesn't restore the floating point state.

2.2-BETA users should disable it using npx0 flags 0x04 the same as
2.2-ALPHA users should have.
1996-12-28 12:19:25 +00:00
phk
2e06aeb9e2 Give MFS_ROOT priority over NFS as root filesystem.
2.2 candidate.
1996-12-21 16:43:35 +00:00
se
f5fdb2cb53 Mention amd driver in comment regarding PCI drivers. 1996-12-21 02:09:04 +00:00
bde
6a187caa32 Only handle copyin/out/etc faults when not in an interrupt handler.
This makes unexpected faults (in an interrupt handler) more likely
to crash properly.  It could be done even better (more robustly and
more efficiently) using lazy fault handling.
1996-12-18 19:12:01 +00:00
bde
7e08a625a4 Fixed formatting of KERN_DUMPDEV.
Should be in 2.2.
1996-12-18 18:53:00 +00:00
bde
ebe93c01ac Moved the printing of the BIOS geometries from cpu_startup() into
configure() where it always belonged.  It was originally slightly
misplaced after configure().  Rev.138 left it completely misplaced
before the DEVFS, DRIVERS and CONFIGURE sysinits by not moving it
together with configure().

Restored the printing of bootinfo.bi_n_bios_used now that it can
be nonzero.
1996-12-18 15:03:10 +00:00
se
8de327d0b5 Add driver for AMD 53c974 SCSI (Tekram DC390/390T).
Remove MAX_LUN=2 option for NCR driver: FAILSAFE does
no longer imply MAX_LUN=1.
1996-12-18 01:30:19 +00:00
dg
3a2a572ca9 Fix nbuf calculation /4 -> /8. 2.2 already has it this way.
Reviewed by:	dyson
1996-12-17 04:19:41 +00:00
se
0a97aba6c1 Remove "options MAXLUN=2" since the ncr driver will probe for 8 LUNs
now anyway, even if compiled with FAILSAFE defined.
1996-12-15 16:31:18 +00:00
jkh
03be728217 Make the USERCONFIG_BOOT semantics closer to what was original
intended.
1996-12-14 22:18:43 +00:00
jkh
0e16e2c15f Close PR#2198:
I've added an installation from optical disk drive facility.
	This enables FreeBSD to be installed from an optical disk, which
	may be formatted in "super floppy" style or sliced into MSDOS-FS
	and UFS partitions.

	Note:  ncr.c should be reviewed by Stefan Esser <se@freebsd.org>
	and cd.c by Joerg Wunsch <joerg@freebsd.org> before bringing this
	into 2.2.

Submitted-By: Shunsuke Akiyama <akiyama@kme.mei.co.jp>
1996-12-13 07:55:14 +00:00
swallace
469f32f784 Soften range-check for LDTs.
Reviewed by:	bde
1996-12-12 17:57:50 +00:00
dg
954016a14b Fix allocation for exech_map to be 16*PAGE_SIZE rather than 32*PAGE_SIZE
so that it is scaled the same as exec_map (16 concurrent exec'ers).
1996-12-12 04:20:50 +00:00
dyson
a89cefdca9 One minor mod to set the limit of nbufs to 2048 from 1536. More important
fix to exech_map, it used 32*ARG_MAX, and it should use 32*PAGE_SIZE.
1996-12-11 05:52:15 +00:00
dyson
e198c2084e Clean-up of the new buffer kva allocation code. Also, there was an
error in the !BOUNCE_BUFFERS case.
1996-12-05 04:28:52 +00:00
bde
12ce4505ad Removed all references to b_cylinder (aka b_cylin). It was evil and
hasn't been used for a year or two since disksort() started sorting
on b_pblkno.
1996-12-01 16:34:41 +00:00
dyson
e30058b4a4 Fix a problem with the new buffer_map management code. Additionally,
decrease the size of buffer_map to approx 2/3 of what it used to be
(buffer_map can be smaller now.)  The original commit of these changes
increased the size of buffer_map to the point where the system would
not boot on large systems -- now large systems with large caches will
have even less problems than before.
1996-12-01 15:46:40 +00:00
bde
3d7b534ed3 Reenabled i586-optimized copyin/out.
Should be in 2.2.  Don't put it there for a while.
1996-11-30 14:08:44 +00:00
bde
9ed15bd206 Fixed EFAULT handling in i586_copyin() and i586_copyout(). Use a
consistent stack frame in fastmove() so that only one new fault handler
is necessary.

Should be in 2.2.  Harmless until the i586 versions are reenabled.
1996-11-29 14:32:30 +00:00
bde
fbc33504d1 Don't print bootinfo.bi_n_bios_used in cpu_startup() since it is always
zero because no drivers have had a chance to change it.
1996-11-29 13:19:26 +00:00
bde
fee89092b7 Don't clobber the SIGCONT bit in the signal mask in sigreturn(). Use
the `sigcantmask' macro to get the correct set of unmaskable signals.

Found by: NIST-PCTS.
1996-11-29 13:12:14 +00:00
phk
cab2597253 Make a kernel with DDB but without sio possible again. This is only
a stopgap measure, a more complete solution is on somebodys whiteboard
(and we all know that THAT means :-).

Reviewed by:	pst
1996-11-25 18:39:25 +00:00
dyson
20b553ba68 Improve the caching of small files like directories, while not
substantially increasing buffer space.  Specifically, we double
the number of buffers, but allocate only half the amount of memory
per buffer.  Note that VDIR files aren't cached unless instantiated
in a buffer.  This will significantly improve caching.
1996-11-17 02:11:01 +00:00
gibbs
de87a31e4c Since there have been so many reports of the Memory Mapped I/O to the
aic7xxx cards failing on certain motherboards, reverse the logic used to
control this feature.  AHC_FORCE_PIO is replaced with AHC_ALLOW_MEMIO.
GENERIC no longer needs to specify the AHC_FORCE_PIO option since this is
the default.
1996-11-16 01:09:20 +00:00
bde
4b71b76d7e Disabled i586-optimized copyin and copyout. They usually panic if the
user supplies a bad address, because they push a lot of stuff that the
fault handler doesn't know about onto the stack.  This has been broken
for more than half a year despite being tested for almost half a year
in -current.
1996-11-15 20:27:14 +00:00