| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
configuration is TARGET_ARCH specific and must be generated with
TARGET_ARCH set.
Reviewed by: imp
|
|
|
|
|
|
|
|
| |
In particular, provide pagesize and pagesizes array, the canary value
for SSP use, number of host CPUs and osreldate.
Tested by: marius (sparc64)
MFC after: 1 month
|
|
|
|
|
| |
instead of int or u_int. Since cpumask_t is currently u_int on all
platforms this should just be a cosmetic change.
|
|
|
|
|
|
|
|
|
|
|
|
| |
IPI to a specific CPU by its cpuid. Replace calls to ipi_selected() that
constructed a mask for a single CPU with calls to ipi_cpu() instead. This
will matter more in the future when we transition from cpumask_t to
cpuset_t for CPU masks in which case building a CPU mask is more expensive.
Submitted by: peter, sbruno
Reviewed by: rookie
Obtained from: Yahoo! (x86)
MFC after: 1 month
|
|
|
|
|
| |
ESID -> VSID map function. This makes ZFS run stably on PowerPC under
heavy loads (repeated simultaneous SVN checkouts and updates).
|
|
|
|
| |
developed against the 970 and Cell simulators.
|
|
|
|
|
| |
Requested by: nwhitehorn
Approved by: zml (mentor)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
zones for each malloc bucket size. The purpose is to isolate
different malloc types into hash classes, so that any buffer overruns
or use-after-free will usually only affect memory from malloc types in
that hash class. This is purely a debugging tool; by varying the hash
function and tracking which hash class was corrupted, the intersection
of the hash classes from each instance will point to a single malloc
type that is being misused. At this point inspection or memguard(9)
can be used to catch the offending code.
Add MALLOC_DEBUG_MAXZONES=8 to -current GENERIC configuration files.
The suggestion to have this on by default came from Kostik Belousov on
-arch.
This code is based on work by Ron Steinke at Isilon Systems.
Reviewed by: -arch (mostly silence)
Reviewed by: zml
Approved by: zml (mentor)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
now it uses a very dumb first-touch allocation policy. This will change in
the future.
- Each architecture indicates the maximum number of supported memory domains
via a new VM_NDOMAIN parameter in <machine/vmparam.h>.
- Each cpu now has a PCPU_GET(domain) member to indicate the memory domain
a CPU belongs to. Domain values are dense and numbered from 0.
- When a platform supports multiple domains, the default freelist
(VM_FREELIST_DEFAULT) is split up into N freelists, one for each domain.
The MD code is required to populate an array of mem_affinity structures.
Each entry in the array defines a range of memory (start and end) and a
domain for the range. Multiple entries may be present for a single
domain. The list is terminated by an entry where all fields are zero.
This array of structures is used to split up phys_avail[] regions that
fall in VM_FREELIST_DEFAULT into per-domain freelists.
- Each memory domain has a separate lookup-array of freelists that is
used when fulfulling a physical memory allocation. Right now the
per-domain freelists are listed in a round-robin order for each domain.
In the future a table such as the ACPI SLIT table may be used to order
the per-domain lookup lists based on the penalty for each memory domain
relative to a specific domain. The lookup lists may be examined via a
new vm.phys.lookup_lists sysctl.
- The first-touch policy is implemented by using PCPU_GET(domain) to
pick a lookup list when allocating memory.
Reviewed by: alc
|
|
|
|
|
|
|
|
|
|
|
| |
name of 32bit sibling architecture instead of the host one. Do the
same for hw.machine on amd64.
Add a safety belt debug.adaptive_machine_arch sysctl, to turn the
substitution off.
Reviewed by: jhb, nwhitehorn
MFC after: 2 weeks
|
|
|
|
|
| |
This removes platform dependencies from <machine>/fdt.h for the benfit of
portability.
|
|
|
|
| |
on PowerPC.
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Obtained from: projects/ppc64
|
|
|
|
|
|
|
|
| |
(exec_setregs, etc.) in order to simplify the addition of 64-bit support,
and possible future extension of the Book-E code to handle hard floating
point and Altivec.
MFC after: 1 month
|
|
|
|
|
| |
Provide ELF definitions for 64-bit PowerPC. This unbreaks the powerpc
loader build.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The following systems are affected:
- MPC8555CDS
- MPC8572DS
This overhaul covers the following major changes:
- All integrated peripherals drivers for Freescale MPC85XX SoC, which are
currently in the FreeBSD source tree are reworked and adjusted so they
derive config data out of the device tree blob (instead of hard coded /
tabelarized values).
- This includes: LBC, PCI / PCI-Express, I2C, DS1553, OpenPIC, TSEC, SEC,
QUICC, UART, CFI.
- Thanks to the common FDT infrastrucutre (fdtbus, simplebus) we retire
ocpbus(4) driver, which was based on hard-coded config data.
Note that world for these platforms has to be built WITH_FDT.
Reviewed by: imp
Sponsored by: The FreeBSD Foundation
|
|
|
|
| |
MFC after: 3 days
|
|
|
|
| |
powerpc64.
|
|
|
|
|
| |
Minor 64-bit-cleanliness upgrades and support for platform detection on
subtly-broken OF implementations like in the Mambo simulator.
|
|
|
|
|
| |
Use longs instead of ints as the native word type in bcopy(). This will
expand nicely on 64-bit systems.
|
|
|
|
|
| |
Check if devices are direct-mapped individually instead of just checking
the value of hw_direct_map.
|
|
|
|
|
| |
amd64 (with slight modifications). This provides support for bounce
buffers, which are required on systems with RAM above 4 GB.
|
| |
|
|
|
|
|
|
| |
a virtual-mode version for use on 64-bit systems, which have 32-bit
firmware implementations and require similar constraints on addressing
to the real-mode implementation.
|
|
|
|
|
| |
instead of unsigned longs to prepare for platforms where they are not
the same.
|
|
|
|
| |
PICs, so replace cpuid logic with an assert.
|
|
|
|
|
|
|
|
|
| |
Because slave PICs send all interrupts to their CPU 0 output line (which
is routed to a pin on the master PIC), changes to per-CPU register banks
like EOI on the slave PIC must be accessed for CPU 0, instead of the
CPU actually processing the interrupt.
Submitted by: Andreas Tobler
|
|
|
|
|
| |
relying on it as a side effect of PIC_MASK() in the PIC drivers, and add
an inmplementation of assign_cpu() for the kernel interrupt layer.
|
|
|
|
|
|
| |
the interrupt's PIC (a) exists and (b) is the root PIC.
Reported by: Andreas Tobler
|
| |
|
|
|
|
|
| |
When compiling with profiling, we define PROF for userspace and GPROF
for the kernel.
|
|
|
|
| |
<sys/syscallsubr.h> where all other kern_<syscall> prototypes live.
|
|
|
|
|
|
| |
o Functions are 4-byte aligned for Book-E.
o We get compiled with -DPROF and not -DGPROF if profiling
is enabled.
|
|
|
|
| |
macro.
|
| |
|
|
|
|
|
| |
we don't have to use a global variable. Pass a NULL frame pointer
to the dispatch function just like openpic(4).
|
|
|
|
|
|
|
|
|
|
| |
the internal interrupt sources as active-high. The internal interrupt
sources are disabled when programmed as active-low.
Note that the internal interrupts have no sense bit like the external
interrupts. We program them as edge-triggered to make sure we write a
0 value to a reserved register. It does not in any way say anything
about the sense of internal interrupt.
|
|
|
|
|
|
| |
CPUs by default, and provide a functional version of BUS_BIND_INTR().
While here, fix some potential concurrency problems in the interrupt
handling code.
|
|
|
|
|
| |
BUS_GET_RESOURCE_LIST() can return a NULL pointer -- and
will for MPC85xx kernels.
|
|
|
|
|
|
|
|
| |
IBAT entry in early boot in order to prevent possible faults from races
between the instruction cache and the MMU.
PR: powerpc/148003
MFC after: 3 days
|
|
|
|
|
|
| |
parantheses around it to allow arithmetic expressions to be passed.
Submitted by: Andreas Tobler
|
|
|
|
| |
found in Apple and IBM G5 systems.
|
|
|
|
|
|
| |
Although the Keywest registers have only 1 byte of content, they are
secretly 4-byte registers, which became apparent from them moving on the
big-endian Uninorth version of the controller.
|
|
|
|
|
|
| |
On Apple systems at least, all the level interrupts are wired active low.
Before this change, our PIC programming only worked because Apple hardware
ignores the interrupt polarity bit on all interrupts except IRQ 0.
|
|
|
|
|
|
| |
OFW interrupt map interface to also return the device's interrupt parent.
MFC after: 8.1-RELEASE
|
|
|
|
|
|
|
|
|
| |
instead of 4-byte ones. Because the mouse pointer can start part way
through a character cell, 4-byte memory operations are not necessarily
aligned, triggering a fatal alignment exception when the console pointer
was moved on PowerPC G5 systems.
MFC after: 3 days
|
| |
|