summaryrefslogtreecommitdiffstats
path: root/sys/amd64
Commit message (Collapse)AuthorAgeFilesLines
* Unremoved used include of <machine/ipl.h>. Removing it in rev.1.95bde2000-10-092-0/+2
| | | | | | | significantly pessimized syscalls by arranging to do null rescheduling on return from every syscall. (AST_RESCHED was not defined, and the mask ~AST_RESCHED gets replaced by the useless mask ~0. This bug has been fixed before, in rev.1.92.)
* Only attach "legacy" PCI busses if none have been attached via any othermsmith2000-10-091-3/+23
| | | | method.
* Work around a bug by adding struct tags. gcc-2.95 apparently gets thebde2000-10-061-2/+2
| | | | | | | | | check in the [basic.link] section of the C++ standard wrong. gcc-2.7.2.3 apparently doesn't do the check, so the bug doesn't affect RELENG_3. PR: 16170, 21427 Submitted by: Max Khon <fjoe@lark.websci.ru> (i386 version) Discussed with: jdp
* - Change fast interrupts on x86 to push a full interrupt frame and tojhb2000-10-0617-411/+170
| | | | | | | | | | | | | | | | | | | | | | | | | | | | return through doreti to handle ast's. This is necessary for the clock interrupts to work properly. - Change the clock interrupts on the x86 to be fast instead of threaded. This is needed because both hardclock() and statclock() need to run in the context of the current process, not in a separate thread context. - Kill the prevproc hack as it is no longer needed. - We really need Giant when we call psignal(), but we don't want to block during the clock interrupt. Instead, use two p_flag's in the proc struct to mark the current process as having a pending SIGVTALRM or a SIGPROF and let them be delivered during ast() when hardclock() has finished running. - Remove CLKF_BASEPRI, which was #ifdef'd out on the x86 anyways. It was broken on the x86 if it was turned on since cpl is gone. It's only use was to bogusly run softclock() directly during hardclock() rather than scheduling an SWI. - Remove the COM_LOCK simplelock and replace it with a clock_lock spin mutex. Since the spin mutex already handles disabling/restoring interrupts appropriately, this also lets us axe all the *_intr() fu. - Back out the hacks in the APIC_IO x86 cpu_initclocks() code to use temporary fast interrupts for the APIC trial. - Add two new process flags P_ALRMPEND and P_PROFPEND to mark the pending signals in hardclock() that are to be delivered in ast(). Submitted by: jakeb (making statclock safe in a fast interrupt) Submitted by: cp (concept of delaying signals until ast())
* currentldt is now a "special" global-data variable, and as such, therejhb2000-10-061-3/+0
| | | | | is no actual currentldt integer variable directly. Thus, don't claim that there is.
* Interrupt frames don't include the saved cpl anymore since cpl is dead.jhb2000-10-061-2/+0
|
* Various whitespace cleanups after the SMPng commit, which jumbled thingsjhb2000-10-061-19/+19
| | | | around a bit in the trap handling code.
* Don't treat a kernel stack fault the same as a general protect fault orjhb2000-10-061-0/+3
| | | | a segment not present fault in the non-vm86 case.
* Remove an unnecessary sti and spl0() in fork_trampoline. Interruptsjhb2000-10-062-4/+0
| | | | should be enabled by MTX_EXIT() now when it releases the sched_lock.
* - Heavyweight interrupt threads on the alpha for device I/O interrupts.jhb2000-10-0517-253/+23
| | | | | | | | | | | - Make softinterrupts (SWI's) almost completely MI, and divorce them completely from the x86 hardware interrupt code. - The ihandlers array is now gone. Instead, there is a MI shandlers array that just contains SWI handlers. - Most of the former machine/ipl.h files have moved to a new sys/ipl.h. - Stub out all the spl*() functions on all architectures. Submitted by: dfr
* Replace loadandclear() with atomic_readandclear_int().jhb2000-10-052-13/+2
|
* Add atomic_readandclear_int and atomic_readandclear_long.jhb2000-10-051-2/+34
|
* Make the gd_currentldt member in struct globaldata unconditional sojhb2000-10-051-3/+1
| | | | | that this header doesn't depend on USER_LDT. This fixes the USER_LDT breakage with SMP kernels.
* Reduce userland namespace polution.jasone2000-10-041-1/+4
|
* Fix a cosmetic sign problem on machines with 4G of ram.peter2000-10-021-1/+1
| | | | | | 0x00312000 - 0xe5fe7fff, 3855441920 bytes (4294859990 pages) .. becomes 0x00314000 - 0xe5fe7fff, 3855433728 bytes (941268 pages)
* Move the i386 PCI attachment code out of i386/isa back into i386/pci.msmith2000-10-023-1028/+260
| | | | | Split out the configuration space access primitives, as these are needed elsewhere as well.
* Fix the no-pci case of attaching isa, eisa and mca devices.peter2000-10-012-14/+6
| | | | | | | | | device_add_child() is meant to be called by the bus add_child method, not to replace the bus add_child method. We could have called nexus_add_device directly too, that would have also worked. PR: 21657 Tested by: markm
* More updates to the ACPI code:msmith2000-09-303-49/+17
| | | | | | | | | | | | | | | - Move all register I/O into acpi_io.c - Move event handling into acpi_event.c - Reorganise headers into acpivar/acpireg/acpiio - Move find-RSDT and find-ACPI-owned-memory into acpi_machdep - Allocate all resources (except those detailed only by AML) as real resources. Add infrastructure that will make adding resource support to AML code easy. - Remove all ACPI #ifdefs in non-ACPI code - Removed unnecessary includes - Minor style and commenting fixes Reviewed by: iwasaki
* Big mbuf subsystem diff #1: incorporate mutexes and fix things up somewhatbmilekic2000-09-301-13/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to accomodate the changes. Here's a list of things that have changed (I may have left out a few); for a relatively complete list, see http://people.freebsd.org/~bmilekic/mtx_journal * Remove old (once useful) mcluster code for MCLBYTES > PAGE_SIZE which nobody uses anymore. It was great while it lasted, but now we're moving onto bigger and better things (Approved by: wollman). * Practically re-wrote the allocation macros in sys/sys/mbuf.h to accomodate new allocations which grab the necessary lock. * Make sure that necessary mbstat variables are manipulated with corresponding atomic() routines. * Changed the "wait" routines, cleaned it up, made one routine that does the job. * Generalized MWAKEUP() macro. Got rid of m_retry and m_retryhdr, as they are now included in the generalized "wait" routines. * Sleep routines now use msleep(). * Free lists have locks. * etc... probably other stuff I'm missing... Things to look out for and work on later: * find a better way to (dynamically) adjust EXT_COUNTERS * move necessity to recurse on a lock from drain routines by providing lock-free lower-level version of MFREE() (and possibly m_free()?). * checkout include of mutex.h in sys/sys/mbuf.h - probably violating general philosophy here. The code has been reviewed quite a bit, but problems may arise... please, don't panic! Send me Emails: bmilekic@freebsd.org Reviewed by: jlemon, cp, alfred, others?
* Ansify and fix warnings.dfr2000-09-291-14/+6
|
* This is the first snapshot of the FreeBSD/ia64 kernel. This kernel willdfr2000-09-292-0/+329
| | | | | | not work on any real hardware (or fully work on any simulator). Much more needs to happen before this is actually functional but its nice to see the FreeBSD copyright message appear in the ia64 simulator.
* Fill in some more missing bits from cpu_features according to the Intelpeter2000-09-291-10/+10
| | | | Pentium4 cpuid docs.
* First shot at identifying the Pentum 4 acording to our reading of thepeter2000-09-292-2/+8
| | | | | | | | the cpu_id extensions in the Intel docs. There is more info available. See the following URL for more details. http://developer.intel.com/design/processor/future/manuals/CPUID_Supplement.htm Requested by: Intel
* Get out the roto-rooter and clean up the abuse of nexus ivars by thepeter2000-09-285-44/+153
| | | | | | | | | | | | i386/isa/pcibus.c. This gets -current running again on multiple host->pci machines after the most recent nexus commits. I had discussed this with Mike Smith, but ended up doing it slightly differently to what we discussed as it turned out cleaner this way. Mike was suggesting creating a new resource (SYS_RES_PCIBUS) or something and using *_[gs]et_resource(), but IMHO that wasn't ideal as SYS_RES_* is meant to be a global platform property, not a quirk of a given implementation. This does use the ivar methods but does so properly. It also now prints the physical pci bus that a host->pci bridge (pcib) corresponds to.
* Fix spelling of Katmai [Katami].asmodai2000-09-271-1/+1
|
* Since the nexus is responsible for creating the I/O resources (ports, memory)msmith2000-09-272-4/+296
| | | | | it ought to be able to deal with devices directly attached to it having allocations of such resources. Make it so.
* Recognize new Pentium III Xeon (stepping A0).kato2000-09-261-0/+1
| | | | | PR: 21233 Submitted by: ade
* Fix the assmebly mutex macros to handle saving/restoring interrupt statejhb2000-09-241-7/+21
| | | | | properly. Fix the recursive mutex macros to actually compile. At the moment we only use MTX_EXIT anyways.
* Move MAXCPU from machine/smp.h to machine/param.h to fix breakageps2000-09-231-10/+0
| | | | | with !SMP kernels. Also, replace NCPUS with MAXCPU since they are redundant.
* #include <sys/proc.h> in order to get curproc. This seems to be the lesserjasone2000-09-231-3/+2
| | | | | of two evils; the greater evil is requiring sys/proc.h to be included before including machine/mutex.h.
* Remove the NCPU, NAPIC, NBUS, NINTR config options. Make NAPIC,ps2000-09-2213-162/+175
| | | | | | NBUS, NINTR dynamic and set NCPU to a maximum of 16 under SMP. Reviewed by: peter
* Teach MTX_EXIT_RECURSE that the recursion count is a 32-bit integer,jhb2000-09-221-3/+3
| | | | not a 16-bit one.
* Implement halt-on-idle in the !SMP case, which should significantlymsmith2000-09-223-20/+37
| | | | reduce power consumption on most systems.
* Add a couple of debug register helper functions to assist in settingbsd2000-09-212-0/+10
| | | | | | and clearing watchpoints. Reviewed by: jwd@FreeBSD.org, -hackers@
* Add a new driver for the AMD PCnet/FAST, FAST+ and Home PCI adapters.wpaul2000-09-201-0/+1
| | | | | | | | | | | | | | Previously, these cards were supported by the lnc driver (and they still are, but the pcn driver will claim them first), which is fine except the lnc driver runs them in 16-bit LANCE compatibility mode. The pcn driver runs these chips in 32-bit mode and uses the RX alignment feature to achieve zero-copy receive. (Which puts it in the same class as the xl, fxp and tl chipsets.) This driver is also MI, so it will work on the x86 and alpha platforms. (The lnc driver is still needed to support non-PCI cards. At some point, I'll need to newbusify it so that it too will me MI.) The Am79c978 HomePNA adapter is also supported.
* Better error message when booting an SMP kernel on an UP system.eivind2000-09-191-1/+1
|
* Make LINT compile.phk2000-09-161-1/+1
|
* - Add a new process flag P_NOLOAD that marks a process that should bejhb2000-09-151-0/+1
| | | | | ignored during load average calcuations. - Set this flag for the idle processes and the softinterrupt process.
* Moved the fe driver from the compat section to the correct section.nyan2000-09-151-2/+2
| | | | Submitted by: sanpei
* Check to see if we actually have an interrupt descriptor and an interruptjhb2000-09-151-0/+21
| | | | | | | | thread for each interrupt that comes in. If we don't, log the event and return immediately for a hardware interrupt. For a softinterrupt, panic instead. Submitted by: ben
* Remove the mtx_t, witness_t, and witness_blessed_t types. Instead, justjhb2000-09-142-27/+25
| | | | | | use struct mtx, struct witness, and struct witness_blessed. Requested by: bde
* - Remove the inthand2_t type and use the equivalent driver_intr_t type fromjhb2000-09-138-127/+64
| | | | | | | | | | | | | newbus for referencing device interrupt handlers. - Move the 'struct intrec' type which describes interrupt sources into sys/interrupt.h instead of making it just be a x86 structure. - Don't create 'ithd' and 'intrec' typedefs, instead, just use 'struct ithd' and 'struct intrec' - Move the code to translate new-bus interrupt flags into an interrupt thread priority out of the x86 nexus code and into a MI ithread_priority() function in sys/kern/kern_intr.c. - Remove now-uneeded x86-specific headers from sys/dev/ata/ata-all.c and sys/pci/pci_compat.c.
* Be more careful about cleaning up the stack after function calls earlybde2000-09-132-22/+32
| | | | | | | | | | in the boot. The cleanup must be done in one of the few ways that db_numargs() understands, so that early backtraces in ddb don't underrun the stack. The underruns caused reboots a few years ago when there was an unmapped page above the stack (trapping to abort the command doesn't work early). Cleaned up some nearby code.
* Fixed hang on booting with -d. mtx_enter() was called on an uninitializedbde2000-09-132-10/+8
| | | | | lock. The quick fix in trap.c was not quite the version tested and had no effect; back it out.
* A new driver for PCI:SCSI RAID controllers based on the Adaptec FSAmsmith2000-09-131-0/+1
| | | | | design. This includes integrated Dell RAID controllers, the Dell PERC 2/QC and the HP NetRAID-4M.
* Clean up process accounting some more. Unfortunately, it is still notjhb2000-09-123-54/+42
| | | | | quite right on i386 as the CPU who runs statclock() doesn't have a valid clockframe to calculate statistics with.
* Quick fix for hang on booting with -d. mtx_enter() was called beforebde2000-09-121-2/+4
| | | | | | curproc was initialized. curproc == NULL was interpreted as matching the process holding Giant... Just skip mtx_enter() and mtx_exit() in trap() if (curproc == NULL && cold) (&& cold for safety).
* Don't panic for delivery of a multiplexed SWI. Most SWI handlersbde2000-09-121-1/+4
| | | | | | | | | | | | don't take an arg, but swi_generic() is special in order to avoid one whole conditional branch in the old SWI dispatch code. The new SWI dispatch code passed it a garbage arg. Bypass swi_generic() and call swi_dispatcher() directly, like the corresponding alpha code has always done. The panic was rare because because it only occurred if more than one of the {sio,cy,rc} drivers was configured and one was active, and the cy driver doesn't even compile.
* Turn the /dev/random device into a (pseudo-)device, not an option.markm2000-09-121-1/+1
| | | | | (I didn't realise that it was this easy!) Submitted by: jhb
* Move tx to the list of drivers that now require miibus.billf2000-09-111-1/+1
|
OpenPOWER on IntegriCloud