summaryrefslogtreecommitdiffstats
path: root/sys/alpha
Commit message (Collapse)AuthorAgeFilesLines
* Fix ypo in essage about isabling EISA nterrupt ectormjacob2000-12-151-1/+1
| | | | (tip 'o the tired cap to Bernd Walter <ticso@cicely5.cicely.de>)
* Remove the "machine dependent" KTR trace buffer ddb commands. The code wasjhb2000-12-141-101/+0
| | | | exactly the same on all platforms.
* Add route interrupt method.mjacob2000-12-131-0/+2
|
* Sync with i386/GENERIC rev 1.294 removing "COMPAT_OLDPCI".obrien2000-12-132-2/+0
| | | | This fixed the broken kernel build on the Alpha.
* - Change the allproc_lock to use a macro, ALLPROC_LOCK(how), insteadjake2000-12-131-9/+7
| | | | | | | | of explicit calls to lockmgr. Also provides macros for the flags pased to specify shared, exclusive or release which map to the lockmgr flags. This is so that the use of lockmgr can be easily replaced with optimized reader-writer locks. - Add some locking that I missed the first time.
* enable the proper cascade irq on as1000agallatin2000-12-121-1/+1
| | | | tested by: wilko
* fix AS1000/AS1000A support. It turns out the that iobus depends on thegallatin2000-12-121-2/+10
| | | | | | | | CPU version (apecs:ev4::cia:ev5) and the irq hardware depends on the systype previously, only ev4 AS1000s and ev5 AS1000a's would have worked. tested by: wilko (in its -stable form) noticed by: daniel
* fix various compiler warnings generated by previous commitgallatin2000-12-121-5/+5
|
* - Add code to detect if a system call returns with locks other than Giantjake2000-12-121-0/+14
| | | | | | | | | held and panic if so (conditional on witness). - Change witness_list to return the number of locks held so this is easier. - Add kern/syscalls.c to the kernel build if witness is defined so that the panic message can contain the name of the offending system call. - Add assertions that Giant and sched_lock are not held when returning from a system call, which were missing for alpha and ia64.
* Store in globaldata our CPU ID#. Provide a lock for panics - only onemjacob2000-12-094-0/+9
| | | | | CPU can panic at a time. Obtained from:Andrew Gallatin <gallatin@cs.duke.edu>
* Next phase in the PCI subsystem cleanup.msmith2000-12-0827-203/+170
| | | | | | | | | | | | | | | | | | | | - Move PCI core code to dev/pci. - Split bridge code out into separate modules. - Remove the descriptive strings from the bridge drivers. If you want to know what a device is, use pciconf. Add support for broadly identifying devices based on class/subclass, and for parsing a preloaded device identification database so that if you want to waste the memory, you can identify *anything* we know about. - Remove machine-dependant code from the core PCI code. APIC interrupt mapping is performed by shadowing the intline register in machine- dependant code. - Bring interrupt routing support to the Alpha (although many platforms don't yet support routing or mapping interrupts entirely correctly). This resulted in spamming <sys/bus.h> into more places than it really should have gone. - Put sys/dev on the kernel/modules include path. This avoids having to change *all* the pci*.h includes.
* Partially re-write T2 chipset support based on Tru64 platform supportgallatin2000-12-075-99/+454
| | | | | | | | | | | | | | | | | | | files which Compaq open-sourced (with a BSD license). This commit adds support for proper PCI interrupt mapping and much better support for swizzling between "standard" isa IRQs and the stdio irqs used by the t2. This also adds enabling/disabling/eoi support for AlphaServer 2100A machines. The 2100A (or lynx) interrupt hardware is is very different (and much nicer) than the 2100. Previously, only AS2100 and AS2000 machines worked. This commits also lays the groundwork for supporting ExtIO modules. These modules are essentially a second hose. This work is left unfinished pending testing on real hardware. Wilko tells me that ExtIO modules are quite rare, and may not actually exist in the wild. Obtained from: Tru64 Tested by: wilko
* Minor cleanups:marcel2000-12-051-8/+3
| | | | | | o remove unused prototypes, o remove unused extern declarations, o move prototypes up.
* Make osendsig global. It's used by the Linuxulator.marcel2000-12-051-1/+3
|
* Remove the last of the MD netisr code. It is now all MI. Removejake2000-12-052-28/+0
| | | | | | | | spending, which was unused now that all software interrupts have their own thread. Make the legacy schednetisr use an atomic op for setting bits in the netisr mask. Reviewed by: jhb
* Fix for vanilla PC164 systems to use a slightly different PALcode magicmjacob2000-12-042-2/+39
| | | | | | | | tweak to enable/disable interrupt sources. Seems to work. It is unclear how many of the PC164 models actually might needs this, and whether or not there are other hidden issues. Obtained from:Bernd Walter <ticso@cicely8.cicely.de>
* Comment out debug printfs about enable/disable ints.mjacob2000-12-041-2/+2
| | | | Current now appears to work at least fitfully on one Rawhide.
* More M_ZERO patches.dwmalone2000-12-031-23/+19
| | | | | | Submitted by: josh@zipperup.org Submitted by: Robert Drehmel <robd@gmx.net> Approved by: mjacob
* Don't auto-generate the syscalls.marcel2000-12-038-7/+1224
|
* Don't auto-generate syscalls.marcel2000-12-031-1/+1
|
* exec_osf1_imgact() should return -1 for non OSF1/ECOFF binaries, it shouldgallatin2000-12-021-1/+1
| | | | | | | | not return ENOEXEC. This is because image activators should return -1 if they don't claim an image. They should return ENOEXEC if they do claim it, but cannot load it due to sime problem with the image. This bug was preventing static compilation of the osf/1 module. I'm surprised it did not cause more problems.
* Alter isa interrupt behaviour on alpha. Rather than send a non-specificgallatin2000-12-011-4/+38
| | | | | | | | | | | | | EOI after the ithread runs, send the EOI when we get the interrupt and disable the source. After the ithread is run, the source is renabled. Also, add isa_handle_fast_intr() which handles fast interrupts by sending an EOI after the handler is run. This fixes the chronic missing interrupt problems under heavy NFS load on my UP1000 and should result in greater stability for alphas which route all irqs through an isa pic. Discussed with: jhb, bde (sending non-specific EOIs early was bde's idea)
* acquire/release Giant in vm_page_zero_idle(), like on i386gallatin2000-12-011-8/+2
| | | | Discused with: jhb
* Convert the pcib_{read,write}_config args from signed to unsigned,gallatin2000-12-018-29/+29
| | | | | | | | | | | like the args to the config space accessors these functions replaced. This reduces the likelyhood of overflow when the args are used in macros on the alpha. This prevents memory management faults when probing the pci bus on sables, multias and nonames. Approved by: dfr Tested by: Bernd Walter <ticso@cicely8.cicely.de>
* remove unneded sys/ucred.h includesalfred2000-11-302-2/+0
|
* Don't use p->p_sigstk.ss_flags to keep state of whether themarcel2000-11-303-6/+19
| | | | | | | | | | | | | | | process is on the alternate stack or not. For compatibility with sigstack(2) state is being updated if such is needed. We now determine whether the process is on the alternate stack by looking at its stack pointer. This allows a process to siglongjmp from a signal handler on the alternate stack to the place of the sigsetjmp on the normal stack. When maintaining state, this would have invalidated the state information and causing a subsequent signal to be delivered on the normal stack instead of the alternate stack. PR: 22286
* Add 'mpsafe' parameter to callout_init() in MD bits.jlemon2000-11-261-1/+1
| | | | Reminded by: jake
* Don't unregister the ioctl handlers before we verified wemarcel2000-11-231-11/+13
| | | | | | | | | | | can unload. Doing so leaves the linuxulator in a crippled state (no ioctl support) when Linux binaries are run at unload time. While here, consistently spell ELF in capitals and perform some minor style improvements. ELF spelling submitted by: asmodai
* Protect the following with a lockmgr lock:jake2000-11-221-0/+9
| | | | | | | | | | | | allproc zombproc pidhashtbl proc.p_list proc.p_hash nextpid Reviewed by: jhb Obtained from: BSD/OS and netbsd
* Protect the bounce page list with a mutex instead of using splhigh().dfr2000-11-221-14/+13
|
* Add a consistent API to a feature that most modern CPUs have; a fastmarkm2000-11-211-0/+10
| | | | | | | | | | | | | | counter register in-CPU. This is to be used as a fast "timer", where linearity is more important than time, and multiple lines in the linearity caused by multiple CPUs in an SMP machine is not a problem. This adds no code whatsoever to the FreeBSD kernel until it is actually used, and then as a single-instruction inline routine (except for the 80386 and 80486 where it is some more inline code around nanotime(9). Reviewed by: bde, kris, jhb
* fix isa DMA on pyxis based machines:gallatin2000-11-211-7/+8
| | | | | | | | | | | | - move the call to cia_init_sgmap() to after we've determined if we're a pyxis - convert needed splhigh() in cia_sgmap_invalidate_pyxis() to disable_intr() Previously, any isa DMA on a pyxis based machine would cause a panic in cia_sgmap_invalidate_pyxis() because the pyxis workaround was never setup. - while i'm at it, convert needed splhigh() in cia_swiz_set_hae_mem to disable_intr()
* Make programs which still #include <machine/{mouse,console}.h> failphk2000-11-202-13/+2
| | | | | | | at compiletime, with an explanatory error message. Previously they would only get a warning. These files will be finally removed 2001-01-15
* Convert various calls to splhigh() to disable_intr() since splhigh() isdfr2000-11-196-26/+34
| | | | now a no-op.
* We don't need <stddef.h> for offsetof() any more.dfr2000-11-191-2/+0
|
* - Protect the callout wheel with a separate spin mutex, callout_lock.jake2000-11-191-0/+2
| | | | | | | | | | | - Use the mutex in hardclock to ensure no races between it and softclock. - Make softclock be INTR_MPSAFE and provide a flag, CALLOUT_MPSAFE, which specifies that a callout handler does not need giant. There is still no way to set this flag when regstering a callout. Reviewed by: -smp@, jlemon
* - Split the run queue and sleep queue linkage, so that a processjake2000-11-171-1/+1
| | | | | | | | | may block on a mutex while on the sleep queue without corrupting it. - Move dropping of Giant to after the acquire of sched_lock. Tested by: John Hay <jhay@icomtek.csir.co.za> jhb
* Don't release and acquire Giant in mi_switch(). Instead, release andjhb2000-11-161-0/+2
| | | | | | | | acquire Giant as needed in functions that call mi_switch(). The releases need to be done outside of the sched_lock to avoid potential deadlocks from trying to acquire Giant while interrupts are disabled. Submitted by: witness
* Use the linux_connect() on alpha rather than passing directly throughgallatin2000-11-161-1/+2
| | | | | | | | | | to our native connect(). This is required to deal with the differences in the way linux handles connects on non-blocking sockets. This gets the private beta of the Compaq Linux/alpha JDK working on FreeBSD/alpha Approved by: marcel
* make the fcntl() flags match what the linux/alpha port uses, notgallatin2000-11-161-9/+11
| | | | what linux/i386 uses
* Add the 'witness_spin_check' per-CPU variable.jhb2000-11-153-0/+3
|
* - Don't acquire/release Giant during an interrupt context for machinejhb2000-11-151-10/+1
| | | | | checks, clock interrupts, and device interrupts. - Assert that Giant is not owned during the main loop of ithd_loop().
* Fix all the interrupt enabled/disabled assertions which were backwards.jhb2000-11-151-6/+6
|
* Don't perform an mi_switch() when we release Giant during cpu_exit(). Wejhb2000-11-151-1/+2
| | | | | | are about to call cpu_switch() anyways. Found by: witness
* Enable all interrupts in switch_trampoline after releasing the sched_lock.jhb2000-11-151-0/+2
| | | | | | This is needed so that kernel threads created before interrupts are enabled do not run with interrupts disabled once the system is up and running.
* Pick up kernelname for bootinfo structure (if possible), otherwisemjacob2000-11-141-5/+13
| | | | from environment.
* Enable linux thread support on the alpha. The guts of linux_clone wasgallatin2000-11-101-1/+57
| | | | | | | | mainly cut-n-pasted from the i386 port, except for the method of setting the child's stack which is the only MD part of this function. I've tested with the example apps shipped with the linux threads source code (ex1-ex6) and with several binary builds of Mozilla.
* Simplify and correct OSF/1 signal handling.gallatin2000-11-103-133/+16
| | | | | | | | | | | | - No signal translation is needed. Our signals match the OSF/1 signals - an OSF/1 sigset_t is 64 bits. Make certain to use all 64-bits of it. We'd previously only used the lower 32 bits. This was mostly harmless as I don't know of an OSF/1 apps which use any signals > 31. However, the alpha Linux ABI uses the osf/1 signal routines and threaded linux apps tyically use signals 32 and 33 to comminicate with the manager thread, so it is important we preserve the upper 32-bits. Reviewed by: marcel (at least in principal)
* Fix typo in END macro (END'ed enable twice)mjacob2000-11-091-1/+1
| | | | | PR: 22713 Submitted by: Bernd Walter <ticso@cicely5.cicely.de>
* Make MINSIGSTKSZ machine dependent, and have the sigaltstackmarcel2000-11-095-3/+14
| | | | | | | | | | | | | | | | | | | | | | syscall compare against a variable sv_minsigstksz in struct sysentvec as to properly take the size of the machine- and ABI dependent struct sigframe into account. The SVR4 and iBCS2 modules continue to have a minsigstksz of 8192 to preserve behavior. The real values (if different) are not known at this time. Other ABI modules use the real values. The native MINSIGSTKSZ is now defined as follows: Arch MINSIGSTKSZ ---- ----------- alpha 4096 i386 2048 ia64 12288 Reviewed by: mjacob Suggested by: bde
OpenPOWER on IntegriCloud