summaryrefslogtreecommitdiffstats
path: root/sys/arm/include/sysarch.h
Commit message (Collapse)AuthorAgeFilesLines
* Include machine/acle-compat.h in cdefs.h on arm if the compiler doesn'tian2016-05-251-1/+0
| | | | | | | | | | | | | | | | | | | | | | 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
* Use __ARM_ARCH to decide when ARM_TP_ADDRESS needs to be set. This fixesandrew2016-01-161-5/+3
| | | | | | | an issue with clang 3.8.0 where none of the __ARM_ARCH_*__ macros were defined on some ARMv6 kernel configs. Sponsored by: ABT Systems Ltd
* Remove #include <machine/asmacros.h> from files that don't need it.ian2014-03-111-1/+1
|
* - Correct mispellings of the word occurrencegabor2013-04-171-1/+1
| | | | Submitted by: Christoph Mallon <christoph.mallon@gmx.de> (via private mail)
* Merging projects/armv6, part 1gonzo2012-08-151-0/+9
| | | | | | | | | 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
* Replace the C implementation of __aeabi_read_tp with an assembly version.andrew2012-04-161-0/+2
| | | | | | This ensures we follow the ABI by preserving registers r1-r3. Reviewed by: jmallett, imp
* Fix 2 bugs :cognet2011-10-161-1/+5
| | | | | | | | | | | | | | - A race condition could happen if two threads were using RAS at the same time as the code didn't reset RAS_END, the RAS code could believe we were not in a RAS, when we were in fact. - Using signed value logic to compare addresses wasn't such a good idea. Many thanks to Ian to investigate on these issues. Pointy hat to: cognet PR: arm/161498 Submitted by: Ian Lepore <freebsd At damnhippie DOT dyndns dot org MFC after: 1 week
* To prevent various race conditions in the RAS code, store and restore thecognet2009-02-121-0/+3
| | | | | | values in ARM_RAS_START and ARM_RAS_END at context switch time. MFC after: 1 week
* Improve ARM_TP_ADDRESS and RAS area.raj2008-02-051-2/+14
| | | | | | | | | | | | | | De-hardcode usage of ARM_TP_ADDRESS and RAS local storage, and move this special purpose page to a more convenient place i.e. after the vectors high page, more towards the end of address space. Previous location (0xe000_0000) caused grief if KVA was to go beyond the default limit. Note that ARM world rebuilding is required after this change since the location of ARM_TP_ADDRESS is shared between kernel and userland. Submitted by: Grzegorz Bernacki (gjb AT semihalf dot com) Reviewed by: imp Approved by: cognet (mentor)
* Instead of using sysarch() to store-retrieve the tp, add a magic address,cognet2005-02-261-0/+2
| | | | | | | | | | | ARM_TP_ADDRESS, where the tp will be stored. On CPUs that support it, a cache line will be allocated and locked for this address, so that it will never go to RAM. On CPUs that does not, a page is allocated for it (it will be a bit slower, and is wrong for SMP, but should be fine for UP). The tp is still stored in the mdthread struct, and at each context switch, ARM_TP_ADDRESS gets updated. Suggested by: davidxu
* Implement two new sysarch for arm, ARM_GET_TP and ARM_SET_TP, to work aroundcognet2005-02-251-0/+3
| | | | the lack of tls on arm.
* Start all license statements with /*-imp2005-01-051-1/+1
|
* Add MD syscalls to sync the icache and to drain the write buffer.cognet2004-09-231-0/+66
Obtained from: NetBSD
OpenPOWER on IntegriCloud