summaryrefslogtreecommitdiffstats
path: root/sys/powerpc
Commit message (Collapse)AuthorAgeFilesLines
* Add memmove() to the kernel, making the kernel compile with Clang.ed2009-02-281-1/+0
| | | | | | | | | | | | When copying big structures, LLVM generates calls to memmove(), because it may not be able to figure out whether structures overlap. This caused linker errors to occur. memmove() is now implemented using bcopy(). Ideally it would be the other way around, but that can be solved in the future. On ARM we don't do add anything, because it already has memmove(). Discussed on: arch@ Reviewed by: rdivacky
* Prefer register usage style to be more consistent with the rest of theraj2009-02-271-8/+8
| | | | trap_subr.S code.
* Make Book-E debug register state part of the PCB context.raj2009-02-277-5/+18
| | | | | | | | | | | | | | | | Previously, DBCR0 flags were set "globally", but this leads to problems because Book-E fine grained debug settings work only in conjuction with the debug master enable bit in MSR: in scenarios when the DBCR0 was set with intention to debug one process, but another one with MSR[DE] set got scheduled, the latter would immediately cause debug exceptions to occur upon execution of its own code instructions (and not the one intended for debugging). To avoid such problems and properly handle debugging context, DBCR0 state should be managed individually per process. Submitted by: Grzegorz Bernacki gjb ! semihalf dot com Reviewed by: marcel
* Fix comment: we write the trap vector to SPRG3, not SPRG0.nwhitehorn2009-02-231-3/+3
|
* Change over the usb kernel options to the new stack (retaining existingthompsa2009-02-232-72/+18
| | | | naming). The old usb stack can be compiled in my prefixing the name with 'o'.
* Add Altivec support for supported CPUs. This is derived from the FPU supportnwhitehorn2009-02-209-54/+329
| | | | | | | | code, and also reducing the size of trapcode to fit inside a 32 byte handler slot. Reviewed by: grehan MFC after: 2 weeks
* Additional features for the tsec(4) Ethernet driver.raj2009-02-171-0/+3
| | | | | | | | | | | | | | - interrupt coalescing - polling - jumbo frames - multicast - VLAN tagging The enhanced version of the chip (eTSEC) can also take advantage of: - TCP/IP checksum calculation h/w offloading Obtained from: Freescale, Semihalf
* Add uslcom to the build too.thompsa2009-02-151-0/+1
| | | | Reminded by: Michael Butler
* Switch over GENERIC kernels to USB2 by default.thompsa2009-02-151-19/+70
| | | | Tested by: make universe
* Add support for the I2S and davbus audio controllers found in Apple PowerPCnwhitehorn2009-01-252-0/+6
| | | | | | hardware. Submitted by: Marco Trillo
* Fix a race condition where interrupts set up after boot could be enabled innwhitehorn2009-01-251-3/+6
| | | | | | | the PIC before the interrupt handler was set. If the interrupt triggered in that window, then the interrupt vector would be disabled. Reported by: Marco Trillo
* Fix a race condition in kiic(4) made possible by the way the device's STOPnwhitehorn2009-01-201-18/+17
| | | | | | | condition is sent. We used to put the bus in the STOP state, but returned without waiting for that to actually occur. Submitted by: Marco Trillo
* Provide a device description for macio-attached ATA cells.nwhitehorn2009-01-191-0/+2
|
* Driver for Apple Keywest I2C controllers found in MacIO ASICs. Used fornwhitehorn2009-01-152-0/+392
| | | | | | | | power and thermal control, as well as GPIOs on Xserves and controlling sound codecs for Apple built-in audio. Submitted by: Marco Trillo Obtained from: NetBSD
* Clean up BookE low-level exceptions code.raj2009-01-131-46/+49
| | | | | | Improve comments, fix style(9) and typos, unify separators. Obtained from: Freescale, Semihalf
* Clean up BookE pmap.raj2009-01-131-137/+90
| | | | | | | Improve comments, eliminate redundant debug output, fix style(9) and other minor tweaks for code readability. Obtained from: Freescale, Semihalf
* Rework BookE pmap towards multi-core support.raj2009-01-1310-752/+466
| | | | | | | | | | | | | | | | | | | | | | | o Eliminate tlb0[] (a s/w copy of TLB0) - The table contents cannot be maintained reliably in multiple MMU environments, where asynchronous events (invalidations from other cores) can change our local TLB0 contents underneath. - Simplify and optimize TLB flushing: system wide invalidations are performed using tlbivax instruction (propagates to other cores), for local MMU invalidations a new optimized routine (assembly) is introduced. o Improve and simplify TID allocation and management. - Let each core keep track of its TID allocations. - Simplify TID recycling, eliminate dead code. - Drop the now unused powerpc/booke/support.S file. o Improve page tables management logic. o Simplify TLB1 manipulation routines. o Other improvements and polishing. Obtained from: Freescale, Semihalf
* Some early Macintosh GPIO controllers don't provide reg properties fornwhitehorn2009-01-121-10/+27
| | | | | | | interrupt-only GPIOs. Honor this, and allow interrupt attachment, but not read/write access for such devices. Reported by: Niels Eliasen
* Add a new quirk type so that the MacIO driver will assign memory resourcesnwhitehorn2009-01-061-2/+8
| | | | | | | | belonging to a devices children, in analogy to the way we handle interrupts for SCC serial devices. This is required to counteract overly deep nesting on onboard audio devices. Submitted by: Marco Trillo
* Fix the OFW interrupt map parser to use its own idea of the number of interruptnwhitehorn2009-01-035-31/+11
| | | | | | | | | cells in the map, instead of using a value passed to it and then panicing if it disagrees. This fixes interrupt map parsing for PCI bridges on some Apple Uninorth PCI controllers. Reported by: marcel Tested on: G4 iBook, Sun Ultra 5
* Modularize the Open Firmware client interface to allow run-time switchingnwhitehorn2008-12-206-20/+65
| | | | | | | | | | | | of OFW access semantics, in order to allow future support for real-mode OF access and flattened device frees. OF client interface modules are implemented using KOBJ, in a similar way to the PPC PMAP modules. Because we need Open Firmware to be available before mutexes can be used on sparc64, changes are also included to allow KOBJ to be used very early in the boot process by only using the mutex once we know it has been initialized. Reviewed by: marius, grehan
* Minor spelling fix in E500 locore.raj2008-12-181-1/+1
|
* Extend and improve MPC85XX Local Bus management.raj2008-12-185-69/+346
| | | | | | | | | | | | | | | | | - Make LBC resources management self-contained: introduce explicit LBC resources definition (much like the OCP), provide dedicated rman for LB mem space. - Full configuration of an LB chip select device: program LAW and BR/OR, map into KVA, handle all LB attributes (bus width, machine select, ecc, write protect etc). - Factor out LAW manipulation routines into shared code, adjust OCP area accordingly. - Other LBC fixes and clean-ups. Obtained from: Semihalf
* Fix E500 cache invalidation routines.raj2008-12-171-0/+6
| | | | | | | When invalidating the i/d-cache we need to wait until the core complex is really finished with the operation. Obtained from: Semihalf
* Rework E500 locore.raj2008-12-171-213/+229
| | | | | | | | | | | | | | - split bootstrap code into more modular routines, which will also be used for the non-booting cores - clean up registers usage - improve comments to better reflect reality - eliminate dead or redundant code - other minor fixes This refactoring is a preliminary step before importing dual-core (MPC8572) support. Obtained from: Freescale, Semihalf
* Minor clean up of BookE/MPC85XX: iprove naming and style(9).raj2008-12-173-31/+31
|
* Improve MPC85XX helper routines.raj2008-12-174-37/+74
| | | | | | - Move CCSR accessors to the shared MPC85XX area - Simplify SVR version subfield handling - Adjust OCP
* AT_DEBUG and AT_BRK were OBE like 10 years ago, so retire them.imp2008-12-171-3/+0
| | | | Reviewed by: peter
* Adapt parts of the sparc64 Open Firmware bus enumeration code (in particular,nwhitehorn2008-12-158-194/+296
| | | | | | | | | | | | | | | the code for parsing interrupt maps) to PowerPC and reflect their new MI status by moving them to the shared dev/ofw directory. This commit also modifies the OFW PCI enumeration procedure on PowerPC to allow the bus to find non-firmware-enumerated devices that Apple likes to add, and adds some useful Open Firmware properties (compat and name) to the pnpinfo string of children on OFW SBus, EBus, PCI, and MacIO links. Because of the change to PCI enumeration on PowerPC, X has started working again on PPC machines with Grackle hostbridges. Reviewed by: marius Obtained from: sparc64
* Allow OFW syscons to restore itself when the X server exits or there is a VT ↵nwhitehorn2008-12-131-26/+38
| | | | | | | | switch by redoing the Open Firmware card initialization calls in ofwfb_set_mode(). This uses the same trick (setting V_ADP_MODECHANGE) to arrange this as machfb(4) and creatorfb(4).
* Add support for a console mouse pointer on Open Firmware syscons.nwhitehorn2008-12-132-1/+85
| | | | MFC after: 7.1-RELEASE
* Use a static free packet queue instead of using malloc() to allocate new ADB ↵nwhitehorn2008-12-132-13/+28
| | | | | | packets. This fixes some locking problems.
* Add the ability to control the sleep LED with led(4). Adding this fairlynwhitehorn2008-12-092-5/+29
| | | | useless feature gives us a reasonably complete PMU implementation.
* Clean up the mac GPIO interface a little. Also remove bogus copyrightnwhitehorn2008-12-082-26/+29
| | | | | | and 3rd license clause. Submitted by: Marco Trillo
* Accidentally left ADB out of the PowerPC NOTES file during initial import.nwhitehorn2008-12-081-0/+3
|
* Add facilities to pmu(4) to interrogate battery status on Apple PowerPCnwhitehorn2008-12-082-12/+219
| | | | | | laptops. This includes battery presence detection, charging status, current and voltage readouts, and charge level indication. The sysctl interface is somewhat ACPI-like.
* Add support for automated reboot after power failure on Apple Core99 machinesnwhitehorn2008-12-071-3/+61
| | | | | (G3 laptops, all G4 machines, early G5s, G5 Xserves). The relevant sysctl is named dev.pmu.0.server_mode for mental compatibility with Linux.
* Fix some nasty race conditions in the VIA-CUDA driver that ended up preventingnwhitehorn2008-12-062-90/+175
| | | | | | my right mouse button and keyboard LEDs from working due to mangled configuration packets. Fixed several other races and associated problems in the main ADB stack that were exposed while fixing this.
* Remove "[KEEP THIS!]" from COMPAT_43TTY. It's not really that important.ed2008-12-021-1/+1
| | | | | | | Sgtty is a programming interface that has been replaced by termios over the years. In June we already removed <sgtty.h>, which exposes the ioctl()'s that are implemented by this interface. The importance of this flag is overrated right now.
* Unbreak previous commit.marcel2008-11-221-2/+0
|
* Add sv_flags field to struct sysentvec with intention to provide descriptionkib2008-11-221-1/+2
| | | | | | | | of the ABI of the currently executing image. Change some places to test the flags instead of explicit comparing with address of known sysentvec structures to determine ABI features. Discussed with: dchagin, imp, jhb, peter
* - bump __FreeBSD version to reflect added buf_ring, memory barriers,kmacy2008-11-221-0/+4
| | | | | | | | | | | | | | | | | and ifnet functions - add memory barriers to <machine/atomic.h> - update drivers to only conditionally define their own - add lockless producer / consumer ring buffer - remove ring buffer implementation from cxgb and update its callers - add if_transmit(struct ifnet *ifp, struct mbuf *m) to ifnet to allow drivers to efficiently manage multiple hardware queues (i.e. not serialize all packets through one ifq) - expose if_qflush to allow drivers to flush any driver managed queues This work was supported by Bitgravity Inc. and Chelsio Inc.
* Define LDBL_EPSILON, LDBL_MAX and LDBL_MIN as long double constants.marcel2008-11-161-3/+3
| | | | | Submitted by: Andreas Tobler <andreast-list@fgznet.ch> Reviewed by: das@
* Fix compilation in the case when kernel doesn't have KDB ebabled.sobomax2008-10-301-0/+7
| | | | subr_kdb.c still references breakpoint() in this case.
* Fix some possible infinite loops in the ADB code, and remove some hacksnwhitehorn2008-10-302-21/+9
| | | | | that were inserted in desperation during bring-up. In addition, move ADB bus enumeration and child attachment to when interrupts are available.
* Add support for little-endian compilations to this file.marcel2008-10-301-1/+15
|
* DBDMA can transfer a maximum of 64K - 1 bytes per descriptor, as the bytenwhitehorn2008-10-281-0/+6
| | | | | | count field is 16 bits. Inform ATA of this fact. Reported by: Marco Trillo
* Clean up some magic numbers in the DBDMA code by replacing them withnwhitehorn2008-10-272-11/+20
| | | | | | appropriately defined constants. Suggested by: gnn
* Add support for kernel profiling for both AIM and BookE.marcel2008-10-273-51/+83
| | | | Obtained from: Juniper Networks, Inc (BookE support).
* Remove unused declarations (interrupt_vector_{base|top}).marcel2008-10-271-3/+0
|
OpenPOWER on IntegriCloud