Commit Graph

5189 Commits

Author SHA1 Message Date
jmc 9185cf1b34 Add mtrr.h to INCS list to get installed on a make includes 2001-09-12 04:44:21 +00:00
chris 0e7661f023 Update pmap_update to now take the updated pmap as an argument.
This will allow improvements to the pmaps so that they can more easily defer expensive operations, eg tlb/cache flush, til the last possible moment.

Currently this is a no-op on most platforms, so they should see no difference.

Reviewed by Jason.
2001-09-10 21:19:08 +00:00
fvdl 8e76d96c85 wrap decl in #if NAGP > 0 2001-09-10 10:54:46 +00:00
fvdl 5f5910616d Oops, didn't mean to enable agp by default yet. 2001-09-10 10:19:12 +00:00
fvdl 927ade4753 Add agp* at pchb? 2001-09-10 10:18:37 +00:00
fvdl 5b6f2046cc Add MTRR option. 2001-09-10 10:17:29 +00:00
fvdl 30bd1cf759 Clean up 'volatile' MTRRs owned by a process when it exits. 2001-09-10 10:14:57 +00:00
fvdl 5b0257ed49 Backend for MTRRs on PII and up or Athlon CPUs. The only other implementation
is on the AMD K6.
2001-09-10 10:14:21 +00:00
fvdl 86b144f468 Syscall frontend for mtrr functions. 2001-09-10 10:13:04 +00:00
fvdl 38db8748a4 Initialize MTRRs on startup if they're enabled. 2001-09-10 10:12:16 +00:00
fvdl 78742dd0e0 Add flag to indicate that a process set some mtrrs that need to be
cleaned up automatically on exit.
2001-09-10 10:11:21 +00:00
fvdl c823d05ca0 Add definitions for mtrr syscalls. 2001-09-10 10:10:57 +00:00
fvdl e0a68652a8 MTRR include file, based on the one by Bill Sommerfeld from the i386 mp
branch.
2001-09-10 10:10:33 +00:00
fvdl a46fbfc5a8 Add agp device. 2001-09-10 10:08:40 +00:00
fvdl d106bb1f19 Add agp files (enabled only on i386, but the main code itself should not
be MD, so could be enabled on other platforms).
2001-09-10 10:08:10 +00:00
fvdl 2c8172cbd3 Attach agp gart support @ pchb. Not very clean, but agp support may
be spread over several devices, and the phcb is usually the main one.

Add agp_machdep.c file which implements MD agp functions (currently
just agp_flush_cache).
2001-09-10 10:06:54 +00:00
perry edea1a2c17 Make it possible to query each battery individually by making the
APM_IOC_GETPOWER ioctl read/write. Setting the batteryid in the passed
structure returns the data for just that battery. The old ioctl
remains for binary compatibility but has been renamed.

Itojun already did the hard work -- I just added a couple of lines.

reviewed by: thorpej
2001-09-10 05:23:30 +00:00
perry fe9074d8dc boost maximum MAXUSERS to 128 2001-09-09 18:36:36 +00:00
tls 3d4146e21f Add asm versions of blowfish and des transforms for i386.
This also involved updating the in-kernel DES functions to correspond
to the versions in our in-tree OpenSSL, because the des_SPtrans table
has changed; the asm code will not work with the old permutation table!

C and i386 asm code for the DES, 3DES, and Blowfish CBC modes is also
included; it is not currently built as the ESP processing in esp_core.c
splits the CBC operation and the cipher transform apart.  Hopefully that
will be fixed as there is a substantial performance improvement to be had
from doing so.  It will remain necessary to use the C version of the
Blowfish CBC function on some i386 machines, however, as the asm version
uses bswapl, which ony 486 and later processors have.  The DES CBC code
doesn't have this problem.

