Trivial changes/forced-commit to document previous change r264050 whose

description was eaten by the dog (or an editor crash or something).

Add variable-frequency support to the arm mpcore eventtimer driver.

This allows a platform's early init code to tell the mpcore driver that the
clock frequency can vary.  That causes the mpcore driver to register an
eventtimer, but not a timecounter.  The platform has to provide a time
counter using some other fixed-frequency clock, but can still use the
per-cpu goodness of the mpcore hardware for event timers.

When the platform support code does something to change the frequency of
the CPU clocks (power saving, thermal management) it must tell the mpcore
driver code about it using arm_tmr_change_frequency().
This commit is contained in:
Ian Lepore 2014-04-02 18:49:50 +00:00
parent b24b2743ce
commit 5b9b849b45
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=264051
3 changed files with 8 additions and 9 deletions

View File

@ -30,16 +30,16 @@
*/
/**
* The ARM Cortex-A9 core can support a global timer plus a private and
* watchdog timer per core. This driver reserves memory and interrupt
* resources for accessing both timer register sets, these resources are
* stored globally and used to setup the timecount and eventtimer.
* The ARM Cortex-A9 core can support a global timer plus a private and
* watchdog timer per core. This driver reserves memory and interrupt
* resources for accessing both timer register sets, these resources are
* stored globally and used to setup the timecount and eventtimer.
*
* The timecount timer uses the global 64-bit counter, whereas the
* per-CPU eventtimer uses the private 32-bit counters.
* The timecount timer uses the global 64-bit counter, whereas the
* per-CPU eventtimer uses the private 32-bit counters.
*
*
* REF: ARM Cortex-A9 MPCore, Technical Reference Manual (rev. r2p2)
* REF: ARM Cortex-A9 MPCore, Technical Reference Manual (rev. r2p2)
*/
#include <sys/cdefs.h>

View File

@ -42,6 +42,6 @@
* Inform the mpcore timer driver of a new clock frequency. This can be called
* both before and after the mpcore timer driver attaches.
*/
void arm_tmr_change_frequency(uint64_t newfreq);
void arm_tmr_change_frequency(uint64_t newfreq);
#endif

View File

@ -86,7 +86,6 @@ __FBSDID("$FreeBSD$");
* OMAP4 devices are different from the previous OMAP3 devices in that there
* is no longer a separate functional and interface clock for each module,
* instead there is typically an interface clock that spans many modules.
*
*/
#define FREQ_96MHZ 96000000