summaryrefslogtreecommitdiffstats
path: root/sys/sparc64
Commit message (Collapse)AuthorAgeFilesLines
* Add COMPAT_FREEBSD4 for the transition. COMPAT_43 was already present.peter2002-10-261-0/+1
|
* Split 4.x and 5.x signal handling so that we can keep 4.x signalpeter2002-10-252-22/+10
| | | | | | | | | | | | | | | | handling clean and functional as 5.x evolves. This allows some of the nasty bandaids in the 5.x codepaths to be unwound. Encapsulate 4.x signal handling under COMPAT_FREEBSD4 (there is an anti-foot-shooting measure in place, 5.x folks need this for a while) and finish encapsulating the older stuff under COMPAT_43. Since the ancient stuff is required on alpha (longjmp(3) passes a 'struct osigcontext *' to the current sigreturn(2), instead of the 'ucontext_t *' that sigreturn is supposed to take), add a compile time check to prevent foot shooting there too. Add uniform COMPAT_43 stubs for ia64/sparc64/powerpc. Tested on: i386, alpha, ia64. Compiled on sparc64 (a few days ago). Approved by: re
* Initialize tick_MHz and related variables much earlier. After the lasttmm2002-10-253-13/+17
| | | | | | | revision of tick.c, this was done at SI_SUB_CLOCKS, which is too late because tick_MHz is required for DELAY() to work. Reviewed by: jake
* Fix iommu_dvmamap_sync() to use the right address when flushing thetmm2002-10-251-1/+1
| | | | | | | | streaming cache. This bug could have the potential to cause data corruption on systems with Psycho U2P bridges (Sabre bridges have no streaming cache). However, due to the usual driver architecture, it is believed that corruption did occur only in rare cases (if at all).
* Greatly improve readability of trap() by using a table to convert betweenjake2002-10-253-239/+165
| | | | | | trap types and signals to send. Rearrange KASSERTs to better handle faults early before curthread is setup, or in the case that it gets corrupted or set to 0.
* Minor cleanups.jake2002-10-251-3/+3
| | | | | - use fields in sysent instead of PS_STRINGS - set TSTATE_PRIV in frame0.tf_tstate for what its worth
* Extract out KSE specific code from machine specific codejulian2002-10-241-17/+2
| | | | | | | | so that there is ony one copy of it. Fix that one copy so that KSEs with no mailbox in a KSE program are not a cause of page faults (this can legitmatly happen). Submitted by: (parts) davidxu
* We always need sys/pcpu.h now, not just for the SMP case.jhb2002-10-231-1/+1
| | | | Approved by: jake
* Remove NO_GEOM from sparc64.phk2002-10-231-2/+0
| | | | Reminded by: jhb
* - Expand struct trapframe to 256 bytes, make all fields fixed width and thejake2002-10-229-156/+303
| | | | | | | | | | | | | | same size. Add some fields that previously overlapped with something else or were missing. - Make struct regs and struct mcontext (minus floating point) the same as struct trapframe so converting between them is easy (null). - Add space for saving floating point state to struct mcontext. This requires that it be 64 byte aligned. - Add assertions that none of these structures change size, as they are part of the ABI. - Remove some dead code in sendsig(). - Save and restore %gsr in struct trapframe. Remember to restore %fsr. - Add some comments to exception.S.
* Start tick at the correct time (cpu_init_clocks), instead of cpu_startup.jake2002-10-222-5/+11
|
* Set kernelname in sparc64_init() so that the kern.bootfilemux2002-10-201-0/+6
| | | | | | sysctl works. This stuff should probably be made MI. Reviewed by: jake
* Use microuptime() instead of microtime() to bound the flush wait totmm2002-10-201-2/+2
| | | | avoid hiccups in case of system time adjustment.
* Add kernel dump support, based on the ia64 version (which was committedtmm2002-10-204-168/+231
| | | | | | | | | | as sparc64/sparc64/dump_machdep.c a while back). Other than ia64 (which uses ELF), sparc64 uses a homegrown format for the dumps (headers are required because the physical address and size of the tsb must be noted, and because physical memory may be discontiguous); ELF would not offer any advantages here. Reviewed by: jake
* - Lock page queue accesses in pmap_release().alc2002-10-201-1/+3
|
* Add two hooks to signal module load and module unload to MD code.marcel2002-10-191-0/+14
| | | | | | | | | | | | The primary reason for this is to allow MD code to process machine specific attributes, segments or sections in the ELF file and update machine specific state accordingly. An immediate use of this is in the ia64 port where unwind information is updated to allow debugging and tracing in/across modules. Note that this commit does not add the functionality to the ia64 port. See revision 1.9 of ia64/ia64/elf_machdep.c. Validated on: alpha, i386, ia64
* Permits UFS ACLs to be used with the GENERIC kernel. Due to recentrwatson2002-10-191-0/+1
| | | | | | | | | | | | | ACL configuration changes, this shouldn't result in different code paths for file systems not explicitly configured for ACLs by the system administrator. For UFS1, administrators must still recompile their kernel to add support for extended attributes; for UFS2, it's sufficient to enable ACLs using tunefs or at mount-time (tunefs preferred for reliability reasons). UFS2, for a variety of reasons, including performance and reliability, is the preferred file system for use with ACLs. Approved by: re
* Explicitely specify an alignment for struct pcb. While all regular pcb'stmm2002-10-191-1/+1
| | | | | are positioned and aligned by md code, dumppcb is just a static variable and requires this.
* When entering the firmware mappings into the kernel tlb, clear all 'soft'tmm2002-10-171-1/+4
| | | | | | | | bits that might be set in the firmware tte data field, and set the soft flag TD_EXEC to mark the page executable. Failing to do the latter would cause fatal instruction faults in the prom in certain situations. Reviewed by: jake
* Add "pci108e,8000" (psycho) and "pci108e,a000" (US-IIi sabre) to the list oftmm2002-10-161-37/+54
| | | | | | | | | | recognized compat properties. This should make the psycho driver attach properly on SPARCengine Ultra AX machines. Switch to a table-driven logic to recognize the ID's, since their number is now large enough to justify this. These changes are analogous to those made in NetBSD r.1.35, but implemented a bit differently.
* Use a linked list to keep the psycho softcs instead of a staticallytmm2002-10-162-22/+12
| | | | | | sized array. While being there, deuglify the psycho pair detection loop which became quite awkward in a previous code reorganization.
* The a.out md_coredump stuff isn't referenced anywhere anymore, andpeter2002-10-151-3/+0
| | | | hasn't been filled in for ages.. Nuked.
* Remove the P1003_1B kernel option; it is no longer used.mike2002-10-131-2/+1
|
* #ifdef _KERNEL not #if _KERNEL.mike2002-10-131-1/+1
| | | | Pointy hat to: mike
* Add standards visibility conditionals. Change any uses of sigset_t tomike2002-10-131-5/+9
| | | | struct __sigset to avoid depending on objects from <sys/signal.h>.
* Removed unused tl0_syscall.jake2002-10-121-84/+0
|
* Add conditionals to allow va_list to be defined in other headers.mike2002-10-061-0/+4
|
* o Add conditionals to allow va_list to be defined in other headers.mike2002-10-061-0/+6
| | | | | o Standardize on _MACHINE_STDARG_H_ to allow multiple header includes. o Restrict the definition of va_copy() to C99 environments.
* Add two extern's for adjkerntz and wall_cmos_clock, all othermux2002-10-051-0/+3
| | | | | | | | archs have them there, alghough the variable are declared in subr_clock.c. These should probably be moved into some MI place. Approved by: jake
* NB: This commit does *NOT* make GEOM the default in FreeBSDphk2002-10-051-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NB: But it will enable it in all kernels not having options "NO_GEOM" Put the GEOM related options into the intended order. Add "options NO_GEOM" to all kernel configs apart from NOTES. In some order of controlled fashion, the NO_GEOM options will be removed, architecture by architecture in the coming days. There are currently three known issues which may force people to need the NO_GEOM option: boot0cfg/fdisk: Tries to update the MBR while it is being used to control slices. GEOM does not allow this as a direct operation. SCSI floppy drives: Appearantly the scsi-da driver return "EBUSY" if no media is inserted. This is wrong, it should return ENXIO. PC98: It is unclear if GEOM correctly recognizes all variants of PC98 disklabels. (Help Wanted! I have neither docs nor HW) These issues are all being worked. Sponsored by: DARPA & NAI Labs.
* Fix namespace issues by using visibility conditionals frommike2002-10-051-1/+3
| | | | <sys/cdefs.h>.
* style(9) <machine/setjmp.h> headers so they look mostly the same.mike2002-10-041-4/+4
|
* New bus_dma interfaces for use by crypto device drivers:sam2002-10-042-0/+248
| | | | | | | | o bus_dmamap_load_mbuf o bus_dmamap_load_uio Test on i386. Known to compile on alpha and sparc64, but not tested. Otherwise untried.
* Some kernel threads try to do significant work, and the default KSTACK_PAGESscottl2002-10-021-14/+64
| | | | | | | | | | | | | doesn't give them enough stack to do much before blowing away the pcb. This adds MI and MD code to allow the allocation of an alternate kstack who's size can be speficied when calling kthread_create. Passing the value 0 prevents the alternate kstack from being created. Note that the ia64 MD code is missing for now, and PowerPC was only partially written due to the pmap.c being incomplete there. Though this patch does not modify anything to make use of the alternate kstack, acpi and usb are good candidates. Reviewed by: jake, peter, jhb
* Remove options NO_MODULES=true. Lots of modules build, but may not loadjake2002-10-021-4/+0
| | | | or work properly. MAC modules work at least :).
* Convert the bus space accessors from macros to inlines. This fixes somejake2002-10-011-204/+316
| | | | | | | problems with drivers that expect functions rather than function like macros. Reviewed by: tmm
* Get rid of the TODO macro in the few places that still need work; eitherjake2002-10-015-8/+5
| | | | | comment it out or change to explicit panics. It conflicts with things like #if TODO in drivers.
* Add needed include of queue.h.jake2002-10-011-0/+1
|
* Use M_NOWAIT instead of M_WAITOK when allocating dmamaps; the allocationsjake2002-10-011-4/+7
| | | | | | | | functions may be called from a device strategy routine when sleeping is bad. Submitted by: phk Reviewed by: tmm
* Renamed intr_enqueue to intr_vector and intr_dequeue to intr_fast, tojake2002-09-285-12/+12
| | | | better reflect how they are called.
* Moved most interrupt related code to a new file, interrupt.S.jake2002-09-282-149/+183
|
* Add a workaround for what seems to be confusion between binutils and thejake2002-09-271-8/+39
| | | | | | | | | | | sparc v9 ABI. The Elf_Rela records for local symbols appear to already have the symbol's value added in to the addend field, even though the ABI specifies we need to lookup the symbol and add its value too. This breaks text relocations in klds because the symbol's value is added twice, and the resulting address points off into nowhere land, so for now just use the addend. Tested by: rwatson
* Removed debug code.jake2002-09-251-57/+1
|
* Pass the function to call (trap or syscall) to tl0_trap and tl1_trap in %o2.jake2002-09-251-7/+31
|
* Rearrange tl1_trap slightly, also save and restore the out registers sojake2002-09-241-12/+27
| | | | that instruction emulation is possible in kernel mode.
* Allocate stack space for the trapframe along with the normal registerjake2002-09-241-5/+1
| | | | frame in the save instruction, rather than doing a separate sub.
* Split user trap processing out into a separate routine so that traps whichjake2002-09-241-67/+109
| | | | never result in user traps don't have to plow through it.
* Be careful not to define GCC-specific optimizations in the non-GCCmike2002-09-231-2/+11
| | | | case.
* Call trap directly for exceptional cases that need more processing onjake2002-09-221-26/+20
| | | | | return to usermode, rather than branching back to a label before the original call.
* Remove unneeded opt headers.jake2002-09-221-3/+0
| | | | Noticed by: benno
OpenPOWER on IntegriCloud