summaryrefslogtreecommitdiffstats
path: root/sys/sparc64
Commit message (Collapse)AuthorAgeFilesLines
* Pass vm_page_t instead of physical addresses to pmap_zero_page[_area]()peter2002-04-151-4/+8
| | | | | | | | | | | and pmap_copy_page(). This gets rid of a couple more physical addresses in upper layers, with the eventual aim of supporting PAE and dealing with the physical addressing mostly within pmap. (We will need either 64 bit physical addresses or page indexes, possibly both depending on the circumstances. Leaving this to pmap itself gives more flexibilitly.) Reviewed by: jake Tested on: i386, ia64 and (I believe) sparc64. (my alpha was hosed)
* option<space><tab>obrien2002-04-151-12/+12
|
* o Remove vm_map_growstack() and useracc() from sendsig(). Copyout() andalc2002-04-131-20/+5
| | | | | suword() will automatically grow the stack if needed. o Add a comment that osigreturn() and sigreturn() are MPSAFE.
* Include <sys/cdefs.h> for definition of __BSD_VISIBLE.mike2002-04-121-0/+1
| | | | Pointy hat to: mike
* Remove the hack for segsz_t from <sys/types.h>; use the normalmike2002-04-101-0/+1
| | | | _BSD_FOO_T_ method for defining segsz_t.
* Add manifest constants: _LITTLE_ENDIAN, _BIG_ENDIAN, _PDP_ENDIAN, andmike2002-04-101-6/+15
| | | | | | _BYTE_ORDER. These are far more useful than their non-underscored equivalents as these can be used in restricted namespace environments. Mark the non-underscored variants as deprecated.
* Forgot these files in previous commit to frame.h. Also add needed includejake2002-04-092-7/+8
| | | | of machine/emul.h.
* Oops. machine/emul.h didn't exist yet.jake2002-04-091-0/+39
|
* Rename some fields in struct frame to be compatible with NetBSD/OpenBSD,jake2002-04-095-23/+33
| | | | | | | | | | | and add some compatibility defines. Add fields for ins and locals to struct reg also for the same reason; these aren't filled in yet because getting at those registers sucks and I'd rather not save them in the trapframe just for this. Reorder struct reg to be ABI compatible as well. Add needed include of machine/emul.h. This gets pmdb (poor man's debugger) from OpenBSD mostly compiling but it doesn't work yet :(
* Add device se (commented out, most people won't find this useful yet).jake2002-04-091-0/+1
|
* Enable device pass.jake2002-04-081-1/+1
|
* GC the "dumplo" variable, which is no longer used.phk2002-04-071-1/+0
| | | | A lot of sys/*/*/machdep.c seems not to be.
* Enable isp and ispfw. Remove the nonexistant SUN_DISKLABEL andjake2002-04-061-6/+3
| | | | ATA_ENABLE_BUSMATER.
* Provide an implementation of KTR_CPU that doesn't use pcpu, so we don'tjake2002-04-062-27/+31
| | | | | crash and burn if its not setup yet. Add timestamp, cpu, and (fake) file and line recording to the asm version of CTR.
* Remove invalid KASSERTS.jake2002-04-061-9/+0
|
* Add missing header for the eeprom driver frontents.tmm2002-04-051-0/+68
|
* Add MD frontents for the mk48txx driver, ported from NetBSD, and removetmm2002-04-044-13/+406
| | | | | stub implementations of inittodr() and resettodr(), now that the MI ones are used.
* Change callers of mtx_init() to pass in an appropriate lock type name. Injhb2002-04-042-2/+2
| | | | | | | most cases NULL is passed, but in some cases such as network driver locks (which use the MTX_NETWORK_LOCK macro) and UMA zone locks, a name is used. Tested on: i386, alpha, sparc64
* Moved signal handling and rescheduling from userret() to ast() so thatbde2002-04-041-0/+1
| | | | | | | | | | | they aren't in the usual path of execution for syscalls and traps. The main complication for this is that we have to set flags to control ast() everywhere that changes the signal mask. Avoid locking in userret() in most of the remaining cases. Submitted by: luoqi (first part only, long ago, reorganized by me) Reminded by: dillon
* Dike out a highly insecure UCONSOLE option.ru2002-04-031-1/+0
| | | | | | TIOCCONS must be able to VOP_ACCESS() /dev/console to succeed. Obtained from: OpenBSD
* - Move the MI mutexes sched_lock and Giant from being declared in thejhb2002-04-021-12/+1
| | | | | | | | | | various machdep.c's to being declared in kern_mutex.c. - Add a new function mutex_init() used to perform early initialization needed for mutexes such as setting up thread0's contested lock list and initializing MI mutexes. Change the various MD startup routines to call this function instead of duplicating all the code themselves. Tested on: alpha, i386
* Fix crashes that would happen when more than one 4MB page was used totmm2002-04-022-21/+13
| | | | | | | | | | hold the kernel text, data and loader metadata by not using a fixed slot to store the TSB page(s) into. Enter fake 8k page entries into the kernel TSB that cover the 4M kernel page(s), sot that pmap_kenter() will work without having to treat these pages as a special case. Problem reported by: mjacob, obrien Problem spotted and 4M page handling proposed by: jake
* Remove the superfluous second argument from the IOTSBSLOT() macro.tmm2002-04-022-16/+16
|
* Lower UPA_MEMSTART to 0x1c000000000. This is required for some largertmm2002-04-021-1/+1
| | | | Enterprise machines.
* Set mp_maxid so that UMA works with SMP.tmm2002-04-021-0/+1
| | | | Submitted by: jake
* Do not try to set up the PCI bus B error interrupt on "sabre"s, sincetmm2002-04-021-12/+14
| | | | | it is only available on "psycho"s. The same applies to the power management interrupt, which is not enabled by default though.
* Remove a debugging panic that was triggered when a resource that was outtmm2002-04-021-5/+2
| | | | of range was tried to be allocated; just return failure instead.
* Stage-2 commit of the critical*() code. This re-inlines cpu_critical_enter()dillon2002-04-013-26/+75
| | | | | | | | | | | | | | | | | | | | | and cpu_critical_exit() and moves associated critical prototypes into their own header file, <arch>/<arch>/critical.h, which is only included by the three MI source files that need it. Backout and re-apply improperly comitted syntactical cleanups made to files that were still under active development. Backout improperly comitted program structure changes that moved localized declarations to the top of two procedures. Partially re-apply one of the program structure changes to move 'mask' into an intermediate block rather then in three separate sub-blocks to make the code more readable. Re-integrate bug fixes that Jake made to the sparc64 code. Note: In general, developers should not gratuitously move declarations out of sub-blocks. They are where they are for reasons of structure, grouping, readability, compiler-localizability, and to avoid developer-introduced bugs similar to several found in recent years in the VFS and VM code. Reviewed by: jake
* Move the CTASSERT macro from MD code to systm.h alongside KASSERT so otherjake2002-04-011-4/+0
| | | | | | | | | | | | code can use it. This takes a single constant argument and fails to compile if it is 0 (false). The main application of this is to make assertions about structure sizes at compile time, in order to validate assumptions made in other code. Examples: CTASSERT(sizeof(struct foo) == FOO_SIZEOF); CTASSERT(sizeof(struct foo) == (1 << FOO_SHIFT)); Requested by: jhb, phk
* ktr changes to improve performance and make writing a userland utility tojake2002-04-011-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | dump the trace buffer feasible. - Remove KTR_EXTEND. This changes the format of the trace entries when activated, making writing a userland tool which is not tied to a specific kernel configuration difficult. - Use get_cyclecount() for timestamps. nanotime() is much too heavy weight and requires recursion protection due to ktr traces occuring as a result of ktr traces. KTR_VERBOSE may still require recursion protection, which is now conditional on it. - Allow KTR_CPU to be overridden by MD code. This is so that it is possible to trace early in startup before pcpu and/or curthread are setup. - Add a version number for the ktr interface. A userland tool can check this to detect mismatches. - Use an array for the parameters to make decoding in userland easier. - Add file and line recording to the non-extended traces now that the extended version is no more. These changes will break gdb macros to decode the extended version of the trace buffer which are floating around. Users of these macros should either use the show ktr command in ddb, or use the userland utility which can be run on a core dump. Approved by: jhb Tested on: i386, sparc64
* Centralize the "bootdev" and "dumpdev" variables. They are still prettyphk2002-03-311-2/+0
| | | | | bogus all things considered, but at least now they don't camouflage as being MD variables.
* Correct a comment: sendsig() calls the MI vm_map_growstack() butalc2002-03-301-1/+1
| | | | the corresponding comment refers to a MD grow_stack() that doesn't exist.
* Remove abuse of intr_disable/restore in MI code by moving the loop in ast()jake2002-03-292-8/+46
| | | | | | | | back into the calling MD code. The MD code must ensure no races between checking the astpening flag and returning to usermode. Submitted by: peter (ia64 bits) Tested on: alpha (peter, jeff), i386, ia64 (peter), sparc64
* Don't be too fancy with null'ed out functions.obrien2002-03-281-20/+3
| | | | Requested by: jake
* Add sysbeep() for the msmith RAID drivers.obrien2002-03-281-0/+27
|
* style(9)obrien2002-03-281-1/+0
| | | | Approved by: jake
* Add a new mtx_init option "MTX_DUPOK" which allows duplicate acquires of locksjeff2002-03-271-1/+1
| | | | | | | | | | | with this flag. Remove the dup_list and dup_ok code from subr_witness. Now we just check for the flag instead of doing string compares. Also, switch the process lock, process group lock, and uma per cpu locks over to this interface. The original mechanism did not work well for uma because per cpu lock names are unique to each zone. Approved by: jhb
* Fix style bugs.jake2002-03-271-3/+8
|
* Fix breakage.jake2002-03-271-1/+1
|
* Compromise for critical*()/cpu_critical*() recommit. Cleanup the interruptdillon2002-03-273-18/+68
| | | | | | | | | | | | | | | | | | | disablement assumptions in kern_fork.c by adding another API call, cpu_critical_fork_exit(). Cleanup the td_savecrit field by moving it from MI to MD. Temporarily move cpu_critical*() from <arch>/include/cpufunc.h to <arch>/<arch>/critical.c (stage-2 will clean this up). Implement interrupt deferral for i386 that allows interrupts to remain enabled inside critical sections. This also fixes an IPI interlock bug, and requires uses of icu_lock to be enclosed in a true interrupt disablement. This is the stage-1 commit. Stage-2 will occur after stage-1 has stabilized, and will move cpu_critical*() into its own header file(s) + other things. This commit may break non-i386 architectures in trivial ways. This should be temporary. Reviewed by: core Approved by: core
* Add missing includes for the KTRACE case.tmm2002-03-251-0/+4
|
* Add missing declarations.tmm2002-03-251-0/+4
|
* Make this compile (submitted by jake), add a missing include.tmm2002-03-251-1/+2
|
* Remove second copy of iommu_decode_fault() which I accidentially added.tmm2002-03-251-15/+0
| | | | Pointy hat to: tmm
* Guard against redefining __gnuc_va_list.obrien2002-03-241-1/+2
|
* Revamp the busdma implementation a bit:tmm2002-03-247-223/+450
| | | | | | | | | | | | - change the IOMMU support code so that it supports overcommittting the available DVMA memory, while still allocating as lazily as possible. This is achieved by limiting the preallocation, and deferring the allocation to map load time when it fails. In the latter case, the DVMA memory reserved for unloaded maps can be stolen to free up enough memory for loading a map. - allow NULL settings in the method tables, and search the parent tags until an appropriate implementation is found. This allows to remove some kluges in the old implementation.
* Fix sparc64_bus_mem_unmap() to pass the right address to kmem_free().tmm2002-03-241-1/+1
|
* Make the OpenFirmware interrupt mapping code more generic, to reducetmm2002-03-2411-282/+288
| | | | | | | | | | the bus-dependent code and to be able to support more systems. The core of the new code is mostly obtained from NetBSD. Kluge the interrupt routing methods of the psycho and apb drivers so that an intline of 0 can be handled for now; real routing is still not possible (all intline registers are preinitialized instead); this will require a sparc64-specific adaption of the driver for generic PCI-PCI bridges with a custom routing method to work right.
* Map the device memory belonging to resources of type SYS_RES_MEMORY intotmm2002-03-241-0/+17
| | | | KVA upon activation so that rman_get_virtual() works as expected.
* Add code to print the fault virtual address for uncorrectable DMA errorstmm2002-03-234-0/+33
| | | | | caused by IOMMU misses to aid debugging. This will only work on UltraSPARC-IIi and IIe.
OpenPOWER on IntegriCloud