aboutsummaryrefslogtreecommitdiff
path: root/sys/arm/include/md_var.h
Commit message (Collapse)AuthorAgeFilesLines
* Implement userspace gettimeofday(2) with HPET timecounter.Konstantin Belousov2016-08-171-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Right now, userspace (fast) gettimeofday(2) on x86 only works for RDTSC. For older machines, like Core2, where RDTSC is not C2/C3 invariant, and which fall to HPET hardware, this means that the call has both the penalty of the syscall and of the uncached hw behind the QPI or PCIe connection to the sought bridge. Nothing can me done against the access latency, but the syscall overhead can be removed. System already provides mappable /dev/hpetX devices, which gives straight access to the HPET registers page. Add yet another algorithm to the x86 'vdso' timehands. Libc is updated to handle both RDTSC and HPET. For HPET, the index of the hpet device to mmap is passed from kernel to userspace, index might be changed and libc invalidates its mapping as needed. Remove cpu_fill_vdso_timehands() KPI, instead require that timecounters which can be used from userspace, to provide tc_fill_vdso_timehands{,32}() methods. Merge i386 and amd64 libc/<arch>/sys/__vdso_gettc.c into one source file in the new libc/x86/sys location. __vdso_gettc() internal interface is changed to move timecounter algorithm detection into the MD code. Measurements show that RDTSC even with the syscall overhead is faster than userspace HPET access. But still, userspace HPET is three-four times faster than syscall HPET on several Core2 and SandyBridge machines. Tested by: Howard Su <howard0su@gmail.com> Sponsored by: The FreeBSD Foundation MFC after: 1 month Differential revision: https://reviews.freebsd.org/D7473 Notes: svn path=/head/; revision=304285
* Add support for usermode (vdso-like) gettimeofday(2) andKonstantin Belousov2015-12-071-0/+5
| | | | | | | | | | | | | | | | | | | | | clock_gettime(2) on ARMv7 and ARMv8 systems which have architectural generic timer hardware. It is similar how the RDTSC timer is used in userspace on x86. Fix a permission problem where generic timer access from EL0 (or userspace on v7) was not properly initialized on APs. For ARMv7, mark the stack non-executable. The shared page is added for all arms (including ARMv8 64bit), and the signal trampoline code is moved to the page. Reviewed by: andrew Discussed with: emaste, mmel Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D4209 Notes: svn path=/head/; revision=291937
* A follow-up to r288492. In fact, revert the mentioned commit forKonstantin Belousov2015-10-071-0/+2
| | | | | | | | | | | | | | | | | | | | | pre-VFPv3 processors, since they do require software support code to handle denormals. For VFPv3 and later, enable flush-to-zero if hardware does not claim full denormals arithmetic support by VMVFR1_FZ field in mvfr1 register. The end result is that we do use correct fpu environment on Cortexes with VFPv3, while ARM11 (e.g. rpi) is in non-compliant flush-to-zero mode. At least CPUs without complete hardware implementation of IEEE 754 do not cause unhandled floating point exception on underflow, as it was before r288492. Noted by: ian Tested by: gjb Sponsored by: The FreeBSD Foundation MFC after: 1 week Notes: svn path=/head/; revision=288983
* Declare Maxmem on arm. This should have been part of r277532.Ian Lepore2015-01-221-0/+1
| | | | Notes: svn path=/head/; revision=277533
* Pass up the error status of minidumpsys() to its callers.Mark Johnston2014-10-081-1/+1
| | | | | | | | | PR: 193761 Submitted by: Conrad Meyer <conrad.meyer@isilon.com> Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=272766
* Remove all traces of support for ARM chips prior to the arm9 series. WeIan Lepore2014-03-091-8/+0
| | | | | | | | | | never actually ran on these chips (other than using SA1 support in an emulator to do the early porting to FreeBSD long long ago). The clutter and complexity of some of this code keeps getting in the way of other maintenance, so it's time to go. Notes: svn path=/head/; revision=262958
* Add identification and necessary type checks for Krait CPU cores. Krait CPU ↵Ganbold Tsagaankhuu2013-12-201-0/+1
| | | | | | | | | | | | | is used in Qualcomm Snapdragon S4 and Snapdragon 400/600/800 SoCs and has architectural similarities to ARM Cortex-A15. As for development boards IFC6400 series embedded boards from Inforce Computing uses Snapdragon S4 Pro/APQ8064. Approved by: stas (mentor) Notes: svn path=/head/; revision=259640
* Merging projects/armv6, part 1Oleksandr Tymoshenko2012-08-151-0/+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 Notes: svn path=/head/; revision=239268
* The FA526 belongs to the ARM9TDMI familyKevin Lo2010-05-121-1/+0
| | | | Notes: svn path=/head/; revision=207954
* Show the cpu info for fa526Kevin Lo2010-02-201-0/+1
| | | | | | | Submitted by: Yohanes Nugroho <yohanes at gmail dot com> Notes: svn path=/head/; revision=204122
* Promote the cpu_class local variable to global and expose it in md_var.hRui Paulo2009-09-261-0/+21
| | | | | | | Reviewed by: freebsd-arm Notes: svn path=/head/; revision=197523
* Support kernel crash mini dumps on ARM architecture.Rafal Jaworowski2008-11-061-0/+6
| | | | | | | Obtained from: Juniper Networks, Semihalf Notes: svn path=/head/; revision=184728
* - Add bounce pages for arm, largely based on the i386 implementation.Olivier Houchard2007-01-171-0/+3
| | | | | | | | | | - Add a default parent dma tag, similar to what has been done for sparc64. - Before invalidating the dcache in POSTREAD, save the bits which are in the same cachelines than our buffers, but not part of it, and restore them after the invalidation. Notes: svn path=/head/; revision=166063
* Add a new API to let platform-specific ports provide functions for bigOlivier Houchard2005-10-031-0/+10
| | | | | | | copy/zeroing. Notes: svn path=/head/; revision=150864
* Declare sigcode and szsigcode.Olivier Houchard2004-09-231-0/+3
| | | | Notes: svn path=/head/; revision=135663
* Import FreeBSD/arm kernel bits.Olivier Houchard2004-05-141-0/+36
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. Notes: svn path=/head/; revision=129198