summaryrefslogtreecommitdiffstats
path: root/sys/powerpc/include
Commit message (Collapse)AuthorAgeFilesLines
* Add sys file required for IEEE fp functions.grehan2004-02-121-0/+37
| | | | Submitted by: Suleiman Souhlal <refugee@segfaulted.com>
* Interrupt statistics, vmstat -i now works.grehan2004-02-111-0/+3
| | | | | | Submitted by: Suleiman Souhlal <refugee@segfaulted.com> Slightly modified by: grehan Derived from: i386
* Cleaned up param.h:grehan2004-02-114-30/+16
| | | | | | | | | | | - culled long-dead #define's - segment register defs moved to sr.h - NPMAPS moved to pmap.h - KERNBASE moved to vmparam.h - removed include of <machine/cpu.h> and fixed src files that relied on this. Modifying segment register code no longer causes gcc rebuilds :-)
* Definitions for MPC7457 CPU type and HID0 bitsgrehan2004-02-092-35/+42
|
* Move temporary register save area from exception-vector memory togrehan2004-02-041-3/+15
| | | | | | per-CPU memory. This allows for interrupt handling on multiple CPUs. Obtained from: NetBSD
* Implement UMA_MD_SMALL_ALLOC, since the BAT registers allow directgrehan2004-01-291-0/+6
| | | | | | | addressing of memory. Makes a substantial improvement for apps that stress the limited amount of KVM on PPC (e.g. untarring the ports tree). uma_machdep.c stolen from amd64/ia64.
* A syscons implementation using the 8-bit framebuffer set up bygrehan2004-01-211-0/+71
| | | | | | | OpenFirmware. Not at all optimized, but provides a PC-style user-experience. Tested on revA imac, B&W G3, 2k iBook, and G4 eMac.
* Update 128-bit long double constants to match what is expectedgrehan2004-01-211-9/+10
| | | | by libc
* Make the OpenPic driver bus-independent, with attachments forgrehan2004-01-131-1/+29
| | | | | | | | | | the MacIO chip and PSIM's IOBus. Bus-specific drivers should use the identify method to attach themselves to nexus so interrupt can be allocated before the h/w is probed. The 'early attach' routine in openpic is used for this stage of boot. When h/w is probed, the openpic can be attached properly. It will enable interrupts allocated prior to this.
* Remove hard-coded knowledge of specific OFW devices. Use bus_generic_probegrehan2004-01-131-0/+5
| | | | | | | | | | | and add_child entry point to allow devices to use the identify method to add themselves if need be (e.g. openpic, syscons). Export interrupt-controller-add routine for extern int cntlr drivers. Eliminate recursive OFW device-tree walk and only iterate the top-level ala sparc64. Allow child devices to set the device type with write_ivars. Step 1 of many in removing the hard-dependency on OpenFirmware.
* GC the unused <machine/kse.h> file.peter2003-12-241-38/+0
|
* - removed obsolete ppc_exit/ppc_boot functionsgrehan2003-12-101-2/+0
| | | | | | | - OpenFirmware returns overlapping memory regions. Use a simple brute force algorithm to merge these into non-overlapping regions. This fixes bugs in reporting of available memory and also prevents pages from being added twice in the VM system.
* Use the "shut-down" and "reset-all" Forth procedures to halt andgallatin2003-12-091-0/+2
| | | | | | | | | reboot, as calling OF_exit() just hangs a mac. FreeBSD on my G4 800Mhz mac behaves identically to OSX for halt and reboot now. Reviewed by: grehan (who also supplied the concept and sample code)
* Make breakpoint() actually break into ddb.gallatin2003-12-091-5/+6
| | | | Reviewed by: grehan
* Widen the enable/disable helper function's argument in line with thepeter2003-11-171-1/+1
| | | | ithread_create() changes etc. This should be mostly a NOP.
* - Modify alpha's sf_buf implementation to use the direct virtual-to-alc2003-11-161-0/+56
| | | | | | | | | physical mapping. - Move the sf_buf API to its own header file; make struct sf_buf's definition machine dependent. In this commit, we remove an unnecessary field from struct sf_buf on the alpha, amd64, and ia64. Ultimately, we may eliminate struct sf_buf on those architecures except as an opaque pointer that references a vm page.
* Move pmap_resident_count() from the MD pmap.h to the MI pmap.h.bms2003-10-061-1/+0
| | | | | | | | Add a definition of pmap_wired_count(). Add a definition of vmspace_wired_count(). Reviewed by: truckman Discussed with: peter
* DELAY must be a routine, not a macro definition.grehan2003-09-261-2/+0
|
* Add sysentvec->sv_fixlimits() hook so that we can catch cases on 64 bitpeter2003-09-251-12/+0
| | | | | | | | | | | | | | | | | | | | | systems where the data/stack/etc limits are too big for a 32 bit process. Move the 5 or so identical instances of ELF_RTLD_ADDR() into imgact_elf.c. Supply an ia32_fixlimits function. Export the clip/default values to sysctl under the compat.ia32 heirarchy. Have mmap(0, ...) respect the current p->p_limits[RLIMIT_DATA].rlim_max value rather than the sysctl tweakable variable. This allows mmap to place mappings at sensible locations when limits have been reduced. Have the imgact_elf.c ld-elf.so.1 placement algorithm use the same method as mmap(0, ...) now does. Note that we cannot remove all references to the sysctl tweakable maxdsiz etc variables because /etc/login.conf specifies a datasize of 'unlimited'. And that causes exec etc to fail since it can no longer find space to mmap things.
* _MACHINE/_MACHINE_ARCH shouldn't be quoted. Found by trying togrehan2003-09-241-2/+2
| | | | compile the isp driver.
* Standardize idempotentcy ifdefs. Consistently use _MACHINE_VARARGS_H_kan2003-09-011-3/+3
| | | | symbol.
* Further cleanup <machine/cpu.h> and <machine/md_var.h>: move the MImarcel2003-08-162-4/+6
| | | | | | | | | | | | | | | | | | | prototypes of cpu_halt(), cpu_reset() and swi_vm() from md_var.h to cpu.h. This affects db_command.c and kern_shutdown.c. ia64: move all MD prototypes from cpu.h to md_var.h. This affects madt.c, interrupt.c and mp_machdep.c. Remove is_physical_memory(). It's not used (vm_machdep.c). alpha: the MD prototypes have been left in cpu.h with a comment that they should be there. Moving them is left for later. It was expected that the impact would be significant enough to be done in a seperate commit. powerpc: MD prototypes left in cpu.h. Comment added. Suggested by: bde Tested with: make universe (pc98 incomplete)
* Expand inline the relevant parts of src/COPYRIGHT for Matt Dillon'simp2003-08-121-2/+24
| | | | | | copyrighted files. Approved by: Matt Dillon
* - Since td_critnest is now initialized in MI code, it doesn't have to bejhb2003-08-041-2/+0
| | | | | | set in cpu_critical_fork_exit() anymore. - As far as I can tell, cpu_thread_link() has never been used, not even when it was originally added, so remove it.
* Deal with GCC annoyingly defining _BIG_ENDIAN.obrien2003-08-031-0/+1
|
* Deal with 'options KSTACK_PAGES' being a global option.peter2003-07-311-2/+2
|
* - Introduce a new busdma flag BUS_DMA_ZERO to request for zero'edmux2003-07-271-0/+1
| | | | | | | memory in bus_dmamem_alloc(). This is possible now that contigmalloc() supports the M_ZERO flag. - Remove the locking of Giant around calls to contigmalloc() since contigmalloc() now grabs Giant itself.
* Mega busdma API commit.scottl2003-07-011-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | Add two new arguments to bus_dma_tag_create(): lockfunc and lockfuncarg. Lockfunc allows a driver to provide a function for managing its locking semantics while using busdma. At the moment, this is used for the asynchronous busdma_swi and callback mechanism. Two lockfunc implementations are provided: busdma_lock_mutex() performs standard mutex operations on the mutex that is specified from lockfuncarg. dftl_lock() is a panic implementation and is defaulted to when NULL, NULL are passed to bus_dma_tag_create(). The only time that NULL, NULL should ever be used is when the driver ensures that bus_dmamap_load() will not be deferred. Drivers that do not provide their own locking can pass busdma_lock_mutex,&Giant args in order to preserve the former behaviour. sparc64 and powerpc do not provide real busdma_swi functions, so this is largely a noop on those platforms. The busdma_swi on is64 is not properly locked yet, so warnings will be emitted on this platform when busdma callback deferrals happen. If anyone gets panics or warnings from dflt_lock() being called, please let me know right away. Reviewed by: tmm, gibbs
* Remove unused bootpath[] variable. It conflicted with a declarationgrehan2003-06-251-2/+0
| | | | in the sunlabel utility, causing build problems.
* Migrate the thread stack management functions from the machine-dependentalc2003-06-141-1/+1
| | | | | | | | | | | | | | | | to the machine-independent parts of the VM. At the same time, this introduces vm object locking for the non-i386 platforms. Two details: 1. KSTACK_GUARD has been removed in favor of KSTACK_GUARD_PAGES. The different machine-dependent implementations used various combinations of KSTACK_GUARD and KSTACK_GUARD_PAGES. To disable guard page, set KSTACK_GUARD_PAGES to 0. 2. Remove the (unnecessary) clearing of PG_ZERO in vm_thread_new. In 5.x, (but not 4.x,) PG_ZERO can only be set if VM_ALLOC_ZERO is passed to vm_page_alloc() or vm_page_grab().
* Bring back bus_dmasync_op_t. It is now a typedef to an int, though thescottl2003-05-271-1/+2
| | | | | | | | BUS_DMASYNC_ definitions remain as before. The does not change the ABI, and reverts the API to be a bit more compatible and flexible. This has survived a full 'make universe'. Approved by: re (bmah)
* sys/sys/limits.h:kan2003-05-192-3/+3
| | | | | | | | | | | | | | | - Fix visibilty test for LONG_BIT and WORD_BIT. `#if defined(__FOO_VISIBLE)' is alays wrong because __FOO_VISIBLE is always defined (to 0 for invisibility). sys/<arch>/include/limits.h sys/<arch>/include/_limits.h: - Style fixes. Submitted by: bde Reviewed by: bsdmike Approved by: re (scottl)
* Style fixes.kan2003-05-041-8/+11
| | | | | | | | | Remove DBL_DIG, DBL_MIN, DBL_MAX and their FLT_ counterparts, they were marked for deprecation ever since SUSv1 at least. Only define ULLONG_MIN/MAX and LLONG_MAX if long long type is supported. Restore a lost comment in MI _limits.h file and remove it from sys/limits.h where it does not belong.
* Slight reorg and added AMD64 support. A couple of the MODINFOMD_* valuespeter2003-05-011-6/+0
| | | | | | | | | that were added to sparc64 and later powerpc, really should have been in the MI area. But changing that now with insufficient preperation will just cause too much pain. Move MD_FETCH() to the MI sys/linker.h file to avoid another two copies of it.
* Deprecate machine/limits.h in favor of new sys/limits.h.kan2003-04-291-66/+4
| | | | | | | Change all in-tree consumers to include <sys/limits.h> Discussed on: standards@ Partially submitted by: Craig Rodrigues <rodrigc@attbi.com>
* Add a new sys/limits.h file which in turn depends on machine/_limits.hkan2003-04-231-53/+42
| | | | | | | | | to get actual constant values. This is in preparation for machine/limits.h retirement. Discussed on: standards@ Submitted by: Craig Rodrigues <rodrigc@attbi.com> (*) Modified by: kan
* - Convert NetBSD-derived macros to inline functions for bettergrehan2003-04-181-65/+176
| | | | | | type-checking and future debug code. - Remove sparse addressing hack, since the only consumer, the macio ATA driver, doesn't require it anymore.
* I deserve a big pointy hat for having missed all those referencesmux2003-04-101-9/+5
| | | | to bus_dmasync_op_t in my last commit.
* - Add vm_paddr_t, a physical address type. This is required for systemsjake2003-03-251-0/+1
| | | | | | | | | | | | | | | where physical addresses larger than virtual addresses, such as i386s with PAE. - Use this to represent physical addresses in the MI vm system and in the i386 pmap code. This also changes the paddr parameter to d_mmap_t. - Fix printf formats to handle physical addresses >4G in the i386 memory detection code, and due to kvtop returning vm_paddr_t instead of u_long. Note that this is a name change only; vm_paddr_t is still the same as vm_offset_t on all currently supported platforms. Sponsored by: DARPA, Network Associates Laboratories Discussed with: re, phk (cdevsw change)
* Made the prototypes for pmap_kenter and pmap_kremove MD. These functionsjake2003-03-161-0/+2
| | | | | | | | | are machine dependent because they are not required to update the tlb when mappings are added or removed, and doing so is machine dependent. In addition, an implementation may require that pages mapped with pmap_kenter have a backing vm_page_t, which is not necessarily true of all physical pages, and so may choose to pass the vm_page_t to pmap_kenter instead of the physical address in order to make this requirement clear.
* Correctly set BUS_SPACE_MAXSIZE in all the busdma backends.mux2003-02-261-1/+1
| | | | | It was bogusly set to 64 * 1024 or 128 * 1024 because it was bogusly reused in the BUS_DMAMAP_NSEGS definition.
* Doh. Forgot to remove _KERNEL version.grehan2003-02-231-7/+0
|
* Expose powerpc_mb() to user-space. Currently needed for atomic.h users,grehan2003-02-221-0/+10
| | | | this may go away in the future.
* 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)
* Export the ns_per_tick variable through md_var.h rather than by declaringbenno2003-02-051-0/+2
| | | | it extern in cpu.c.
* Add cpu.c. This contains one exported function, cpu_setup(), which handlesbenno2003-02-051-0/+2
| | | | | | 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-051-1/+1
| | | | | stands for Operating Environment Architecture and is the specification that all of the MPC6xx, MPC7xx, MPC7xxx and IBM7xx CPUs adhere to.
* - Rename the "powerpc" timecounter to the "decrementer" timecounter.benno2003-02-051-0/+2
| | | | - Initialise it earlier.
OpenPOWER on IntegriCloud