Finally, change esp_core.c to use the ecb3_encrypt function instead of
calling ecb_encrypt three times; this improves performance a bit, in
particular in the asm case.
2001-09-09 11:00:59 +00:00
enami d182b51372 Don't print extra space when printing information about cpu of unknown vendor.
# and minor stylistic change while i'm here.
2001-09-09 02:10:44 +00:00
enami bab65a8da3 Mix random data directly into the pool and increase entropy instead of
estimating entropy with polling based timing.
2001-09-09 00:48:54 +00:00
lukem cb33448ead use options SPACE TAB 2001-09-07 00:18:27 +00:00
augustss 283601a95c Comment out tr at pcmcia. 2001-09-06 13:29:29 +00:00
thorpej 47920741b0 Implement bus_space_mmap(). 2001-09-04 02:37:08 +00:00
thorpej f5c35acc6c Eliminate a needless test, pointed out by Bill Sommerfeld. 2001-09-03 17:49:31 +00:00
drochner fd065bcd87 add wsfont pseudo device 2001-09-03 17:18:22 +00:00
atatat 97c67a9bae Add bridge pseudo devices to GENERIC configs 2001-09-01 21:52:23 +00:00
ad d46bbf4926 In the absense of any objection, move the rbus I/O range to 0x600-0x700
in the ARMADA config. On the M700 at least, the SMBus host controller lies
it 0x4000 (the beginning of the range allocated by default to rbus), and
stomping all over it causes bad things to happen.
2001-08-28 09:25:52 +00:00
augustss 494454a87d Comment out the hme driver; it's not totally MI yet. 2001-08-27 22:25:42 +00:00
augustss b5937bf1d0 Add some missing network drivers. 2001-08-27 22:23:47 +00:00
kanaoka 3b4f143fd8 - Correct a value of subend.
Pointed out by enami tsugutomo <enami@but-b.or.jp>.
2001-08-27 13:02:12 +00:00
augustss 0432180062 Add 7 new PHYs. 2001-08-27 12:08:00 +00:00
haya 31d98218e8 Add support for ALi M1543 in pcibios. 2001-08-27 08:21:20 +00:00
chs 9fa41ab3b9 use cli/sti instead of splhigh/splx for MCOUNT_ENTER/MCOUNT_EXIT.
this makes clearer how much time mcount() is really taking.
2001-08-23 06:17:00 +00:00
hubertf 5366e197e2 More comment changes: 90x[B] -> 90x[BC] 2001-08-22 15:39:04 +00:00
hubertf d08ed3cb49 90x[B] -> 90x[BC] 2001-08-22 15:28:57 +00:00
enami b605664b49 Include bsd.own.mk a bit earlier so that make cleandir works. 2001-08-18 12:53:58 +00:00
enami cebeb402de Fix white space usage. 2001-08-18 12:48:59 +00:00
augustss 596db62c43 Alphabetize two items. Fix one whitespace glitch. 2001-08-14 13:15:45 +00:00
hubertf 1fabbfed1a Sync with GENERIC,v 1.414
XXX We really need a better way to do such things...
XXX For now, please make sure to update this too when editing GENERIC!
2001-08-14 00:27:03 +00:00
itojun a66997843c sync with GENERIC 1.414. LAMB has no working printer port. 2001-08-13 11:21:40 +00:00
jdolecek c495131fe3 Move _insque()/_remque() to libkern. Once remaining uses would
be converted to <sys/queue.h> macros, _insque()/_remque() would be eliminated
altogether.
2001-08-12 08:35:31 +00:00
chs 7c661278ee update some comments. 2001-08-12 00:20:32 +00:00
thorpej 013d3a1013 Make some APMDEBUG verbosity only verbose if the INFO debug flag is set. 2001-08-06 07:59:39 +00:00
enami 4b5c6b86d6 Minor tweak to build kernel under a.out environment. 2001-08-04 00:54:30 +00:00
thorpej 518ad20222 Upon further reading of the manual, don't save the MXCSR-at-last-exception.
Its status bits are sticky, and unaffacted by FNINIT.
2001-08-03 01:46:08 +00:00
thorpej 099e93139b In setregs(), initialize the process's MXCSR to the reset-default
value as documented in the IA-32 Instruction Set Reference (in the
description of the LDMXCSR insn).
2001-08-03 01:24:39 +00:00
thorpej cfb1fd004d Don't clobber the MXCSR when we fake FNINIT. 2001-08-03 01:21:34 +00:00
thorpej f72ee0a9c6 Remember the MXCSR at last-exception the way we do the FPU SW/TW. 2001-08-03 01:11:49 +00:00
groo 3f5acd41c2 Remove trailing "U" on KERNBASE introduced in last commit.
Breaks assembly of locore.
2001-08-03 01:03:10 +00:00
thorpej 6e331fdd9f Define KERNTEXTOFF in terms of KERNBASE. 2001-08-03 00:47:59 +00:00
thorpej 8f308d671e Adapt to new FPU save format in PCB. 2001-08-03 00:41:46 +00:00
thorpej f0449fd933 - Rename cpu_use_fxsave to i386_use_fxsave.
- If we detect SSE/SSE2 support in the CPU, enable SSE exceptions
  and set i386_has_{sse,sse2} as appropriate.
- Expose i386_use_fxsave and i386_has_{sse,sse2} through sysctl
  as machdep.{osfsxr,sse,sse2}.
2001-08-02 22:04:28 +00:00
thorpej 99a7f640fe Add support for saving/restoring SSE/SSE2 state using FXSAVE/FXRSTOR.
Reviewed by Frank.
2001-08-02 21:04:43 +00:00
bjh21 ad2c12a28d Bump version numbers of all bootloaders that use loadfile/ELF, to account for
my changes to symbol loading.  I should probably have done this at the time,
but it's better late than never.
2001-08-02 12:24:05 +00:00
ad aaf3c7c88b Hook in the mly control interface on i386. 2001-08-01 20:54:16 +00:00
thorpej 4b584bf5bb Add several more Intel cache info entries, and fetch the CFLUSH
line size if we have the CFLUSH insn.
2001-08-01 19:50:48 +00:00
thorpej ebbd9cd428 Add some more CPUID feature bits. 2001-08-01 18:47:38 +00:00
haya 3d57cec099 Add new entry for intel ICH2 LPC interrupt router. It has
upper compatibility with piix.
2001-08-01 09:11:19 +00:00
jdolecek 98cdfa790c fix typo for previous in I386_CPU case 2001-07-31 22:52:44 +00:00
thorpej c43f8649d2 Set up function pointers for copyin/copyout in preparation for
adding optimized versions for various CPU classes/models.

Split the 386 version of copyout into a separate routine, and
add a 486 version that doesn't have the class/page-writeability
check.
2001-07-31 18:28:58 +00:00
jdolecek 2b7d2123cd Make console polling (cnpollc/cngetc) work on IBM PS/2 keyboard controller
using level triggered interrupts, which livelocks calling intr routine
if the data register is not read in the interrupt routine, as it's case
when polling after interrupts are enabled during boot.

Block all interrupts when polling for keypress, and modify intr routine
to read and store value from data register. The latter one is to avoid
losing a keypress when one would manage to press a key when kernel is
not in spl-guarded code section.

