summaryrefslogtreecommitdiffstats
path: root/sys/powerpc
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* Declare btext and etext. Needed by sys/kern/subr_prof.c formarcel2008-10-271-0/+3
| | | | for kernel profiling.
* Bring Kauai ATA driver in line with Macio ATA by reading the PIO config regnwhitehorn2008-10-271-6/+2
| | | | | | | | | | | | to set the initial PIO mode instead of assuming PIO4. There are still a few nagging issues: - There are some problems with 64 K DMA transfers waiting on lower level changes. - ATAPI DMA is broken on Marcel's Mac Mini because we need an ATA SELECT hook propagated up to individual drivers for hardware without timing registers for each ATA channel.
* Add ADB support. This provides support for the external ADB bus on the PowerMacnwhitehorn2008-10-269-0/+1966
| | | | | | | | G3 as well as the internal ADB keyboard and mice in PowerBooks and iBooks. This also brings in Mac GPIO support, for which we should eventually have a better interface. Obtained from: NetBSD (CUDA and PMU drivers)
* Enable the cfi(4) driver.marcel2008-10-251-0/+1
|
* Add a driver for the Local Bus Controller.marcel2008-10-252-0/+368
| | | | Obtained from: Juniper Networks, Inc.
* Assign 0xff800000-0xffffffff to the LBC controller. That's wheremarcel2008-10-251-0/+4
| | | | the NOR flash lives by default.
* In mmu_booke_mapdev(), handle mappings that cannot be representedmarcel2008-10-251-5/+16
| | | | | by a single TLB entry. The boot ROM on the MPC85555CDS is 8MB, for example, and in order to map that we need 2 4MB TLB entries.
* Prevent the OF syscons module from trying to attach to real devices on thenwhitehorn2008-10-151-0/+5
| | | | nexus by only attaching to a device with no OF node.
* Convert PowerPC AIM PCI and nexus busses to standard OFW bus interface. Thisnwhitehorn2008-10-1417-442/+514
| | | | | | | | | | | simplifies certain device attachments (Kauai ATA, for instance), and makes possible others on new hardware. On G5 systems, there are several otherwise standard PCI devices (Serverworks SATA) that will not allow their interrupt properties to be written, so this information must be supplied directly from Open Firmware. Obtained from: sparc64
OpenPOWER on IntegriCloud