#
346561 |
|
22-Apr-2019 |
ian |
MFC r346312:
Only set up the interrupts that will actually be used in arm generic_timer.
The code previously set up interrupt handlers for all the interrupt resources available, including for timers that are not in use. That could lead to interrupt storms. For example, if boot firmware enabled the virtual timer but the kernel is using the physical timer, it could get flooded with interrupts on the virtual timer which it cannot shut off. By only setting up an interrupt handler for the hardware that will actually be used, any interrupts from other timer units will remain masked in the interrupt controller.
Differential Revision: https://reviews.freebsd.org/D19871
|
#
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)
|
#
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
|
#
306907 |
|
09-Oct-2016 |
jmcneill |
MFC r306658: Clear GT_CTRL_ENABLE to stop the timer.
|
#
305866 |
|
16-Sep-2016 |
kib |
MFC r304285: Implement userspace gettimeofday(2) with HPET timecounter.
|
#
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 |
#
299851 |
|
15-May-2016 |
manu |
Allow arm generic_timer code to be included even if not present in the SoC.
Reviewed by: andrew Approved by: cognet (mentor) Differential Revision: https://reviews.freebsd.org/D6372
|
#
299072 |
|
04-May-2016 |
bz |
The virtual timer is optional on ARM64. Properly handle that condition. [1] In case we do not have an interrupt assignment for the virtual timer, force the physical timer. Also skip resource allocation for any timer we do not have an interrupt assignment for.
In collaboration with: andrew Submitted by: br ([1] from his gem5 arm64 work) Sponsored by: DARPA/AFRL Reviewed by: andrew MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D6203
|
#
299071 |
|
04-May-2016 |
bz |
The ARM generic timer keeps ticking even if disabled or it expired. In case of updating it with a very low value it might expire again after writing the tval but before updating ctrl. In that case we do lose the status bit saying that the timer expired and we will consequently not get an interrupt for it, leaving the timer in a "dead" state.
In order to solve this increase the minimum period with what the timer can be loaded to something higher.
Found & analysed with: gem5 Debugged with: andrew Sponsored by: DARPA/AFRL Reviewed by: andrew MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D6202
|
#
298854 |
|
30-Apr-2016 |
andrew |
Add a MULTIDELAY option to allow the ARM kernel to have multiple DELAY implementations. Early in the boot the kernel will use an approximate, however after the timer has been probed it will switch to a more accurate implementation.
Reviewed by: manu Sponsored by: ABT Systems Ltd Differential Revision: https://reviews.freebsd.org/D5762
|
#
298648 |
|
26-Apr-2016 |
bz |
Mark the unused period argument __unused.
Reviewed by: andrew MFC after: 2 weeks Sponsored by: DARPA/AFRL
|
#
295633 |
|
15-Feb-2016 |
andrew |
Set sc->clkfreq removed in r295470
Reported by: Jared McNeill <jmcneill@invisible.ca> Pointy-hat to: andrew
|
#
295470 |
|
10-Feb-2016 |
andrew |
Use OF_getencprop to read a property, it already handles the endian conversion so we don't need to pass the data through fdt32_to_cpu.
|
#
291937 |
|
07-Dec-2015 |
kib |
Add support for usermode (vdso-like) gettimeofday(2) and 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
|
#
284273 |
|
11-Jun-2015 |
andrew |
Add basic support for ACPI. It splits out the nexus driver to two new drivers, one for fdt, one for acpi. It then uses this to decide if it will use fdt or acpi.
The GICv2 (interrupt controller) and Generic Timer drivers have been updated to handle both cases.
As this is early code we still need FDT to find the kernel console, and some parts are still missing, including PCI support.
Differential Revision: https://reviews.freebsd.org/D2463 Reviewed by: jhb, jkim, emaste Obtained from: ABT Systems Ltd Relnotes: Yes Sponsored by: The FreeBSD Foundation
|
#
282483 |
|
05-May-2015 |
andrew |
Update the comment on what CPUs this driver supports.
|
#
281072 |
|
04-Apr-2015 |
andrew |
Add support for arm64 to the existing arm generic timer driver: - Add macros to handle the differences in accessing these registers on arm and arm64. - Use the fdt data to detect if we are on an ARMv7 or ARMv8. - Use the virtual timer by default on arm64, we may not have access to the physical timer.
Differential Revision: https://reviews.freebsd.org/D2208 Reviewed by: emaste Sponsored by: The FreeBSD Foundation
|
#
280987 |
|
02-Apr-2015 |
andrew |
Stop including machine/fdt.h, it's not needed.
Sponsored by: The FreeBSD Foundation
|
#
280986 |
|
02-Apr-2015 |
andrew |
We may not be using gcc to compile this.
Sponsored by: The FreeBSD Foundation
|
#
280985 |
|
02-Apr-2015 |
andrew |
Add the generic timer registers to sysreg.h and cpu-v6.h, and use the access functions in the generic timer driver.
Differential Revision: https://reviews.freebsd.org/D2198 Sponsored by: The FreeBSD Foundation
|
#
275208 |
|
28-Nov-2014 |
andrew |
Some device tree configurations place the generic timer under the root of the tree and not under simplebus. Update the driver to handle this.
Submitted by: Julien Grall <julien.grall AT linaro.org> MFC after: 1 week
|
#
275207 |
|
28-Nov-2014 |
andrew |
We don't use the hypervisor interrupt, make it optional in the device tree.
Submitted by: Julien Grall <julien.grall AT linaro.org> MFC after: 1 week
|
#
271189 |
|
06-Sep-2014 |
andrew |
Allow us to use the virtual timer. It is currently disabled, but should be usable as the default timer in place of the physical timer.
We are guaranteed to have access to the virtual timer, but when running under a hypervisor may not have access to the physical.
Differential Revision: https://reviews.freebsd.org/D588
|
#
269605 |
|
05-Aug-2014 |
ian |
Attach arm generic interrupt and timer drivers in the middle of BUS_PASS_INTERRUPT and BUS_PASS_TIMER, respectively.
|
#
264065 |
|
03-Apr-2014 |
br |
- Setup both secure and non-secure timer IRQs. We don't know our ARM security state, so one of them will operate. - Don't set frequency, since it's unpossible in non-secure state. Only rely on DTS clock-frequency value or get clock from timer.
Discussed with: ian, cognet
|
#
262534 |
|
26-Feb-2014 |
ian |
Replace many pasted identical definitions of cpu_initclocks() with a common implementation in arm/machdep.c. Most arm platforms either don't need to do anything, or just need to call the standard eventtimer init routines. A generic implementation that does that is now provided via weak linkage. Any platform that needs to do something different can provide a its own implementation to override the generic one.
|
#
261410 |
|
02-Feb-2014 |
ian |
Follow r261352 by updating all drivers which are children of simplebus to check the status property in their probe routines.
Simplebus used to only instantiate its children whose status="okay" but that was improper behavior, fixed in r261352. Now that it doesn't check anymore and probes all its children; the children all have to do the check because really only the children know how to properly interpret their status property strings.
Right now all existing drivers only understand "okay" versus something- that's-not-okay, so they all use the new ofw_bus_status_okay() helper.
|
#
257200 |
|
26-Oct-2013 |
ian |
Remove #include <machine/frame.h> from all the arm code that doesn't really need it. That would be almost everywhere it was included. Add it in a couple files that really do need it and were previously getting it by accident via another header.
|
#
252780 |
|
05-Jul-2013 |
ray |
o Make fields names short. o Slim down reg fields comments.
|
#
252427 |
|
30-Jun-2013 |
ray |
Replace some spaces to tab.
|
#
252425 |
|
30-Jun-2013 |
ray |
Decrypt magic numbers - define names for fields of Generic Timer's CNTKCTL reg.
Submitted by: Ruslan Bukin <br@bsdpad.com>
|
#
252372 |
|
29-Jun-2013 |
ray |
Add ARM Generic Timer driver.
Submitted by: Ruslan Bukin <br@bsdpad.com>
|