Tested with classic pccons, 'pcconskbd at pckbc' and 'pckbd at pckbc'
configurations, on i386.
2001-07-31 13:15:28 +00:00
jdolecek 2d5bc65e0b enable KERNFS, it's used by installation 2001-07-30 21:50:48 +00:00
jdolecek b0f8b119a2 fix comment 2001-07-30 20:51:29 +00:00
ad 3b1828355b Add a driver for Mylex AcceleRAID and eXtremeRAID controllers with v6
firmware. Based off the FreeBSD driver, and re-worked by tls, erh and I.
2001-07-30 19:59:04 +00:00
jdolecek b0178f25e3 Move GENERIC_PS2 to GENERIC_PS2TINY, update comments to reflect this config is
intended for small memory machines.
Update INSTALL_PS2 appropriately.
2001-07-30 18:24:07 +00:00
jdolecek 3531778254 add MCA stuff, for IBM PS/2 2001-07-30 18:03:54 +00:00
christos b92cbe7184 now that we know what the traps mean, print their name in debug mode. 2001-07-29 19:31:41 +00:00
drochner 23204e4b5f document 3c90xb support
use default settings which make more sense (for me)
2001-07-25 12:51:44 +00:00
drochner a3cdd518ad make it compile after i82557reg.h changes 2001-07-25 12:47:34 +00:00
wiz d2cede024b Replace some memcpy()s with probably overlapping arguments with memmove()s. 2001-07-24 22:29:07 +00:00
itojun 71aa31a75a support multiple batteries (currently only # of batteris is visible -
need to tweak ioctl API more).  PR 10545.
2001-07-22 16:05:17 +00:00
wiz a9356936b4 seperate -> separate 2001-07-22 13:33:58 +00:00
jdolecek 044d2dfafc Move former PS2 config to GENERIC_PS2, mostly so that it fits the
installation snapshot build machinery well; also improve some comments.
Adjust INSTALL_PS2 config accordingly.
2001-07-21 16:26:46 +00:00
jdolecek c55c49e5e3 Make a bit more like GENERIC - add I586_CPU, NTP, SYSVMSG, SYSVSEM, LKM,
CD9660, INET6, though bunch of entries enabled in GENERIC is commented out,
mostly due they being not appropriate for IBM PS/2.
2001-07-21 16:12:16 +00:00
jdolecek c013461507 add pcmb\* 2001-07-21 13:22:05 +00:00
jdolecek 230adf61d8 Installation kernel for PS/2 machines. Only wrapper around
PS2 config.
2001-07-21 13:16:23 +00:00
jdolecek 0be60fb28d remove MEMORY_DISK_HOOKS stuff 2001-07-21 13:15:00 +00:00
thorpej babefc5331 Add BUS_DMA_READ and BUS_DMA_WRITE flags, that hint the back-end
at dmamap load time that the mapping will be used for a unidirectional
transfer of the specified direction.
2001-07-19 15:32:10 +00:00
mrg ef38b7e874 fix a statementless label that gcc-current picked up. 2001-07-17 13:53:15 +00:00
mrg 6d1680019c use a shift instead of a divide. 2001-07-17 13:52:24 +00:00
fvdl d68e2c3f12 Redefine evil tXXX register offset defines into the trapframe structure
to use offsetof. These should be completely nuked.

Fixes math_emulate lossage.
2001-07-17 08:13:06 +00:00
thorpej 091e29f94f In i386_softintr_lock(), use splserial() rather than splhigh(),
because of splhigh() braindamage on the i386 port.

Fixes port-i386/13038 and port-i386/12985.
2001-07-16 16:53:00 +00:00
christos 825843808a add MACHO_MACHDEP_CASES 2001-07-14 03:05:51 +00:00
christos d6cbc8a99d add mach/macho files 2001-07-14 02:18:02 +00:00
christos 747d93e317 new i386 files for macho and mach. 2001-07-14 02:04:25 +00:00
christos 75dabe22c7 Use global descriptor 7 for mach traps. Unfortunately this is already
used by apm 16 bit code segments so we cannot have both at the same time.
2001-07-14 02:02:45 +00:00
christos 661d4f4564 Add COMPAT_MACH and EXEC_MACHO. Code works enough to start running a binary,
but we need to implement a few mach traps before the dynamic linker actually
works.
2001-07-14 02:00:39 +00:00
kristerw 42bb92201c Removed redundant (and slightly wrong) extern declaration of emul_svr4
(newer gcc complains that only one of the declarations are const.)
2001-07-13 23:32:26 +00:00
itojun ceb069ef00 sync with GENERIC 1.410. mention pkgsrc/sysutils/lambd. 2001-07-13 23:00:32 +00:00
soren ce3293accb ncr(8) is gone from the tree, so remove ^#ncr*. 2001-07-09 15:05:22 +00:00
perry 4ae18c882f Since setrunqueue and remrunqueue now have documentation, remove my
obnoxious comments saying they should be documented, and reference
setrunqueue(9) and remrunqueue(9) instead. Thanks Nathan!
2001-07-08 19:33:44 +00:00
abs 8b9a19cb3d Leave TCP_DEBUG commented out _everywhere_.
Time to replenish clueon charge with caffine...
2001-07-08 16:36:11 +00:00
abs 01b024cd5b Standardise TCP_COMPAT_42 as commented out, grouped with other COMPAT options,
and with the comment '4.2BSD TCP/IP bug compat. Not recommended'
Add commented out 'TCP_DEBUG # Record last TCP_NDEBUG packets with SO_DEBUG'
(All hail amiga and atari which make some attempt to automate the
multiplicity of config files...)
2001-07-08 16:32:12 +00:00
perry c3748d9175 b*()->mem*() 2001-07-07 22:57:57 +00:00
tsutsui df016928f8 Remove (commented out) ncr* at pci? lines. 2001-07-07 17:09:47 +00:00
perry 0d05392733 bzero->memset, bcopy->memcpy 2001-07-07 05:58:12 +00:00
mcr 97eac1b54c context argument added to pci_device_foreach(). 2001-07-06 18:04:58 +00:00
mcr b44d7d55a5 added some debugging to error message in pci_intr_map(). 2001-07-06 18:04:22 +00:00
mcr 07ba5352f1 extra argument to pci_device_foreach(). 2001-07-06 18:03:47 +00:00
mcr 8c020dd2f7 when fixing up buses, keep track of the parent of each bus,
and the pcitag to access the primary side of that bridge.
2001-07-06 18:03:17 +00:00
mcr 6244484599 added context parameter to pciaddr_resource_{reserve,allocate}
and to pci_device_foreach().
	added new function pci_device_foreach_min().
