#
331722 |
|
29-Mar-2018 |
eadler |
Revert r330897:
This was intended to be a non-functional change. It wasn't. The commit message was thus wrong. In addition it broke arm, and merged crypto related code.
Revert with prejudice.
This revert skips files touched in r316370 since that commit was since MFCed. This revert also skips files that require $FreeBSD$ property changes.
Thank you to those who helped me get out of this mess including but not limited to gonzo, kevans, rgrimes.
Requested by: gjb (re)
|
#
331492 |
|
24-Mar-2018 |
ian |
To fix the powerpc build, back out r331184, which was this mfc:
MFC r326859:
Add identifier for POWER9 CPU to CPU list
Without the identifier in the list booting FreeBSD results in printing the following (from a PowerKVM boot):
cpu0: Unknown PowerPC CPU revision 0x1201, 2550.00 MHz
For now, add the same feature list as POWER8. As new capabilities are added to support POWER9 specific features, they will be added to this.
PR: 224344
|
#
331184 |
|
19-Mar-2018 |
eadler |
MFC r326859:
Add identifier for POWER9 CPU to CPU list
Without the identifier in the list booting FreeBSD results in printing the following (from a PowerKVM boot):
cpu0: Unknown PowerPC CPU revision 0x1201, 2550.00 MHz
For now, add the same feature list as POWER8. As new capabilities are added to support POWER9 specific features, they will be added to this.
PR: 224344
|
#
330897 |
|
14-Mar-2018 |
eadler |
Partial merge of the SPDX changes
These changes are incomplete but are making it difficult to determine what other changes can/should be merged.
No objections from: pfg
|
#
310441 |
|
22-Dec-2016 |
jhibbits |
MFC r305320,r306702:
r305320: Use the right ifdef macro. r306702: Fix e500mc/derivatives cpu idle
|
#
302408 |
|
07-Jul-2016 |
gjb |
Copy head@r302406 to stable/11 as part of the 11.0-RELEASE cycle. Prune svn:mergeinfo from the new branch, as nothing has been merged here.
Additional commits post-branch will follow.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
293052 |
|
02-Jan-2016 |
nwhitehorn |
Bring CPU features list in line with the ABI requirements.
MFC after: 1 week
|
#
293030 |
|
01-Jan-2016 |
jhibbits |
Extend idle support for newer Book-E cores.
Newer Book-E cores (e500mc, e5500, e6500) do not support the WE bit in the MSR, and instead delegate CPU idling to the SoC.
Perhaps in the future the QORIQ_DPAA option for the mpc85xx platform will become a subclass, which will eliminate most of the #ifdef's.
|
#
292858 |
|
29-Dec-2015 |
jhibbits |
Update capabilities of e500mc, e5500, e6500.
|
#
279189 |
|
22-Feb-2015 |
nwhitehorn |
Kernel support for the Vector-Scalar eXtension (VSX) found on the POWER7 and POWER8. This instruction set unifies the 32 64-bit scalar floating point registers with the 32 128-bit vector registers into a single bank of 64 128-bit registers. Kernel support mostly amounts to saving and restoring the wider version of the floating point registers and making sure that both scalar FP and vector registers are enabled once a VSX instruction is executed. get_mcontext() and friends currently cannot see the high bits, which will require a little more work.
As the system compiler (GCC 4.2) does not support VSX, making use of this from userland requires either newer GCC or clang.
Relnotes: yes Sponsored by: FreeBSD Foundation
|
#
273377 |
|
21-Oct-2014 |
hselasky |
Fix multiple incorrect SYSCTL arguments in the kernel:
- Wrong integer type was specified.
- Wrong or missing "access" specifier. The "access" specifier sometimes included the SYSCTL type, which it should not, except for procedural SYSCTL nodes.
- Logical OR where binary OR was expected.
- Properly assert the "access" argument passed to all SYSCTL macros, using the CTASSERT macro. This applies to both static- and dynamically created SYSCTLs.
- Properly assert the the data type for both static and dynamic SYSCTLs. In the case of static SYSCTLs we only assert that the data pointed to by the SYSCTL data pointer has the correct size, hence there is no easy way to assert types in the C language outside a C-function.
- Rewrote some code which doesn't pass a constant "access" specifier when creating dynamic SYSCTL nodes, which is now a requirement.
- Updated "EXAMPLES" section in SYSCTL manual page.
MFC after: 3 days Sponsored by: Mellanox Technologies
|
#
268320 |
|
06-Jul-2014 |
nwhitehorn |
Add a new CPU id for a POWER8 variant.
|
#
258757 |
|
29-Nov-2013 |
nwhitehorn |
Use the Open Firmware-based CPU frequency determination as a generic fallback if we can't measure CPU frequency. This is also useful on a variety of embedded systems using FDT.
|
#
258722 |
|
28-Nov-2013 |
andreast |
Give some output about the CPU clock on IBMPOWER machines, currently read from OF. Linux does it similar, means they also read the OF values and display them.
Tested under qemu and real hardware:
cpu0: IBM POWER5+ revision 2.0, 1898.10 MHz
|
#
255640 |
|
17-Sep-2013 |
nwhitehorn |
Add POWER7+ and POWER8 to the CPU ID table.
Approved by: re (kib)
|
#
255418 |
|
09-Sep-2013 |
nwhitehorn |
Add POWER CPUs to the kernel's knowledge. This does not imply we currently actually run on any machines with POWER CPUs but avoids closing that door unnecessarily.
Approved by: re (kib)
|
#
247454 |
|
28-Feb-2013 |
davide |
MFcalloutng: When CPU becomes idle, cpu_idleclock() calculates time to the next timer event in order to reprogram hw timer. Return that time in sbintime_t to the caller and pass it to acpi_cpu_idle(), where it can be used as one more factor (quite precise) to extimate furter sleep time and choose optimal sleep state. This is a preparatory change for further callout improvements will be committed in the next days.
The commmit is not targeted for MFC.
|
#
236141 |
|
27-May-2012 |
raj |
Let us manage differences of Book-E PowerPC variations i.e. vendor / implementation specific vs. the common architecture definition.
Bring PPC4XX defines (PSL, SPR, TLB). Note the new definitions under BOOKE_PPC4XX are not used in the code yet.
This change set is not supposed to affect existing E500 support, it's just another reorg step before bringing support for E500mc, E5500 and PPC465.
Obtained from: AppliedMicro, Freescale, Semihalf
|
#
236097 |
|
26-May-2012 |
raj |
Rename e500 prefix to match other Book-E CPU variations. CPU id tidbits for the new cores.
Obtained from: Freescale, Semihalf.
|
#
225953 |
|
03-Oct-2011 |
mav |
Revert r225875, r225877: It is reported that on some chips (e.g. the 970MP) behavior of POW bit set simultaneously with modifying other bits is undefined and may cause hangs. The race should be handled in some other way, but for now just get back.
Reported by: nwitehorn
|
#
225877 |
|
29-Sep-2011 |
mav |
Add header missed in r225875.
MFC after: 3 days
|
#
225875 |
|
29-Sep-2011 |
mav |
Handle the race in cpu_idle() when due to the critical section CPU could get into sleep after receiving interrupt, delaying interrupt thread execution indefinitely until the next interrupt arrive.
Reviewed by: nwhitehorn MFC after: 3 days
|
#
215182 |
|
12-Nov-2010 |
nwhitehorn |
Add CPU support code for the IBM Cell Broadband Engine.
|
#
215157 |
|
12-Nov-2010 |
nwhitehorn |
Centralize CPU idle routines into powerpc/cpu.c and use the same cpu_idle_hook mechanism that x86 uses for overriding the idle routine. This is required for supporting ilding the CPU under PowerPC hypervisors.
|
#
215101 |
|
10-Nov-2010 |
nwhitehorn |
Entering deep nap mode on the 970MP requires that both MSR[NAP] and MSR[DEEPNAP] be set, not just MSR[DEEPNAP]. Fixing this reduces the idle temperature of my CPUs from 57 to 38 degrees and makes one-shot timer mode work properly.
Hint from: mav MFC after: 4 days
|
#
209975 |
|
13-Jul-2010 |
nwhitehorn |
MFppc64:
Kernel sources for 64-bit PowerPC, along with build-system changes to keep 32-bit kernels compiling (build system changes for 64-bit kernels are coming later). Existing 32-bit PowerPC kernel configurations must be updated after this change to specify their architecture.
|
#
205527 |
|
23-Mar-2010 |
marcel |
Enable power management for E500 cores. Use "doze" for now to make sure the caches remain coherent. For single-core configurations and with busdma changes we could eventually switch to "nap" and force a D-cache invalidation as part of the DMA completion. To this end, clear PSL_WE until after we handled the decrementer or external interrupt as it tells us whether we just woke up or not.
|
#
204127 |
|
20-Feb-2010 |
nwhitehorn |
Turn on experimental support for DEEPNAP on the 970MP.
|
#
199886 |
|
28-Nov-2009 |
nwhitehorn |
Add a CPU features framework on PowerPC and simplify CPU setup a little more. This provides three new sysctls to user space: hw.cpu_features - A bitmask of available CPU features hw.floatingpoint - Whether or not there is hardware FP support hw.altivec - Whether or not Altivec is available
PR: powerpc/139154 MFC after: 10 days
|
#
199533 |
|
19-Nov-2009 |
raj |
Fix cpuid output on E500 core.
|
#
198968 |
|
06-Nov-2009 |
marcel |
Unbreak E500 builds. The inline assembly for the 970 CPUs is invalid when compiling for BookE.
|
#
198445 |
|
24-Oct-2009 |
nwhitehorn |
Turn on NAP mode on G5 systems, and refactor the HID0 setup code a little. This makes my G5 Xserve sound slightly less like it is filled with howling banshees.
|
#
198378 |
|
23-Oct-2009 |
nwhitehorn |
Add SMP support on U3-based G5 systems. This does not yet work perfectly: at least on my Xserve, getting the decrementer and timebase on APs to tick requires setting up a clock chip over I2C, which is not yet done.
While here, correct the 64-bit tlbie function to set the CPU to 64-bit mode correctly.
Hardware donated by: grehan
|
#
194374 |
|
17-Jun-2009 |
nwhitehorn |
Teach cpu_est_clockrate() about the G5's slightly different PMC. This allows the boot messages to include the CPU speed and makes possible the forthcoming cpufreq support for the PPC 970.
|
#
193156 |
|
31-May-2009 |
nwhitehorn |
Introduce support for cpufreq on PowerPC with the dynamic frequency switching capabilities of the MPC7447A and MPC7448.
|
#
191380 |
|
22-Apr-2009 |
raj |
Eliminate redundant setting of HID0_EMCP.
|
#
190681 |
|
03-Apr-2009 |
nwhitehorn |
Add support for 64-bit PowerPC CPUs operating in the 64-bit bridge mode provided, for example, on the PowerPC 970 (G5), as well as on related CPUs like the POWER3 and POWER4.
This also adds support for various built-in hardware found on Apple G5 hardware (e.g. the IBM CPC925 northbridge).
Reviewed by: grehan
|
#
183437 |
|
28-Sep-2008 |
nwhitehorn |
Unbreak support for G4s without an L3 cache. L3 cache support was introduced with, and limited to, the Motorola/Freescale 745x family.
Reported by: Marco Trillo
|
#
183262 |
|
22-Sep-2008 |
nwhitehorn |
Unbreak G3 support. G3 processors don't have an L3 cache, so we shouldn't try to program it.
Approved by: marcel (mentor)
|
#
183029 |
|
14-Sep-2008 |
marcel |
Rename cpu_config_l2cr() to cpu_print_cacheinfo(). We're not configuring the L2 cache on the BSP. Nor the L3 cache. We merely print the settings.
Save the L2 and L3 cache configuration in global values so that we know how to configure the cache on APs.
|
#
176919 |
|
07-Mar-2008 |
marcel |
For AIM, have cpu_idle() set MSR_POW when the powerpc_pow_enabled variable is set. On my Mac Mini this puts the CPU in NAP mode when the kernel is idle and, any technical or environmental reasons aside, avoids that I have to listen to the fan all day :-)
|
#
176534 |
|
24-Feb-2008 |
raj |
Teach PowerPC CPU identification routines to recognize e500 cores. Fix style issues in this area.
Approved by: cognet (mentor) MFp4: e500
|
#
166812 |
|
18-Feb-2007 |
marcel |
The table of known CPU models ends with an entry that has a version of 0, not with an entry that has an empty CPU name.
Submitted by: Andrew Turner (andrew@fubar.geek.nz)
|
#
166011 |
|
14-Jan-2007 |
marcel |
Propagate the CPU model to the hw.model sysctl.
|
#
141229 |
|
03-Feb-2005 |
grehan |
- recognize 7447A/7448 CPUs (used in miniMacs) - enable 745x branch caches. Already enabled by OpenFirmware on Macs, but reduces NetBSD diffs and usable by embedded folk.
Obtained from: NetBSD
|
#
139825 |
|
07-Jan-2005 |
imp |
/* -> /*- for license, minor formatting changes
|
#
125617 |
|
09-Feb-2004 |
grehan |
Disable branch-target instruction cache on MPC7457 as outlined in Motorola processor errata.
Submitted by: Suleiman Souhlal <refugee@segfaulted.com>
|
#
125615 |
|
09-Feb-2004 |
grehan |
Recognize MPC7547 (aka G4+)
|
#
120460 |
|
26-Sep-2003 |
grehan |
DELAY must be a routine, not a macro definition.
|
#
110388 |
|
05-Feb-2003 |
benno |
Export the ns_per_tick variable through md_var.h rather than by declaring it extern in cpu.c.
|
#
110386 |
|
05-Feb-2003 |
benno |
Add cpu.c. This contains one exported function, cpu_setup(), which handles setup of and printing information about cpus.
Obtained from: NetBSD (parts)
|