summaryrefslogtreecommitdiffstats
path: root/sys/i386
Commit message (Collapse)AuthorAgeFilesLines
* Fix a problem with a DEBUG section of code.dyson1996-07-291-1/+1
|
* Fix an error in statement order in pmap_remove_pages, remove the pmapdyson1996-07-291-39/+10
| | | | pte hint (for now), and general code cleanup.
* Fix a problem that pmap update was not being done for kernel_pmap. Alsodyson1996-07-281-13/+11
| | | | | remove some (currently) gratuitious tests for PG_V... This bug could have caused various anomolous (temporary) behavior.
* Move a couple of the initialization commands to the right place. Multidyson1996-07-271-28/+24
| | | | sector mode was not getting re-initialized when needed.
* Under the heavy load for transmiting condition, it will be write erroramurai1996-07-271-2/+2
| | | | | | | and then never accept for sending packet from upper layer anymore (i.e. ping -f ) Reviewed by: David Greenman <dg@root.com> Submitted by: amurai@spec.co.jp
* This commit is meant to solve a couple of VM system problems ordyson1996-07-272-521/+445
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | performance issues. 1) The pmap module has had too many inlines, and so the object file is simply bigger than it needs to be. Some common code is also merged into subroutines. 2) Removal of some *evil* PHYS_TO_VM_PAGE macro calls. Unfortunately, a few have needed to be added also. The removal caused the need for more vm_page_lookups. I added lookup hints to minimize the need for the page table lookup operations. 3) Removal of some bogus performance improvements, that mostly made the code more complex (tracking individual page table page updates unnecessarily). Those improvements actually hurt 386 processors perf (not that people who worry about perf use 386 processors anymore :-)). 4) Changed pv queue manipulations/structures to be TAILQ's. 5) The pv queue code has had some performance problems since day one. Some significant scalability issues are resolved by threading the pv entries from the pmap AND the physical address instead of just the physical address. This makes certain pmap operations run much faster. This does not affect most micro-benchmarks, but should help loaded system performance *significantly*. DG helped and came up with most of the solution for this one. 6) Most if not all pmap bit operations follow the pattern: pmap_test_bit(); pmap_clear_bit(); That made for twice the necessary pv list traversal. The pmap interface now supports only pmap_tc_bit type operations: pmap_[test/clear]_modified, pmap_[test/clear]_referenced. Additionally, the modified routine now takes a vm_page_t arg instead of a phys address. This eliminates a PHYS_TO_VM_PAGE operation. 7) Several rewrites of routines that contain redundant code to use common routines, so that there is a greater likelihood of keeping the cache footprint smaller.
* ttysleep() can return EWOULDBLOCK, not ETIMEDOUT as the comment in tty.cpeter1996-07-261-2/+2
| | | | | | suggests. Pointed out by: bde
* Apply a bandaid to a problem elsewhere in the driver, when the process ispeter1996-07-261-2/+5
| | | | | | | | blocked in a write() while waiting for the output to drain, sleep only for tp->t_timeout, not forever. This only seems to happen when there is either a modem lockup holding the hardware flow control down, or due to some problem in the driver with processes attempting to write after the modem has hung up (eg: elm, tf).
* Revert my bdevsw change for wcd.c, Bruce pointed out thatphk1996-07-241-2/+12
| | | | this driver has bogus open/close entries.
* Make a "DWIM" function for adding [bc]devsw entries for bdev drivers.phk1996-07-237-95/+20
| | | | | | | | | Saves about 280 butes of source per driver, 56 bytes in object size and another 56 bytes moves from data to bss. No functional change intended nor expected. GENERIC should be about one k smaller now :-)
* Update to current state of PC98 world.asami1996-07-231-1/+3
| | | | Submitted by: The FreeBSD(98) development team
* Add yet another kludge to this driver. Man page update to follow.phk1996-07-211-1/+9
|
* Post-commit review by Bruce. Mostly stylistic changes.joerg1996-07-212-102/+112
| | | | Submitted by: bde
* Replace the annoying calls to Debugger() by panic()'s in thejoerg1996-07-201-3/+7
| | | | | | | | | #ifdef DIAGNOSTIC case, and a warning only otherwise. People who want them to break into the debugger can always set the breakpoint explicitly. The existing behaviour was a misfeature from the beginning, in the (wrong) assumption that the SCSI controller must always be of essential importance to the entire system.
* Correct the timer2 acquiration and release, it must happen at splclock.joerg1996-07-201-36/+52
| | | | | Also slightly reformatted so that it meets at least partially style(9), and makes navigating through the functions easier.
* Major cleanup of the timerX_{acquire,release} stuff. In particular,joerg1996-07-202-96/+192
| | | | | | | | | | | | | make it more intelligible, improve the partially bogus locking, and allow for a ``quick re-acquiration'' from a pending release of timer 0 that happened ``recently'', so it was not processed yet by clkintr(). This latter modification now finally allows to play XBoing over pcaudio without losing sounds or getting complaints. ;-) (XBoing opens/writes/closes the sound device all over the day.) Correct locking for sysbeep(). Extensively (:-) reviewed by: bde
* Last night (local time :) I accidently checked in an intermediate versionse1996-07-191-85/+69
| | | | | | | | | | | | of this patch, which had not actually been reviewed by Joerg or Paul! (I'll better stop committing files after midnight ...) I'm now commiting the latest code, which has been reported to work. Minor correction to the previous commit message for this file: The first PCI Lance in a system will get a name of lnc1, the second will be known as lnc2 and so on. An arbitrary number of cards is supported in a system ...
* Add interrupt register set up with original register valueamurai1996-07-193-5/+13
| | | | | | | before attaching. Without this fix, 3c579(EISA) never make any H/W inturrupt. Reviewed by: "Justin T. Gibbs" <gibbs@freefall.freebsd.org>, nao@sbl.cl.nec.co.jp and owner-current on mailing list ;-) Submitted by: amurai@spec.co.jp, nao@sbl.cl.nec.co.jp
* FINALLY: PCI support for the Lance Ethernet driver.se1996-07-181-73/+156
| | | | | | | | | | | | | | | | | | This code applies to several systems with integrated Ethernet chip, for example from HP or Compaq. It should also support PCI Ethernet cards based on the AMD PCI Lance chip. This code has been reviewed (visually) by Paul Richards and tested (using an ISA Lance board) by Joerg Wunsch. Since the parameters to nearly each and every single function had to be changed (generally from unit number to lnc_soft*), there is some potential for buglets having crept in ... BEWARE: If you had lnc0 configured to have the ISA probe find your PCI Lance, then it should now be found by the PCI probe, and should be automatically configured as pci1 (!!! note the "1"). Reviewed by: paul, joerg
* some internal modems need LOTS of time to generate an interruptjulian1996-07-171-2/+2
| | | | on demand.. increase DELAY from 1000 uS to 10000uS
* Introduce two /dev/audio compat alias names for flushing and drainingjoerg1996-07-172-2/+8
| | | | the pcaudio device. Now, XBoing sounds much better...
* Fixed adjustment of `time' when timer0 is released. 27465 was 27645 inbde1996-07-173-6/+6
| | | | | a comment and in code that was only used when pcaudio was closed. The maximum error was 66 usec.
* Moved declaration of zbuf outside of #ifdef DEVFS code.nate1996-07-151-3/+3
|
* Quick fix for previous commit: don't free zbuf on close since it may bebde1996-07-151-9/+2
| | | | in use in another process that blocked in uiomove().
* Almost gratuitious improvement of the performance of readingdyson1996-07-141-5/+14
| | | | /dev/zero.
* Enable transmit complete interrupt...dg1996-07-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | (author's explaination): Bit 15 is the flag to request a transmit complete interrupt. The driver was apparently written to minimize interrupts, and if not for a 3-COM design quirk, everything would be just ducky. Prior to loading the outbound packet into the FIFO, the driver checks to see if there's enough space to contain the packet. If not, the driver requests a transmit-available interrupt when there is sufficient room. Unfortunately, the card is continuing to process the prior FIFO, and by the time the driver sets the threshold for a transmit available interrupt, the space is already available. When this occurs, the 3COM card ignores the interrupt request, and the driver is hung waiting for an interrupt that will never occur. There's probably a more elegant solution, but requesting the transmit complete interrupt was the easiest to implement. An alternative fix might be to check free FIFO space again, after requesting the transmit available interrupt, but I haven't bothered pursuing this. Since the patch, my 3C590 (PCI, same FIFO interface as 3C509) has been rock solid. Submitted by: mevans@candle.com (Mike Evans)
* Staticized a few variables.bde1996-07-122-6/+9
| | | | Fixed warnings about unused variables.
* Removed "optimization" using gcc's builtin memcpy instead of bcopy.bde1996-07-121-5/+2
| | | | | There is little difference now since the amount copied is large, and bcopy will become much faster on some machines.
* Renamed upa to p0upa to match p0upt.bde1996-07-121-14/+14
| | | | Cleaned up some comments.
* Export `dumpmag' to utilities but not to the kernel.bde1996-07-121-3/+4
| | | | Restored a truncated comment.
* Fixed cloned comments about npx traps to match context.bde1996-07-121-5/+8
|
* Moved the definition of DEBUGMSG() from asm.h to start.S. This macrobde1996-07-122-13/+13
| | | | | | | | is only appropriate to use in the special environment of start.S (real mode plus some conventions about not saving registers), and asm.h is supposed to be for generic macros. Removed some unnecessary parentheses.
* Moved the definition of `bsize' out of a DO_BAD144 ifdef so that thisbde1996-07-121-2/+2
| | | | compiles when DO_BAD144 is not defined.
* Moved the definition of dflt_name to the correct file (table.c is only forbde1996-07-123-5/+8
| | | | explicitly initialized data) and made it conditional on NAMEBLOCK.
* Fixed some speling, punctuation.. and spac ing errors.bde1996-07-122-19/+19
|
* Fixed operand order for shld and shrd.bde1996-07-121-82/+80
| | | | | | Finished the constant poisoning that was begun in rev.1.14. Consts aren't very poisonous (or useful) unless -Wcast-qual is in CFLAGS, and it isn't in the default CFLAGS.
* Don't use NULL in non-pointer contexts.bde1996-07-124-9/+9
|
* Add some comments explaining what APM_DSVALUE_BUG does no that I knownate1996-07-112-6/+20
| | | | | | | what it does and why it's needed. Now I have to figure out how to fix the bug. :) [ No functional changes ]
* Merge.jkh1996-07-111-1/+3
|
* Adding changes to ipfw and the kernel to support ip packet diversion..julian1996-07-102-2/+8
| | | | | | This stuff should not be too destructive if the IPDIVERT is not compiled in.. be aware that this changes the size of the ip_fw struct so ipfw needs to be recompiled to use it.. more changes coming to clean this up.
* Whee. Fix two bugs which ended up cancelling each other out.nate1996-07-104-12/+12
| | | | | | | | | | apm_setup.s was storing apm_cs16_base and apm_cs32_base addresses in each others slots, and apm.c was reversing the result so the bugs cancelled out, but the code looked wrong. No functional differences unfortunately. Submitted by: dave edmondson <davided@sco.com>
* Clean out some historical cruft.jkh1996-07-101-6/+1
|
* make the NAMEBLOCK changes conditional on that preprocessor variable,julian1996-07-093-10/+15
| | | | | and add more documentation of the option in the Makefile also CORRECT the variable mentioned in the README.
* Fix something that's been bugging me for a long time: move the CPUwollman1996-07-083-196/+286
| | | | | | type identification code out of machdep.c and into a new file of its own. Hopefully other grot can be moved out of machdep.c as well (by other people) into more descriptively-named files.
* Add the ability to specify bootflags. This is similar to boot_i386(8),joerg1996-07-062-3/+31
| | | | except for the root f/s options that don't seem to be useful.
* Obtained from: Whistle Communicationsjulian1996-07-056-63/+240
| | | | | | | | | | | | | | Add code to the boot blocks to allow the user to place default boot strings on block 1 of the disk (2nd block), should the correct magic numbers be present. If the correct options are used it will 'delete' the name used from block1, thereby assuring that if the boot fails it won't be stuck in an infinite loop. the boot strings are set by the utility "nextboot" (not yet checked in, but being tested.) By default these changes should have no effect on existing installations and if compiled without the NAMEBLOCK option should be essentially identical to the old ones.
* This driver supports the SDL Communications RISCom/N2 ISA cards that isjhay1996-07-055-3/+1796
| | | | | | | | | | | | | | | based on the HD64570 chip. Both the 1 and 2 port cards is supported. Line speeds of up to 2Mbps is possible. At this speed about 95% of the bandwidth is usable with 486DX processors. The standard FreeBSD sppp code is used for the link level layer. The default protocol used is PPP. The Cisco HDLC protocol can be used by adding "link2" to the ifconfig line in /etc/sysconfig or where ever ifconfig is run. At the moment only the X.21 interface is tested. The others may need tweaks to the clock selection code.
* Added or restored #include of <machine/md_var.h>. Some declarationsbde1996-07-011-1/+2
| | | | moved from <machine/cpufunc.h> to better places.
* Fixed lots of warnings about unportable casts of pointers to volatilebde1996-07-012-16/+26
| | | | | | variables: don't depend on the compiler generating atomic code to set the variables - use inline asm to specify the atomic instruction(s) explicitly.
* Moved declarations of non-cpu things from <machine/cpufunc.h> to betterbde1996-07-012-20/+10
| | | | places.
OpenPOWER on IntegriCloud