2001-07-06 18:02:35 +00:00
mcr b76e5c586a added some error checking on return from rbus_new_root_share(). 2001-07-06 18:01:26 +00:00
mcr 74ed6c9ddb new config file for M700 notebook with Cardbus and CBII support 2001-07-06 18:00:50 +00:00
hubertf 9f773decdf fix typo in comment 2001-07-05 20:54:28 +00:00
itojun 1e8074db2e sort boot flag to alphabetical order. add -c. 2001-07-05 00:58:45 +00:00
soren 882f3b1bd2 Const'ify bootblk_commands[] to match lib/libi386.h change. 2001-06-27 22:58:32 +00:00
darcy 685fb6365d Added the commented lines with the defaults for the system values associated
with System V semaphores.
2001-06-27 13:40:12 +00:00
thorpej e26fe5cc01 Compute the VM_* constants directly, rather than hard-coding
them (with the formulas in comments).
2001-06-25 16:28:48 +00:00
sommerfeld f00786e7ab restore fs and gs from sigcontext in sigreturn (correct oversight in
previous commit).
2001-06-19 15:54:48 +00:00
wiz f3f6c5b675 `accessible' only has one `a'. 2001-06-19 12:52:20 +00:00
fvdl b4b5dc533d Add fxsr CR4 bits. 2001-06-19 09:12:49 +00:00
thorpej 9c9eba63ec Add gsip(4), gphyter(4), and sf(4) drivers. 2001-06-18 22:45:54 +00:00
sommerfeld b10656ba32 Delete dead code.
Mask segment registers from trap frame with 0xffff for cleanliness.
2001-06-18 03:33:59 +00:00
sommerfeld 926b6ff132 since seg regs are 16 bits, toss high order bits from the trapframe 2001-06-18 03:32:14 +00:00
christos 59abdecf4b Add a linux specific trapsignal() function. This is just a passthrough
on all platforms but the i386. On the i386 we look at T_PROTFLT and send
a SIGSEGV instead of SIGBUS. This makes allegro lisp 5.0 and pvs (a proof
verification system) to work.

XXX[1]: We need to go through each architecture and verify that we send
        the correct signal on each trap type.
XXX[2]: trap.c on all other architectures but i386 needs to be modified
        to s/trapsignal/(*p->p_emul->e_trapsignal)/g
2001-06-18 02:04:42 +00:00
christos 0f380fac15 Add an e_trapsignal member to struct emul, so that emulated processes can
send the appropriate signal depending on the trap type.
2001-06-18 02:00:48 +00:00
sommerfeld 7e7d262c34 Add %fs/%gs to trap frame and save/restore them on
trap/interrupt/syscall entry from userspace.

Remove special-case "by hand" validation of fs/gs register values as
well as special handling of them in various signal handling paths.

Now, like %ds and %es, they are validated by the hardware on return to
userland.

This paves the way for the use of %fs for per-cpu data on
multiprocessor systems, and fixes an otherwise difficult-to-fix
interaction between threads/clone(2) and USER_LDT.

Discussed in advance with Frank van der Linden.
2001-06-17 21:01:32 +00:00
sommerfeld d3249871b5 Rework how user-mode instruction and stack fetches are done.
While we're in here, catch another vm86 protocol botch.
2001-06-15 05:43:40 +00:00
thorpej 8eb3b954f1 Don't need to prototype child_return() here, it's in <sys/proc.h>. 2001-06-14 22:56:55 +00:00
wiz c03a48d64f withough -> without 2001-06-13 10:45:57 +00:00
perry df452bb9b8 clean up some comments, per a request from sommerfeld 2001-06-11 22:56:26 +00:00
sommerfeld 0463a8a3d7 Replace magic numbers in trap code with offsetof()
Deal better with traps during register restore.
Explain a bit more about what's going on here.
2001-06-11 20:04:02 +00:00
sommerfeld b55c21bb0d Copy in segment descriptors all at once rather than one at a time. 2001-06-10 17:30:41 +00:00
simonb e5bd00e48d For ports that wire up pciide in compatibility mode, have
them define __HAVE_PCIIDE_MACHDEP_COMPAT_INTR_ESTABLISH
in pci_machdep.h and pciide_map_compat_intr() only calls
pciide_machdep_compat_intr_establish() if that preprocessor
define exists.

Ports that don't need to do this no longer need to supply a
dummy function.
2001-06-08 04:48:54 +00:00
lukem 178aeb74a0 work around lint issue (inspired by similar work in sparc port) 2001-06-07 04:44:05 +00:00
thorpej ec291b503a Allow the text address to be set with makeoptions. 2001-06-05 05:05:46 +00:00
tsutsui ad811093a3 Add iha at pci . 2001-06-03 13:46:57 +00:00
chs 821ec03ed9 replace vm_map{,_entry}_t with struct vm_map{,_entry} *. 2001-06-02 18:09:08 +00:00
jdolecek 4db9600c94 use hd0a instead sd0a in 'help' command example 2001-06-02 14:56:13 +00:00
jdolecek 40033835d8 Comment DIAGNOSTIC, DEBUG out
Use the 'root on ? type ?' config by default, leave the nfs one commented out,
add line for root on ed0a
2001-06-02 10:37:27 +00:00
jdolecek f6af05f407 Back the last revision off, upon Bill Sommerfeld's request 2001-06-02 00:46:00 +00:00
jdolecek 5dbe622e77 When polling, raise priority level to tty, to block keyboard interrupts
when the system is "warm", i.e. interrupts are not blocked anymore.
This seems to be necessary on my PS/2 Model 70 keyboard - without this,
system ends up in endless loop calling the keyboard intr routine if a key
is pressed when polling. This _may_ be just specific to level-triggered
interrupts PS/2 MCA uses, though it's more likely it's just the way the
particular keyboard controller works.

Discussed on tech-kern@.
2001-06-02 00:01:04 +00:00
jdolecek b001ce9b90 g/c COMPAT_OLDBOOT from bootblocks, sprinkle some const
bump bootblock version to 2.10
2001-06-01 23:26:30 +00:00
itojun 5fbaedc40d sync with GENERIC 1.405 2001-06-01 16:50:31 +00:00
lukem d84d2c6c85 add missing #include "opt_kgdb.h" 2001-05-30 15:24:23 +00:00
mrg 67afbd6270 use _KERNEL_OPT 2001-05-30 11:57:16 +00:00
mrg 3783ca5d30 define _KERNEL_OPT as well as _KERNEL. we will use this in the future to
get kernel "opt_foo.h" headers, rather than _KERNEL && !_LKM.
2001-05-29 02:20:20 +00:00
sommerfeld 7d1ef74930 Fix kern/13049: missing unlock on failure exit from pmap_enter() 2001-05-27 14:31:27 +00:00
chs e44e9dec8a replace vm_page_t with struct vm_page *. 2001-05-26 21:27:02 +00:00
sommerfeld bdecf91bef Add infrastructure to allow ports to override build of in6_cksum.c by
enabling the INET6_MD_CKSUM option, which is defopted into opt_inet.h.
Supply an i386 assembly version of in6_cksum in in_cksum.s; on
P6-family cpu's, this is is roughly 20% faster than the C code in
sys/netinet6 for ethernet-mtu-sized mbufs in L1 cache.  Turn on
INET6_MD_CKSUM in i386/conf/std.i386

