summaryrefslogtreecommitdiffstats
path: root/sys/powerpc
Commit message (Collapse)AuthorAgeFilesLines
* Fix whitespace problems with option lines.obrien2003-02-131-31/+31
|
* Fix the style of the SCHED_4BSD commit.obrien2003-02-131-1/+1
|
* Missed odd address test when transcribing the Alpha version.grehan2003-02-131-1/+1
| | | | This fixes the checksum problems seen with telnet.
* Implement fpclassify():mike2003-02-082-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | o Add a MD header private to libc called _fpmath.h; this header contains bitfield layouts of MD floating-point types. o Add a MI header private to libc called fpmath.h; this header contains bitfield layouts of MI floating-point types. o Add private libc variables to lib/libc/$arch/gen/infinity.c for storing NaN values. o Add __double_t and __float_t to <machine/_types.h>, and provide double_t and float_t typedefs in <math.h>. o Add some C99 manifest constants (FP_ILOGB0, FP_ILOGBNAN, HUGE_VALF, HUGE_VALL, INFINITY, NAN, and return values for fpclassify()) to <math.h> and others (FLT_EVAL_METHOD, DECIMAL_DIG) to <float.h> via <machine/float.h>. o Add C99 macro fpclassify() which calls __fpclassify{d,f,l}() based on the size of its argument. __fpclassifyl() is never called on alpha because (sizeof(long double) == sizeof(double)), which is good since __fpclassifyl() can't deal with such a small `long double'. This was developed by David Schultz and myself with input from bde and fenner. PR: 23103 Submitted by: David Schultz <dschultz@uclink.Berkeley.EDU> (significant portions) Reviewed by: bde, fenner (earlier versions)
* Oops. Include opt_ddb.h.benno2003-02-061-0/+2
|
* Add a driver that attaches to the gpio node of macio and allows you to enterbenno2003-02-062-1/+143
| | | | | | | DDB when the interrupt button (aka the "programmer's switch") is pressed. This isn't unfortunately an NMI, but it's a handy way to get into DDB quickly if needed.
* Add a cast to silence a warning.benno2003-02-061-1/+1
|
* If a device tries to allocate an interrupt that's not on it's resource list,benno2003-02-061-0/+16
| | | | assume that the child knows what it's doing and add it to the resource list.
* GC an unused variable.benno2003-02-052-4/+0
|
* Export the ns_per_tick variable through md_var.h rather than by declaringbenno2003-02-054-4/+4
| | | | it extern in cpu.c.
* - Use cpu_setup() instead of identifycpu().benno2003-02-052-160/+2
| | | | - Remove identifycpu().
* Add cpu.c. This contains one exported function, cpu_setup(), which handlesbenno2003-02-052-0/+366
| | | | | | setup of and printing information about cpus. Obtained from: NetBSD (parts)
* - Update spr.hbenno2003-02-052-79/+325
| | | | | | | | | | - Add hid.h Obtained from: NetBSD NOTE: This undoes some changes I'd made to prefix the processor name defines with PVR_. This was due to my original decision to use MPC750 as a cpu name. With this changed, the PVR_ change is no longer required.
* Add an inline function wrapper for the mfpvf (Move From Processor Versionbenno2003-02-051-0/+10
| | | | Register) instruction.
* Not all cpus are MPC750s. Replace the MPC750 cpu option with OEA. Thisbenno2003-02-052-2/+2
| | | | | stands for Operating Environment Architecture and is the specification that all of the MPC6xx, MPC7xx, MPC7xxx and IBM7xx CPUs adhere to.
* Replace the inline asm in delay() with a while loop. This may not be asbenno2003-02-052-16/+8
| | | | | efficient but it appears to actually work. Some investigation may be required.
* - Rename the "powerpc" timecounter to the "decrementer" timecounter.benno2003-02-055-14/+40
| | | | - Initialise it earlier.
* Fix a problem in bus_dmamap_load_{mbuf,uio} when the first mbuf or the firstharti2003-02-041-8/+12
| | | | | | | | | | | | uio segment is empty. In this case no dma segment is create by bus_dmamap_load_buffer, but the calling routine clears the first flag. Under certain combinations of addresses of the first and second mbuf/uio buffer this leads to corrupted DMA segment descriptors. This was already fixed by tmm in sparc64/sparc64/iommu.c. PR: kern/47733 Reviewed by: sam Approved by: jake (mentor)
* Split statclock into statclock and profclock, and made the method for drivingjake2003-02-032-2/+12
| | | | | | | | | | | | | statclock based on profhz when profiling is enabled MD, since most platforms don't use this anyway. This removes the need for statclock_process, whose only purpose was to subdivide profhz, and gets the profiling clock running outside of sched_lock on platforms that implement suswintr. Also changed the interface for starting and stopping the profiling clock to do just that, instead of changing the rate of statclock, since they can now be separate. Reviewed by: jhb, tmm Tested on: i386, sparc64
* Add device zs to GENERIC on powerpc.benno2003-02-021-0/+1
|
* Put replace spaces with tabs in keeping with the rest of the file.joe2003-02-011-1/+1
|
* Reversion of commit by Davidxu plus fixes since applied.julian2003-02-014-4/+4
| | | | | | | | I'm not convinced there is anything major wrong with the patch but them's the rules.. I am using my "David's mentor" hat to revert this as he's offline for a while.
* - Introduce a flags value into the interrupt handler structure.benno2003-02-012-7/+11
| | | | | - Copy the flags passed to inthand_add into the flags value. - If the interrupt is INTR_FAST, re-enable the irq after running the handler.
* - add pmap_pagedaemon_waken variablegrehan2003-02-013-141/+288
| | | | | | | | | | | | | | | - remove dead code and fix warnings in pmap_zero_page/zero_page_area - implement pmap_clear_reference pmap_ts_referenced pmap_page_exists_quick pmap_remove_all - align pmap_qenter/qremove closer with i386 code - fix vm_page locking in pmap_new_thread (from benno) - add new parameter to pmap_clear_bit to return original pte value Approved by: benno
* Make nirq mean 'number of irqs' and not 'last irq'.benno2003-02-011-5/+5
|
* Rework of how memory resources are discovered and dealt with in macio.benno2003-01-304-68/+162
| | | | | | | | | - Store the OpenFirmware "reg" property in the macio ivars. - Use a struct to define the structure of a "reg" property entry. - Discover all memory ranges, not just the first. - In ata_macio, manage our own range and hand out our own allocations using bus_space_subregion. - Fix bus_space_subregion to handle subregions of sparse maps.
* Put the right fix in. Instead of deleting the declaration of __FBSDID, webenno2003-01-281-0/+7
| | | | undef it before this definition.
* Back the previous commit out. It didn't actually fix the problem I wasbenno2003-01-271-3/+5
| | | | | | seeing and the memory barrier isn't needed with the bridges we're using. Fix the function style however.
* Back out some changes that snuck in with the last commit.benno2003-01-274-538/+62
| | | | Pointy hat to: benno
* Flesh out bus_dmamap_sync.benno2003-01-275-63/+544
|
* Use td->td_sticks, not td->td_kse->ke_sticks.benno2003-01-272-2/+2
| | | | Forgotten by: davidxu
* Remove a duplicate definition of the __FBSDID macro.benno2003-01-271-6/+0
|
* Move UPCALL related data structure out of kse, introduce a newdavidxu2003-01-262-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | data structure called kse_upcall to manage UPCALL. All KSE binding and loaning code are gone. A thread owns an upcall can collect all completed syscall contexts in its ksegrp, turn itself into UPCALL mode, and takes those contexts back to userland. Any thread without upcall structure has to export their contexts and exit at user boundary. Any thread running in user mode owns an upcall structure, when it enters kernel, if the kse mailbox's current thread pointer is not NULL, then when the thread is blocked in kernel, a new UPCALL thread is created and the upcall structure is transfered to the new UPCALL thread. if the kse mailbox's current thread pointer is NULL, then when a thread is blocked in kernel, no UPCALL thread will be created. Each upcall always has an owner thread. Userland can remove an upcall by calling kse_exit, when all upcalls in ksegrp are removed, the group is atomatically shutdown. An upcall owner thread also exits when process is in exiting state. when an owner thread exits, the upcall it owns is also removed. KSE is a pure scheduler entity. it represents a virtual cpu. when a thread is running, it always has a KSE associated with it. scheduler is free to assign a KSE to thread according thread priority, if thread priority is changed, KSE can be moved from one thread to another. When a ksegrp is created, there is always N KSEs created in the group. the N is the number of physical cpu in the current system. This makes it is possible that even an userland UTS is single CPU safe, threads in kernel still can execute on different cpu in parallel. Userland calls kse_create to add more upcall structures into ksegrp to increase concurrent in userland itself, kernel is not restricted by number of upcalls userland provides. The code hasn't been tested under SMP by author due to lack of hardware. Reviewed by: julian
* - Introduce the SCHED_ULE and SCHED_4BSD options for compile time selectionjeff2003-01-261-0/+1
| | | | | of the scheduler. - Add SCHED_4BSD as the scheduler for all kernel config files in cvs.
* Remove BAT invalidation. This is done later in the boot sequence,grehan2003-01-222-34/+0
| | | | | | | so isn't required here, and seems to cause problems when booting from disk. Approved by: benno
* Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0.alfred2003-01-216-7/+7
| | | | Merge M_NOWAIT/M_DONTWAIT into a single flag M_NOWAIT.
* Resolve relative relocations in klds before trying to parse the module'sjake2003-01-211-2/+16
| | | | | | | | | | | | metadata. This fixes module dependency resolution by the kernel linker on sparc64, where the relocations for the metadata are different than on other architectures; the relative offset is in the addend of an Elf_Rela record instead of the original value of the location being patched. Also fix printf formats in debug code. Submitted by: Hartmut Brandt <brandt@fokus.gmd.de> PR: 46732 Tested on: alpha (obrien), i386, sparc64
* include cdefs.h so as to unbreak the libc buildgallatin2003-01-201-0/+2
|
* Removed unnecessary includes and brought up to date with atagrehan2003-01-181-4/+15
| | | | common code by adding lock functions.
* Stub profile.h, required for userland builds.grehan2003-01-181-0/+65
| | | | Approved by: Benno
* <machine/ieee.h>, taken from sparc64grehan2003-01-181-0/+146
| | | | Approved by: Benno
* Fix bugs with operand ordering and unnecessary sync/eieio ops. Mostlygrehan2003-01-181-59/+71
| | | | | | obtained from Alpha atomic.h Approved by: Benno
* Allow the MD frame definition to be seen in. Required for truss/ptrace.grehan2003-01-181-3/+1
| | | | Approved by: Benno
* RAIDframe requires LONG_BITgrehan2003-01-182-0/+6
| | | | Approved by: Benno
* Prepended underscores to macro local vars, avoiding gcc "declarationgrehan2003-01-181-6/+6
| | | | | | shadows global" warning Approved by: benno
* Change definition of int64 to avoid gcc3.2.1 complaints. Taken from i386grehan2003-01-181-2/+13
| | | | Approved by: benno
* Merge all the various copies of vm_fault_quick() into a singledillon2003-01-162-32/+0
| | | | portable copy.
* Merge all the various copies of vmapbuf() and vunmapbuf() into a singledillon2003-01-152-148/+0
| | | | | | | | portable copy. Note that pmap_extract() must be used instead of pmap_kextract(). This is precursor work to a reorganization of vmapbuf() to close remaining user/kernel races (which can lead to a panic).
* Correct an off-by-one error in the calculation of the number of interruptbenno2003-01-131-1/+1
| | | | resources we're managing.
* Make ofw_pci_find_node() use the reg property instead of thebenno2003-01-091-5/+5
| | | | assigned-addresses property. This works a lot better.
OpenPOWER on IntegriCloud