summaryrefslogtreecommitdiffstats
path: root/sys/powerpc
Commit message (Collapse)AuthorAgeFilesLines
* - 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)
* Remove bitrot associated with `maxusers'.ru2003-03-221-1/+0
| | | | Submitted by: bde
* Use atomic operations to increment and decrement the refcountmux2003-03-201-4/+4
| | | | | | | in busdma tags. There are currently no tags shared accross different drivers so this isn't needed at the moment, but it will be required when we'll have a proper newbus method to get the parent busdma tag.
* Enable the FPU on first use per-thread and save state across contextgrehan2003-03-206-117/+101
| | | | | | | | | | | switches. Not as lazy as it could be. Changing FPU state with sigcontext still TODO. fpu.c - convert some asm to inline C, and macroize fpu loads/stores swtch.S - call out to save/restore fpu routines trap.c - always call enable_fpu, since this shouldn't be called once the FPU has been enabled for a thread genassym.c - define for pcb fpu flag
* - Add PCI ID for Paddington i/o controller, used in old G3'sgrehan2003-03-201-2/+4
| | | | | - Add ID for the Intrepid i/o controller, used in new 12"/17" PowerBooks - put IDs in chronological order
* Add machine check handler. While generally useful, it's required whengrehan2003-03-192-2/+2
| | | | | issuing PCI config cycles on MPC106-based PowerMacs, which cause machine checks when accessing non-existent/empty slots.
* 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.
* Grab Giant around calls to contigmalloc() and contigfree() somux2003-03-131-1/+6
| | | | that drivers converted to be MP safe don't have to deal with it.
* Replace calls to WITNESS_SLEEP() and witness_list() with equivalent callsjhb2003-03-042-12/+4
| | | | to WITNESS_WARN().
* Simplify ofw_pci_fixup(). It doesn't need to be recursive, since thegrehan2003-03-031-19/+3
| | | | | | bridge code already handles IRQ adjustment on the far side of a bridge. Reviewed by: benno
* These files are no longer used. They have been replaced with similarly namedbenno2003-02-284-597/+0
| | | | .S files.
* Register typo and incorrect 32-bit constant load in previous commit.grehan2003-02-262-4/+4
| | | | Resulted in AST delivery not working.
* 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.
* Cleanup of the d_mmap_t interface.mux2003-02-253-21/+0
| | | | | | | | | | | | | | | | | | | | | | | | | - Get rid of the useless atop() / pmap_phys_address() detour. The device mmap handlers must now give back the physical address without atop()'ing it. - Don't borrow the physical address of the mapping in the returned int. Now we properly pass a vm_offset_t * and expect it to be filled by the mmap handler when the mapping was successful. The mmap handler must now return 0 when successful, any other value is considered as an error. Previously, returning -1 was the only way to fail. This change thus accidentally fixes some devices which were bogusly returning errno constants which would have been considered as addresses by the device pager. - Garbage collect the poorly named pmap_phys_address() now that it's no longer used. - Convert all the d_mmap_t consumers to the new API. I'm still not sure wheter we need a __FreeBSD_version bump for this, since and we didn't guarantee API/ABI stability until 5.1-RELEASE. Discussed with: alc, phk, jake Reviewed by: peter Compile-tested on: LINT (i386), GENERIC (alpha and sparc64) Runtime-tested on: i386
* Catch up with ATAng changesgrehan2003-02-242-18/+23
|
* 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.
* Adjust IRQ count for psim's OpenPIC model - it seems to begrehan2003-02-201-0/+6
| | | | off by 1.
* Catch up to latest KSE changesgrehan2003-02-202-6/+8
|
* Back out M_* changes, per decision of the TRB.imp2003-02-196-7/+7
| | | | Approved by: trb
* Move a bunch of flags from the KSE to the thread.julian2003-02-171-4/+3
| | | | | | | | I was in two minds as to where to put them in the first case.. I should have listenned to the other mind. Submitted by: parts by davidxu@ Reviewed by: jeff@ mini@
* - Split the struct kse into struct upcall and struct kse. struct kse willjeff2003-02-172-2/+2
| | | | | | | soon be visible only to schedulers. This greatly simplifies much the KSE code. Submitted by: davidxu
* - Move ke_sticks, ke_iticks, ke_uticks, ke_uu, ke_su, and ke_iu back intojeff2003-02-172-2/+2
| | | | | | | the proc. These counters are only examined through calcru. Submitted by: davidxu Tested on: x86, alpha, UP/SMP
* Remove #include <sys/dkstat.h>phk2003-02-161-1/+0
|
* 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.
OpenPOWER on IntegriCloud