While we're here, also nuke some now-obsolete XXX comments from
in_cksum.s.
2001-05-26 17:46:11 +00:00
chs 118ddca24a replace {simple_,}lock{_data,}_t with struct {simple,}lock {,*}. 2001-05-26 16:32:40 +00:00
oki 0cc97f1b55 Fixed panic on the cpu made by unknown vendor,
such as Transmeta Crusoe.
2001-05-25 04:39:33 +00:00
sommerfeld e171bbe08e Correct handling of nxt==0 (skip pseudoheader) case.
(It helps a lot if registers contain the expected values)
While we're in here, also correct parameter names in the lint goo.
2001-05-23 15:56:51 +00:00
sommerfeld 8676150cb7 In kern/12554 workaround in pmap_page_remove, don't forget to unmap
(and unlock) the other pmap's pte's before continuing to the next
pmap.  Avoids pmap lock leaks (generates LOCKDEBUG warning, deadlocks
MULTIPROCESSOR).
2001-05-23 04:25:35 +00:00
perry cdc294674b add LINTSTUBs 2001-05-21 06:13:12 +00:00
perry c8057dc287 remove needless externs in front of function prototypes 2001-05-21 04:47:35 +00:00
jdolecek e3daef46ec Add some IBM PS/2 support bits:
* recognize PS/2 L40 via biosmca() and biosmca_ps2model in gatea20.c, instead
  of being a compile time option
* if the system is PS/2 with MCA bus, map DTYPE_ESDI disks to ed(4) for
  COMPAT_OLDBOOT

The new code is conditional on SUPPORT_PS2 define, which is on by default
for biosboot-based bootblocks.
2001-05-19 18:15:14 +00:00
jdolecek 2a7ff4a9ab Add biosmca.S if I386_INCLUDE_PS2 variable is "yes" (default, overridable) 2001-05-19 17:53:30 +00:00
thorpej e6d4fd2a55 Don't compute pseudo header checksum if nxt == 0. 2001-05-19 00:36:37 +00:00
lukem 9c92176b44 don't bother providing duplicate code for {read,write}_eflags() since it's in cpufuncs.h anyway 2001-05-17 16:35:06 +00:00
perry 6859233343 bcopy is dead on i386. the one use left in the kernel was in locore.s
itself, and that got replaced with a call to memcpy. Ross deserves
most of the credit.
note that if you've seen bcopy elsewhere in the kernel, systm.h
defines it as a macro...
2001-05-16 22:09:36 +00:00
kanaoka aa09aa91c7 Search the entire device-space of bus 0 if the router device
address is set to 000:00:0, and the compatible router entry
is undefined.

  Patch PR port-i386/12880 by Dave Sainty <dave@dtsp.co.nz>.
2001-05-16 08:10:36 +00:00
perry 4201bf1ae0 nuke bcopyw and bcopyb. It is unclear what they were for, and nothing
called them.
2001-05-16 05:01:28 +00:00
perry e266791dab Add a couple of include LINTSTUBs and fix some LINTSTUB prototypes.
Still exits hard because of bcopy/memcpy problem, but that is a
legitimate problem. bcopy should go and be replaced with memcpy to fix this.
2001-05-16 04:18:52 +00:00
lukem f1362289d2 changes to lint invocation:
- sort lint flags
- add flags -F (full pathname), -g (gcc extensions; XXX for now)
- lint CFILES before LINTSTUBS
- don't -Dvolatile=
- don't grep -v 'static function.*unused'
2001-05-16 03:48:45 +00:00
perry 098ba22210 1) Add infrastructure to generate lint stub files from stylized
comments in .S files.
2) Update "make lint" target to use generated lint stubs.
2001-05-15 22:34:36 +00:00
perry e69a194db2 1) Add stylized comments (used by new lint stub generation
infrastructure) to indicate what C stubs should be generated for
   various entry points.
2) Add comments noting various artifacts discovered while performing
   task 1), including a bunch of stuff that may very well no longer be
   used.
2001-05-15 22:31:38 +00:00
lukem 103a49d158 delint: don't try & return something from void eisa_intr_disestablish() 2001-05-15 15:07:37 +00:00
lukem 33e8c1a04f delint: don't try & return something from void pci_intr_disestablish() 2001-05-15 14:48:57 +00:00
jdolecek a97bf5e6b4 Change biosmca() to export the model number via biosmca_ps2model
variable, if the machine has a MCA bus according to info returned
by BIOS (i.e. on machines without MCA bus, biosmca_ps2model would be zero).

biosmca() is expected to be called on beginning the initialization,
and biosmca_ps2model is then used for further checks.
2001-05-14 22:14:47 +00:00
jdolecek 6c225c676c Compact the BIOS CFG printout 2001-05-14 14:14:09 +00:00
tron 74cc245bbe Fix typo: Pnp -> PnP 2001-05-10 22:12:38 +00:00
kleink dd4df24b01 Make the set of machine state restored by setmcontext() identical to that of
sigreturn().
2001-05-09 20:31:00 +00:00
ad ae9cc4fa8a Add an (untested) EISA front-end for the `mlx' driver. 2001-05-06 19:54:59 +00:00
jdolecek 3cacf40566 recognize ed as boot device 2001-05-05 17:53:59 +00:00
jdolecek 97500f67b8 print the model numbers slighly different way 2001-05-04 07:22:07 +00:00
thorpej 5871a60118 The AMD-K5 Model 0 gets the PGE bit in the CPU features word wrong
using the APIC bit instead, according to the AMD Processor Recognition
App. Note.  Add a fixup routine to patch up cpu_feature in this case.

XXX Need a way to kick the pmap to enable pmap_pg_g -- look at how the
MP branch deals with this.
2001-05-04 03:19:33 +00:00
thorpej 61ac6af20b - Fix a couple of botches in the AMD L2 cache info fetching.
- Start with 2 initial color bins, and recolor once we've determined
  the number of color bins based on the formula:
	(largest_cache_size / associativity) / PAGE_SIZE
2001-05-03 16:55:32 +00:00
thorpej 7049d99bc5 Oops, forgot to fill in function pointer in previous. 2001-05-03 16:04:26 +00:00
thorpej 5c15afd718 Rearrange the cache info fetching code some more, and add support
for fetching cache info for AMD processors.
2001-05-03 00:35:37 +00:00
thorpej f89ed957f1 - Keep cache/tlb info in the cpu_info structure.
- Add "associativity" to the cache_info structure.
- Add a (*cpu_cacheinfo)() function pointer, like we have a
  (*cpu_setup)() function pointer.  Cache info in the `cpuid'
  is vendor-specific.
