Module Name: src Committed By: snj Date: Mon Apr 6 01:55:53 UTC 2015
Modified Files: src/sys/arch/arm/cortex [netbsd-7]: gtmr.c Log Message: Pull up following revision(s) (requested by skrll in ticket #662): sys/arch/arm/cortex/gtmr.c: revision 1.10-1.14 port-arm/49737: armgtmr0 timer broken Use physical timer instead of virtual timer for timecounter. For platforms that implement virtualization extensions, the CNTVOFF register defines a virtual offset between the physical count and virtual count. Unfortunately, the CNTVOFF register is only accessible in secure mode and the value is per-CPU, so we may end up in a scenario where virtual count reads from CPU A -> B -> A are not monotonic. No offset applied to physical timer, so physical count reads are guaranteed to be monotonic. -- Sprinkle some arm_isb() to force execution of the mcrr instructions to get more accurate values. (Given that the generic timer is usually running at a 64th or less of the cpu clock, this only settle to a tick or so.) -- Move isb's to before reading count. Change interrupt to level. -- Trailing whitespace. -- Whitespace To generate a diff of this commit: cvs rdiff -u -r1.8.2.1 -r1.8.2.2 src/sys/arch/arm/cortex/gtmr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.