#
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 |
#
300694 |
|
25-May-2016 |
ian |
Include machine/acle-compat.h in cdefs.h on arm if the compiler doesn't have ACLE support built in. The ACLE (ARM C Language Extensions) defines a set of standardized symbols which indicate the architecture version and features available. ACLE support is built in to modern compilers (both clang and gcc), but absent from gcc prior to 4.4.
ARM (the company) provides the acle-compat.h header file to define the right symbols for older versions of gcc. Basically, acle-compat.h does for arm about the same thing cdefs.h does for freebsd: defines standardized macros that work no matter which compiler you use. If ARM hadn't provided this file we would have ended up with a big #ifdef __arm__ section in cdefs.h with our own compatibility shims.
Remove #include <machine/acle-compat.h> from the zillion other places (an ever-growing list) that it appears. Since style(9) requires sys/types.h or sys/param.h early in the include list, and both of those lead to including cdefs.h, only a couple special cases still need to include acle-compat.h directly.
Loves it: imp
|
#
295267 |
|
04-Feb-2016 |
mmel |
Replace broken implementation of fuswintr() and suswintr() by functions which return -1 as well as on tier 1 archs. Remove block_userspace_access used only in these implementations.
(1) These functions may be called in interrupt context and pcb_onfault can be already set in this time. Thus, prior pcb_onfault must be saved and restored afterwards.
(2) The check that an abort came either from nested interrupt or while in critical section or holding not sleepable lock must be avoided for this case.
These functions are called only for profiling reason, so there will be only small gain by making the code more complex.
|
#
293830 |
|
13-Jan-2016 |
ian |
Fix the spelling of fueword* to eliminate compile warnings about mismatched begin/end symbols when the warning level is turned up.
Submitted by: Steve Kiernan <stevek@juniper.net>
|
#
289372 |
|
15-Oct-2015 |
kib |
ARM userspace accessors, e.g. {s,f}uword(9), copy{in,out}(9), casuword(9) and others, use LDRT and STRT instructions to access memory with the privileges of userspace. If the *RT instruction faults on the kernel address, then additional checks must be done to not confuse the VM system with invalid kernel-mode faults.
Put ARM on line with other FreeBSD architectures and disallow usermode buffers which intersect with the kernel address space in advance, before any accesses are performed. In other words, vm_fault(9) is no longer called when e.g. suword(9) stores to invalid (i.e. not userspace) address.
Also, switch ARM to use fueword(9) and casueword(9).
Note: there is a pending patch in D3617, which adds the special processing for faults from LDRT and STRT. The addition of the processing is useful for potential other uses of the instructions and for completeness, but standard userspace accessors are better served by not allowing such faults beforehand.
Reviewed by: andrew Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D3816 MFC after: 2 weeks
|
#
283366 |
|
24-May-2015 |
andrew |
Remove trailing whitespace from sys/arm/arm
|
#
282763 |
|
11-May-2015 |
andrew |
Move to use __ARM_ARCH in more places in the kernel.
|
#
276596 |
|
02-Jan-2015 |
ian |
Fix alignment directives in arm asm code after clang 3.5 import.
The ancient gas we've been using interprets .align 0 as align to the minimum required alignment for the current section. Clang's integrated assembler interprets it as align to a byte boundary. Fortunately both assemblers interpret a non-zero value as align to 2^N so just make sure we have appropriate non-zero values everywhere.
|
#
275521 |
|
05-Dec-2014 |
andrew |
Set the alignment to 4-bytes after a string as clang 3.5 can switch to thumb mode if this is incorrect.
MFC after: 1 week Sponsored by: ABT Systems Ltd
|
#
275520 |
|
05-Dec-2014 |
andrew |
Use the unified syntax in a few more assembly files
MFC after: 1 week Sponsored by: ABT Systems Ltd
|
#
275322 |
|
30-Nov-2014 |
andrew |
Correctly a few incorrect uses of ENTRY/EENTRY and END/EEND
Sponsored by: ABT Systems Ltd
|
#
269390 |
|
01-Aug-2014 |
ian |
Fix unwind-info errors in our hand-written arm assembler code.
We have functions nested within functions, and places where we start a function then never end it, we just jump to the middle of something else. We tried to express this with nested ENTRY()/END() macros (which result in .fnstart and .fnend directives), but it turns out there's no way to express that nesting in ARM EHABI unwind info, and newer tools treat multiple .fnstart directives without an intervening .fnend as an error.
These changes introduce two new macros, EENTRY() and EEND(). EENTRY() creates a global label you can call/jump to just like ENTRY(), but it doesn't emit a .fnstart. EEND() is a no-op that just documents the conceptual endpoint that matches up with the same-named EENTRY().
This is based on patches submitted by Stepan Dyatkovskiy, but I made some changes and added the EEND() stuff, so blame any problems on me.
Submitted by: Stepan Dyatkovskiy <stpworld@narod.ru>
|
#
263057 |
|
11-Mar-2014 |
ian |
Remove #include <machine/asmacros.h> from files that don't need it.
|
#
261415 |
|
02-Feb-2014 |
cognet |
Change the way pcpu and curthread are stored per-core: the old way was to store pcpu in a register, and get curthread from pcpu, which is not very atomic, and led to issues if the thread was migrated to another core between the time we got the pcpu address and the time we got curthread. Instead, we now store curthread where pcpu used to be store, and we calculate the pcpu address based on the cpu id.
|
#
256748 |
|
18-Oct-2013 |
cognet |
KERNBASE is unsigned, so we'd better use hs instead of ge.
Pointy hat to: cognet Suggested by: ian
|
#
256691 |
|
17-Oct-2013 |
cognet |
Make casuword() atomic for armv6
|
#
248361 |
|
16-Mar-2013 |
andrew |
Add an END macro to ARM. This is mostly used to tell gas where the bounds of the functions are when creating the EABI unwind tables.
|
#
239268 |
|
15-Aug-2012 |
gonzo |
Merging projects/armv6, part 1
Cummulative patch of changes that are not vendor-specific: - ARMv6 and ARMv7 architecture support - ARM SMP support - VFP/Neon support - ARM Generic Interrupt Controller driver - Simplification of startup code for all platforms
|
#
163449 |
|
17-Oct-2006 |
davidxu |
o Add keyword volatile for user mutex owner field. o Fix type consistent problem by using type long for old umtx and wait channel. o Rename casuptr to casuword.
|
#
161734 |
|
30-Aug-2006 |
cognet |
Use ENTRY_NP for alternate entry points instead of ENTRY to avoid calling mcount twice when profiling.
Spotted out by: bde
|
#
161727 |
|
29-Aug-2006 |
cognet |
Use ENTRY instead of ALTENTRY, it doesn't exist on arm.
|
#
161675 |
|
28-Aug-2006 |
davidxu |
Implement casuword32, compare and set user integer, thank Marcel Moolenarr who wrote the IA64 version of casuword32.
|
#
145452 |
|
23-Apr-2005 |
cognet |
Don't use fusufault in casuptr(), as it assumes the current PCB will be stored in r2, which can't be easily done with casuptr(). Introduce casuptrfault instead.
|
#
142518 |
|
25-Feb-2005 |
cognet |
Make sure casuptr() reset pcb->pcb_onfault when returning.
|
#
139735 |
|
05-Jan-2005 |
imp |
Start all license statements with /*-
|
#
137463 |
|
09-Nov-2004 |
cognet |
Use the RET macro.
|
#
137271 |
|
05-Nov-2004 |
cognet |
Implement casuptr.
|
#
135881 |
|
28-Sep-2004 |
cognet |
Calling fuword from fuword32 with bl and without returning after is really a bad idea. Any way I get a customized CVS template with "Pointy hat to: cognet" pre-filled ?
|
#
129198 |
|
14-May-2004 |
cognet |
Import FreeBSD/arm kernel bits. It only supports sa1110 (on simics) right now, but xscale support should come soon. Some of the initial work has been provided by : Stephane Potvin <sepotvin at videotron.ca> Most of this comes from NetBSD.
|