2001-05-02 21:07:01 +00:00
jdolecek 7cb5602067 Nuke biosboot_ps2 2001-05-02 13:43:10 +00:00
jdolecek 7e111aa959 Add function which uses bios call to get system configuration; this can
be used for presence of MCA bus, if ever needed to be done in bootblocks.
Not used at the moment, but may be in future.
2001-05-02 13:41:07 +00:00
jdolecek 63958eee01 One item off TODO list - we check for MCA bus presence via bios call 2001-05-02 13:20:31 +00:00
jdolecek 0d6051b7f7 Find out the presence of MCA bus via bioscall(9).
g/c some unneeded stuff, make comments more accurate.
2001-05-02 13:18:34 +00:00
jdolecek 8aa43b5a54 The system configuration block structure doesn't need to be public 2001-05-02 13:16:33 +00:00
jdolecek 4caa2e3629 regen: add support for getting %es value from the bios call 2001-05-02 13:13:48 +00:00
jdolecek 0b26347639 Add support for getting %es value from the bios call. 2001-05-02 13:12:45 +00:00
jdolecek 9b12c80149 Move the initialization of bioscall stuff from cpu_startup() to init386(),
so that bioscall(9) is callable from mca_busprobe().
Only print the "biostramp installed @ ..." message #ifdef DEBUG_BIOSCALL.
2001-05-02 13:08:06 +00:00
scw 2963ff5c58 Add `l_poll' to `struct linesw' and provide an xxxpoll() entry point
in each tty driver to indirect through it.

This allows tty line-disciplines to handle poll(2) system calls.
2001-05-02 10:32:08 +00:00
thorpej cf67ac7122 Per discussion w/ chuck and chuck, restructure the md page stuff
to use a structure called "vm_page_md", and use __HAVE_VM_PAGE_MD
and __HAVE_PMAP_PHYSSEG.
2001-05-01 02:19:13 +00:00
lukem b8f8cf0235 remove some lint, including ansifying some inlines 2001-04-30 01:17:30 +00:00
thorpej 2b27ac7a99 Add a VM_MDPAGE_MEMBERS macro that defines pmap-specific data for
each vm_page structure.  Add a VM_MDPAGE_INIT() macro to init this
data when pages are initialized by UVM.  These macros are mandatory,
but ports may #define them to nothing if they are not needed/used.

This deprecates struct pmap_physseg.  As a transitional measure,
allow a port to #define PMAP_PHYSSEG so that it can continue to
use it until its pmap is converted to use VM_MDPAGE_MEMBERS.

Use all this stuff to eliminate a lot of extra work in the Alpha
pmap module (it's smaller and faster now).  Changes to other pmap
modules will follow.
2001-04-29 22:44:31 +00:00
fvdl 9554615dfb Set NMBCLUSTERS to the old value of 256 here, as the new default
will only be a waste of space for this configuration.
2001-04-29 12:48:12 +00:00
thorpej cb648add29 The idle loop page zero'er no longer needs to do uncached access
now that we have page coloring.
2001-04-29 04:42:04 +00:00
fvdl 70316ad6e1 Remove COMPAT_14. 2001-04-29 00:34:11 +00:00
kleink fe3c9ceaf7 * Move definitions of exact-width integer types from <machine/types.h>
to <sys/types.h> and <sys/stdint.h>.
* Add a new C99 <stdint.h> header, which provides integer types of
  explicit width, related limits and integer constant macros.
* Extend <inttypes.h> to provide <stdint.h> definitions and format
  macros for printf() and scanf().
* Add C99 strtoimax() and strtoumax() functions.
* Use the latter within scanf().
* Add C99 %j, %t and %z printf()/scanf() conversions for
  intmax_t, pointer-type and size_t arguments.
2001-04-28 15:41:28 +00:00
jdolecek 3367b801f2 Add driver for SKNET Personal and MC+ - AMD Lance 7990 based ethernet cards.
Both models tested and seem to be quite stable and fast.

Thanks to:
- Hans Hubner <hans@Huebner.org> for giving me the cards for testing
- Georg Klug of Syskonnect, who provided me with hw docs for these cards,
  very promptly and willingly - I wish all vendors would be like this
- Alfred Arnold, Linux SKNET driver author, for giving me valuable Syskonnect
  contact :)
2001-04-27 18:03:40 +00:00
lukem 0808e23b17 cdev_vmegen_init can use cdev__ocrwim_init 2001-04-27 05:47:47 +00:00
thorpej 9d7220db23 Explicitly include <machine/pio.h>. 2001-04-26 17:56:37 +00:00
thorpej ea0e8e69d5 Const poison. 2001-04-26 17:55:54 +00:00
kleink 99054d7a6c Add definitions for C99 fastest minimum-width integer types. 2001-04-26 16:25:19 +00:00
thorpej d7e12660a3 Work around the problem that causes kern/12554. Basically,
there are some pathological cases that cause pmap_page_protect()
to be called on a wired page to revoke all mappings.  We
need to skip mappings that are actually wired to prevent Bad
things from happening later.

