summaryrefslogtreecommitdiffstats
path: root/sys/powerpc
Commit message (Collapse)AuthorAgeFilesLines
...
* Don't initialize the decrementer before initclocks() is called.marcel2007-05-274-24/+14
| | | | | Use cpu_initclocks() for that as it assures that relevant locks have been initialized.
* Eliminate an unused definition.alc2007-05-271-1/+0
|
* Allow FreeBSD's native ELF image activators to execute shared libraries thekan2007-05-221-2/+2
| | | | | | | same way it was enabled for Linux binares in linuxulator. This allows binaries built with -pie. Many ports auto-detect -fPIE support in GCC 4.2 and build binaries FreeBSD was unable to run.
* - define and use VMCNT_{GET,SET,ADD,SUB,PTR} macros for manipulatingjeff2007-05-182-4/+4
| | | | | | | | vmcnts. This can be used to abstract away pcpu details but also changes to use atomics for all counters now. This means sched lock is no longer responsible for protecting counts in the switch routines. Contributed by: Attilio Rao <attilio@FreeBSD.org>
* Define every architecture as either VM_PHYSSEG_DENSE oralc2007-05-051-0/+5
| | | | | | | | | | | | | | | | | | | | VM_PHYSSEG_SPARSE depending on whether the physical address space is densely or sparsely populated with memory. The effect of this definition is to determine which of two implementations of vm_page_array and PHYS_TO_VM_PAGE() is used. The legacy implementation is obtained by defining VM_PHYSSEG_DENSE, and a new implementation that trades off time for space is obtained by defining VM_PHYSSEG_SPARSE. For now, all architectures except for ia64 and sparc64 define VM_PHYSSEG_DENSE. Defining VM_PHYSSEG_SPARSE on ia64 allows the entirety of my Itanium 2's memory to be used. Previously, only the first 1 GB could be used. Defining VM_PHYSSEG_SPARSE on sparc64 allows USIIIi-based systems to boot without crashing. This change is a combination of Nathan Whitehorn's patch and my own work in perforce. Discussed with: kmacy, marius, Nathan Whitehorn PR: 112194
* Add ofw bus methods to the ppc nexus driver. This will be used in futuregrehan2007-04-202-0/+112
| | | | | | | EFIKA platform support. PR: 111522 Submitted by: Andrew Turner, andrew at fubar geek nz
* Remove trailing '.' for consistency!pjd2007-04-101-1/+1
|
* Add UFS_GJOURNAL options to the GENERIC kernel.pjd2007-04-101-0/+1
| | | | Approved by: re (kensmith)
* If nooption SMP on powerpc, also nooption ADAPTIVE_SX, which depends onrwatson2007-04-011-0/+1
| | | | SMP and is now in the global NOTES.
* Add bge(4).marcel2007-04-011-2/+3
| | | | Fix a white-space nit while I'm here.
* When writing to PCI configuration registers, don't immediatelymarcel2007-04-011-3/+0
| | | | | | | | read the same register back. It can cause hangs or machine checks in certain cases. One particular case is with bge(4) when a reset is initiated for the controller. MFC after: 1 month
* Remove unused file.marcel2007-04-011-833/+0
|
* Push down the implementation of PCPU_LAZY_INC() into the machine-dependentalc2007-03-111-0/+6
| | | | | | | header file. Reimplement PCPU_LAZY_INC() on amd64 and i386 making it atomic with respect to interrupts. Reviewed by: bde, jhb
* Over NFS, an open() call could result in multiple over-the-wiremohans2007-03-092-0/+4
| | | | | | | | | | | | GETATTRs being generated - one from lookup()/namei() and the other from nfs_open() (for cto consistency). This change eliminates the GETATTR in nfs_open() if an otw GETATTR was done from the namei() path. Instead of extending the vop interface, we timestamp each attr load, and use this to detect whether a GETATTR was done from namei() for this syscall. Introduces a thread-local variable that counts the syscalls made by the thread and uses <pid, tid, thread syscalls> as the attrload timestamp. Thanks to jhb@ and peter@ for a discussion on thread state that could be used as the timestamp with minimal overhead.
* Update openpic to support the new bus_setup_intr() syntax.piso2007-03-073-8/+9
| | | | Reviewed by: marcel
* Make pswitch_intr() returns interrupt handling status.piso2007-03-021-2/+3
|
* Catch up with bus_setup_intr() modification and garbage collect apiso2007-02-251-2/+2
| | | | reference to INTR_FAST.
* o break newbus api: add a new argument of type driver_filter_t topiso2007-02-235-16/+18
| | | | | | | | | | | | | bus_setup_intr() o add an int return code to all fast handlers o retire INTR_FAST/IH_FAST For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current Reviewed by: many Approved by: re@
* The table of known CPU models ends with an entry that has a versionmarcel2007-02-181-1/+1
| | | | | | of 0, not with an entry that has an empty CPU name. Submitted by: Andrew Turner (andrew@fubar.geek.nz)
* Remove the cast to caddr_t for sfp, they're not needed.kevlo2007-02-122-4/+4
| | | | Reviewed by: marcel
* Include GEOM_LABEL in GENERIC. It's very useful and not well publicizedbrooks2007-02-091-0/+1
| | | | | | enough. Approved by: pjd
* Evolve the ctlreq interface added to geom_gpt into a genericmarcel2007-02-072-1/+3
| | | | | | | | | | | partitioning class that supports multiple schemes. Current schemes supported are APM (Apple Partition Map) and GPT. Change all GEOM_APPLE anf GEOM_GPT options into GEOM_PART_APM and GEOM_PART_GPT (resp). The ctlreq interface supports verbs to create and destroy partitioning schemes on a disk; to add, delete and modify partitions; and to commit or undo changes made.
* Remove stale header.marcel2007-01-261-7/+0
| | | | MFC after: 3 days
* Propagate the CPU model to the hw.model sysctl.marcel2007-01-143-6/+5
|
* Remove 3rd clause, renumber, ok per emailimp2007-01-121-4/+1
|
* Add missing SC_NO_MODE_CHANGE option. Disable it in the powerpcmarius2007-01-101-0/+1
| | | | | | | NOTES though, as ofw_syscons(4) doesn't properly interface with syscons(4) regarding loading the font specified with SC_DFLT_FONT, causing a kernel with both options SC_OFWFB and SC_NO_MODE_CHANGE to not link.
* In cpu_reset(), call OF_reboot() instead of OF_exit(). The lattermarcel2006-12-282-2/+4
| | | | | doesn't do a reboot and has been observed to reset the NVRAM to its default values.
* Remove bogus increment of re-hashed PTEG index. This snuck in with r1.12 ofgrehan2006-12-202-2/+2
| | | | | | | | | | | | | | pmap.c, and is potentially the cause of hangs reported on machines with a small amount of memory. On machines with sufficient RAM, and without a lot of processes running, this situation would probably never occur. Testing is still incomplete, but it is obviously wrong so remove the offending code now. The issue of what to do when both the primary and secondary hash overflow is still open. Reported by: Dan Kresja at windriver dot com, via alc
* Implement OF_decode_addr(). This makes uart(4) work as a serialmarcel2006-12-132-16/+256
| | | | console on a Xserve G4.
* Implement bus_space_map().marcel2006-12-131-1/+2
|
* Add support for multiple FAST handlers.marcel2006-12-071-165/+98
| | | | Reviewed & tested by: grehan@
* Threading cleanup.. part 2 of several.julian2006-12-062-8/+0
| | | | | | | | | | | | | | | | | | | | | | Make part of John Birrell's KSE patch permanent.. Specifically, remove: Any reference of the ksegrp structure. This feature was never fully utilised and made things overly complicated. All code in the scheduler that tried to make threaded programs fair to unthreaded programs. Libpthread processes will already do this to some extent and libthr processes already disable it. Also: Since this makes such a big change to the scheduler(s), take the opportunity to rename some structures and elements that had to be moved anyhow. This makes the code a lot more readable. The ULE scheduler compiles again but I have no idea if it works. The 4bsd scheduler still reqires a little cleaning and some functions that now do ALMOST nothing will go away, but I thought I'd do that as a separate commit. Tested by David Xu, and Dan Eischen using libthr and libpthread.
* Fix gdb issue where the i-cache was not being updated when a breakpointgrehan2006-12-057-3/+46
| | | | | | | | | | | | | | | | | | | | | | | was written into a user's address space. The fix is to modify uiomove_fromphys to sync the icache when an executable user-space page is written into. Alan Cox suggested that there should probably be a higher-level interface to this in the ptrace code, but agreed that this is an OK short-term solution. Files changed: pmap.h - declaration of pmap_page_executable() pmap_dispatch.c - pass through the page_executable call to the mmu object mmu_oea.c - implement the page_executable method by examining the PTE_EXEC field in the vm_page_t uio_machdep.c - in uiomove_fromphys(), if the op was a UIO_WRITE to user-space, and if the page is executable, sync the icache since this is at the least a breakpoint-write from gdb. Reported by: marcel Tested by: marcel, grehan on g3+g4 Discussed with: alc MFC after: 2 weeks
* Don't use vm_page_flag_set() if installing bootstrap page-table entriesgrehan2006-11-302-2/+4
| | | | | | since the vm page mutex's aren't yet initialized. Fixes boot-time panic. Reported by: Dario Freni saturnero at freesbie dot org
* Turn console printf buffering into a kernel option and only onjb2006-11-301-1/+0
| | | | | | | | | | | | | | | | | by default for sun4v where it is absolutely required. This change moves the buffer from struct pcpu to the stack to avoid using the critical section which created a LOR in a couple of cases due to interaction with the tty code and kqueue. The LOR can't be fixed with the critical section and the pcpu buffer can't be used without the critical section. Putting the buffer on the stack was my initial solution, but it was pointed out that the stress on the stack might cause problems depending on the call path. We don't have a way of creating tests for those possible cases, so it's best to leave this as an option for the time being. In time we may get enough data to enable this option more generally.
* Make pmap_enter() responsible for setting PG_WRITEABLE insteadalc2006-11-122-4/+6
| | | | | of its caller. (As a beneficial side-effect, a high-contention acquisition of the page queues lock in vm_fault() is eliminated.)
* Eliminate unused global variables.alc2006-11-111-2/+0
|
* Remove the KDTRACE option again because of the complaints about havingjb2006-11-041-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | it as a default. For the record, the KDTRACE option caused _no_ additional source files to be compiled in; certainly no CDDL source files. All it did was to allow existing BSD licensed kernel files to include one or more CDDL header files. By removing this from DEFAULTS, the onus is on a kernel builder to add the option to the kernel config, possibly by including GENERIC and customising from there. It means that DTrace won't be a feature available in FreeBSD by default, which is the way I intended it to be. Without this option, you can't load the dtrace module (which contains the dtrace device and the DTrace framework). This is equivalent to requiring an option in a kernel config before you can load the linux emulation module, for example. I think it is a mistake to have DTrace ported to FreeBSD, but not to have it available to everyone, all the time. The only exception to this is the companies which distribute systems with FreeBSD embedded. Those companies will customise their systems anyway. The KDTRACE option was intended for them, and only them.
* Build in kernel support for loading DTrace modules by default. Thisjb2006-11-041-0/+3
| | | | | | | | | | | | | | adds the hooks that DTrace modules register with, and adds a few functions which have the dtrace_ prefix to allow the DTrace FBT (function boundary trace) provider to avoid tracing because they are called from the DTtrace probe context. Unlike other forms of tracing and debug, DTrace support in the kernel incurs negligible run-time cost. I think the only reason why anyone wouldn't want to have kernel support enabled for DTrace would be due to the license (CDDL) under which DTrace is released.
* Add a cnputs() function to write a string to the console withjb2006-11-011-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | a lock to prevent interspersed strings written from different CPUs at the same time. To avoid putting a buffer on the stack or having to malloc one, space is incorporated in the per-cpu structure. The buffer size if 128 bytes; chosen because it's the next power of 2 size up from 80 characters. String writes to the console are buffered up the end of the line or until the buffer fills. Then the buffer is flushed to all console devices. Existing low level console output via cnputc() is unaffected by this change. ithread calls to log() are also unaffected to avoid blocking those threads. A minor change to the behaviour in a panic situation is that console output will still be buffered, but won't be written to a tty as before. This should prevent interspersed panic output as a number of CPUs panic before we end up single threaded running ddb. Reviewed by: scottl, jhb MFC after: 2 weeks
* Remove the KSE option now that it's in DEFAULTS on these arches/machines.jb2006-10-261-1/+0
| | | | | | | | | The 'nooption' kernel config entry has to be used to turn KSE off now. This isn't my preferred way of dealing with this, but I'll defer to scottl's experience with the io/mem kernel option change and the grief experienced over that. Submitted by: scottl@
* Add 'options KSE' to the kernel config DEFAULTS on all arches/machinesjb2006-10-261-0/+3
| | | | | | | | | | | except sun4v. This change makes the transition from a default to an option more transparent and is an attempt to head off all the compliants that are likely from people who don't read UPDATING, based on experience with the io/mem change. Submitted by: scottl@
* Make KSE a kernel option, turned on by default in all GENERICjb2006-10-265-0/+13
| | | | | | | kernel configs except sun4v (which doesn't process signals properly with KSE). Reviewed by: davidxu@
* Move "device splash" back to MI NOTES and "files", it's MI.ru2006-10-231-0/+1
|
* Mechanically kill redundant nodevice/nooption/nomakeoption, i.e.,ru2006-10-231-14/+0
| | | | | those that do not exist in MI NOTES or switched on/off in the MD NOTES.
* Fix remaining compile error.grehan2006-10-182-2/+2
|
* Attempt to fix compiling problem.davidxu2006-10-182-2/+2
| | | | Noticed by: tinderbox
* o Add keyword volatile for user mutex owner field.davidxu2006-10-172-14/+14
| | | | | | o Fix type consistent problem by using type long for old umtx and wait channel. o Rename casuptr to casuword.
* The powerpc and sparc64 MD `reboot' commands should never have existedbde2006-10-101-14/+0
| | | | | | | | | | | | | | | | | since they just duplicated the MI `reset' command. Instead of removing them, make `reboot' an MI alias for `reboot' since this gives a better way of killing the `r' alias for `reset'. Remove the `registers' command that was used to kill the alias. Turn the powerpc and sparc64 MD `halt' command into an MI command. A copy of sparc64/db_interface.c grew in sun4v just after I found the extra reboot commands. It has not been changed, and is now not identical. Duplicated commands come out duplicated in ddb's online help, but cause large problems when used (e.g., on i386's with 2 halt's and an hwatch, typing h doesn' give the expected message about an ambiguous command, but hangs like the halt command or a looping parseri would).
* - Remove SCHED_ULE from GENERIC to better avoid foot-shooting bysimon2006-10-051-1/+0
| | | | | | | | | | | unsuspecting users. - Add a comment in NOTES about experimental status of SCHED_ULE. - Make warning about experimental status in sched_ule(4) a bit stronger. Suggested and reviewed by: dougb Discussed on: developers MFC after: 3 days
OpenPOWER on IntegriCloud