THIS IS JUST A WORK-AROUND.  We need to prevent the pathological
behavior from happening in UVM to begin with.  But it's unclear
what the right solution is there, right now.
2001-04-25 16:18:24 +00:00
thorpej 5de93d4755 Move _i386_memio_unmap() into bus_machdep.c; the ACPI code wants it. 2001-04-25 03:31:23 +00:00
thorpej 1c3a62e066 Sprinkle pmap_update() calls after calls to:
- pmap_enter()
- pmap_remove()
- pmap_protect()
- pmap_kenter_pa()
- pmap_kremove()
as described in pmap(9).

These calls are relatively conservative.  It may be possible to
optimize these a little more.
2001-04-24 04:30:50 +00:00
kanaoka bb0eabfe15 - fixup only #0 bus --> fixup maxbus.
- Don't pciaddr_do_resource_allocate if device is AGP
   to avoid conflict.
2001-04-23 19:15:29 +00:00
jdolecek 7c9c35e3e7 Move the inclusion of 'mca.h' so that it doesn't depend on pcppi. The clock
interrupts are properly reset on PS/2 now.

Handle the slighly different PS/2 CMOS layout and get/set century
byte as appropriate. The check for valid CMOS CRC checksum is not implemented
yet; I don't currently know algorithm they use.

The info about PS/2 CMOS was taken from the Padgett Peterson's
x86/MSDOS Interrupt List, release 60.
2001-04-23 09:35:12 +00:00
jdolecek e99b513ca1 fix typo 2001-04-23 05:45:43 +00:00
thorpej 55044638aa Remove pmap_kenter_pgs(). It was never really adopted by
anything, and the interface itself wasn't as flexible as
callers would have probably liked.
2001-04-22 23:42:11 +00:00
thorpej ec66f67f3a Use pmap_kenter_pa() rather than pmap_kenter_pgs(). 2001-04-22 23:28:52 +00:00
thorpej 69abdbf60c Undo a misguided previous change to the pmap_update() API. 2001-04-22 23:19:26 +00:00
soren a671e50d00 Put tr(4) in network section. 2001-04-22 19:53:25 +00:00
jdolecek 24568e5a13 Since IBM PS/2 support is becoming quite stable, remove the lenghty
disclaimer on top and leave only necessary fragments.
edc(4) seems to be quite stable, remove the EXPERIMENTAL note
2001-04-22 19:15:05 +00:00
jdolecek 0800e2ed46 add major { ed = 20 } 2001-04-22 18:39:49 +00:00
jdolecek 912e570671 Introduce machdep mca_disk_[un]busy(), which turn on/off disk LED.
Call as appropriate from the ESDI disk driver
2001-04-22 11:52:18 +00:00
jdolecek 738e87aeb9 fix argument for bitmask_snprintf() (stylistic only, code is commented out anyway) 2001-04-22 11:51:45 +00:00
thorpej 4738622712 Give pmap_update() an argument (a pmap_t) so that it knows which
pmap it should be updating.
2001-04-22 00:33:59 +00:00
fvdl 4c41d3275c s/cheap/expensive/ for DIAGNOSTIC 2001-04-21 21:10:41 +00:00
fvdl 41a3ee5d58 Note that the (already commented out) DIAGNOSTIC option is expensive. 2001-04-21 21:03:46 +00:00
fvdl 2654febb55 Remove DIAGNOSTIC and mark it as expensive. 2001-04-21 21:02:03 +00:00
fvdl a1b8e618af Doh. Put the option *after* the include of plain GENERIC. 2001-04-21 20:58:13 +00:00
fvdl 781af989f9 Move the DIAGNOSTIC option to a seperate config file, it's too expensive
to be in GENERIC (which should be a kernel ready for production use).
2001-04-21 20:49:14 +00:00
jdolecek 6402f68d79 Match any device with class bridge and subclass BRIDGE_MC, instead
of matching individual products. Pointed out by Jason Thorpe.
2001-04-21 19:18:20 +00:00
kanaoka 9d36cadfe7 - Allocate memory map entry correctly to avoid Compatibilty Holes.
- Update some comments.

 patch provided by: enami tsugutomo <enami@sm.sony.co.jp>
      suggested by: John Hawkinson <jhawk@MIT.EDU>
2001-04-20 09:10:45 +00:00
jdolecek a98cbd0740 Add MCA ne(4) attachment for Novell NE/2 Ethernet adapter and clones.
Tested with NE/2 card provided to me by Hans Hubner <hans@Huebner.ORG>.

The Compex and Arco cards were not tested. According to Linux ne2 driver,
they should work same way as NE/2.
2001-04-20 07:37:42 +00:00
uch 9b730bc368 patch PR port-i386/11114 by MINOURA Makoto. 2001-04-19 17:32:40 +00:00
jdolecek dbf91c827d Use "edc" instead of "dasd". As pointed out by Soren, dasd doesn't
mean anything special in IBM-talk. And edc better matches prior art, too.
2001-04-19 17:17:28 +00:00
jdolecek 0915128873 add stuff for ESDI disks, marked as EXPERIMENTAL 2001-04-19 07:37:10 +00:00
jdolecek e1d848e38a add ed at mca (ESDI disk) 2001-04-19 07:34:28 +00:00
kanaoka e2749d2799 Add "Sanity check the entry" code to avoid Compatibilty Holes
(0xa0000 -- 0xfffff).
2001-04-18 05:44:10 +00:00
kleink f06533a1ee Add definitions of C99 integer format conversion macros.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-15 17:13:04 +00:00
kleink 739cb75837 Add definitions of C99 specified-width integer type limits.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-15 15:29:02 +00:00
kleink cdcf9f46c5 Add definitions of C99 integer constant macros.
Tidy Makefiles up a little.
2001-04-14 22:46:19 +00:00
kleink a7c20e5788 Add definitions of C99 integer constant macros. 2001-04-14 22:38:33 +00:00
augustss 72eb64fead Propagate __HAVE_GENERIC_SOFTINTR to assembly files. 2001-04-14 13:56:02 +00:00
kleink 7affdab52e Add definitions of C99 minimum-width and greatest-width integer types.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-14 12:19:49 +00:00
thorpej 8b3fc18a1f Generic soft interrupt implementation for NetBSD/i386. This could
probably be tuned somewhat, but this is a stop-gap measure to hold
us until Bill Sommerfeld's new interrupt code comes in from the
MP branch.
2001-04-14 06:49:30 +00:00
thorpej bf2dcec4f5 Remove the use of splimp() from the NetBSD kernel. splnet()
and only splnet() is allowed for the protection of data structures
used by network devices.
2001-04-13 23:29:55 +00:00
kleink 9133b51cd8 Replace the 'unsigned __COMPILER_INT64__' construct with a new name,
__COMPILER_UINT64__, to be supplied - if such a case is made, it shouldn't
be assumed that the unsigned type-specifier may be applied to it.
2001-04-12 22:01:18 +00:00
fvdl 7d1452855c Fix bus_space_write_multi_* in the memory case; the asm constraints
were wrong.
2001-04-10 12:59:32 +00:00
jdolecek e482ee9d62 add rnd (for ssh/sshd) and couple comments 2001-04-06 06:44:08 +00:00
jhawk d95ba2eb80 Remove gratuitous setting of SYSDIR;
it is set in sys/kern/Make.tags.inc
2001-04-03 17:12:23 +00:00
fvdl ecca88089a Override NFS read and write size to default to 32k for the i386 here
(can be overridden from a config file).
2001-04-02 11:48:18 +00:00
chs 10e361a3bf in the 386 case of copyout(), reload "len" from the stack after verifying
write permission since pcb_onfault will clobber %eax if we fault.
2001-04-01 23:54:14 +00:00
jdolecek 8a08e12c86 slighly adjust comment 2001-04-01 23:14:02 +00:00
hubertf 267271c1b2 Explain some SA_* options - reading compressed kernels, netboot
Useful for stripping down bootcode.
2001-03-31 09:45:11 +00:00
minoura 1a1b6fb6d2 Match XpressAudio. 2001-03-31 09:24:37 +00:00
minoura 92e327c226 Match PNP0320 (Japanese 106-key keyboard A01).
- We could use this information to determine the default keymap (?)
 - Match more keyboards? (e.g.strncmp(idstr, "PNP03", 5))
2001-03-31 09:20:40 +00:00
jdolecek 803c0c7eda Add driver for AT1720 MCA cards. This uses generic MB86960 support code,
and shares some bits with ISA AT1700 driver. Gee, this one was really
easy :)

This card turned out to be quite good performer - I get about 360KB/s
on 386DX PS/2 machine, which is best of all supported cards so far.
2001-03-31 00:43:04 +00:00
minoura a9a5dcd043 Add yds at pci and children.
Alpha and i386 are the only tested ports.
2001-03-30 14:47:48 +00:00
mycroft 355086c412 The `speed' statistic from the RNG was brought to you by the letter `B' and
the letter `S'.  I don't think anyone will miss it.
2001-03-30 12:05:02 +00:00
ichiro a8c0b619da support umct USB-serial device 2001-03-28 18:45:07 +00:00
lukem 20ba07f2fe - add dev_noimpl(xxx,yyy) macro to replace "(dev_type_xxx((*))) yyy",
and use appropriately

- create more helper macros:
   . cdev__xyz_init(c,n), such as cdev__ocri_init() for
     /* open, close, read, ioctl */, etc.
   . cdev__xRy_init(c,n), where nullop is used instead of enodev to dummy out
     method `R' and the comments now read /* xxx (read) yyy */ instead
   . cdev__xyz_t_init(c,n,t) - as per cdev__xyz_init, but sets d_type = t
     as well

- use seltrue instead of dev_noimpl(poll,*), as (IIRC) cdevsw.d_poll should
  always DTRT WRT returning a valid result.  (a few devices previously
  incorrectly returned ENODEV)

- use dev_noimpl(stop,enodev) instead of dev_noimpl(stop,nullop) if tty
  == 0, because it doesn't matter if dev_type_stop isn't implemented in that
  case, and it allows the use of the cdev__xyz_init macros. certain ports
  (sparc,sparc64,x68k) used the nullop method for dev_type_stop in a few
  drivers, whereas everything else uses enodev

- ensure that the comments are accurate WRT the behaviour of a given entry
2001-03-26 12:33:22 +00:00
jdolecek b53fce84d3 Add an autoconfig node for PCI-MCA bridges. Configures MCA bridges
via callback. This beast is very rare, present only on some IBM PCs.
Code was copied off pceb.
2001-03-25 09:54:10 +00:00
christos 728aee3ccb Some bios's when apm is disabled [or even some functions of it are disabled],
they keep giving error 0x30b. Unfortunately this keeps happening every second
making the console unusable. Keep track of the last error that occurred and
if the last 10 times apm was called the same error was returned, give up and
exit the apm thread.
2001-03-24 02:07:54 +00:00
jdolecek 75b7bea508 Add MCA we(4) attachment for WD80x3 cards and clones. Tested with
WD8003W/A, card provided by David Brownlee (thanks!). The SMC Elite stuff not
tested since I don't have any; hopefully it's correct, should match
information in ADF files.

The MCA-specific init quirk taken from Linux smc-mca.c driver.
I don't quite grok why it works, but it does *cross fingers*.

The WD8003W/A seems to be quite a good choice. I get like 340KB/s on my
machine, where 3c523 does only like 310KB/s. The numbers would be probably
even better with faster CPU than 386DX :)
2001-03-23 19:25:35 +00:00
jdolecek 031c6d8c24 Add MCA ep(4) attachment, for 3Com 3c529-type cards. Tested with 3c529-TP,
provided to me by David Brownlee (thanks!).

Performance of this card is quite poor on my PS/2 with 386DX, like 100KB/s
at best, but as low as 5KB/s when transferring bigger files due to
packet overruns. It would be good to revisit this later, probably by
teaching the ic code to use RX Early.
2001-03-22 16:54:45 +00:00
lukem 9f60674a47 now that duplicated stuff has been moved to sys/conf.h, remove unnecessary
defs for: lpt, joy, pc
2001-03-21 23:42:14 +00:00
lukem 723cd818d8 move duplicate definitions for:
pc, lpt, joy, ocis, apm, satlink, i4bctl, i4brbch, i4btel, i4btrc, i4b
from the port-specific arch/*/*/conf.c files into sys/conf.h
2001-03-21 22:25:52 +00:00