Skip to content

Processor Timers

Yuriy Kolerov edited this page Jul 22, 2023 · 2 revisions

Processor timers module support

The ARC TIMER module supports:

  • TIMER0 configuration.
  • TIMER1 configuration.
  • 64-bit real time counter. However, it doesn't count the CPU cycles, nor can be configured as a Watchdog timer.

All the counters are not counting cycles, but rather the elapsed simulation time related with a heuristic frequency found for ARC CPU frequency. The ARC CPU frequency can be user controlled and changed via QEMU parameter --global cpu.freq_hz=XXXX, where XXXX is the new desired frequency in Hz.

TIMER0:

AUX register Observations
CONTROL0.IE Fully supported
CONTROL0.NH Not supported
CONTROL0.W Not supported
CONTROL0.IP Fully supported
CONTROL0.PD Not supported
COUNT0 Fully supported
LIMIT0 Fully supported

TIMER1:

AUX register Observations
CONTROL1.IE Fully supported
CONTROL1.NH Not supported
CONTROL1.W Not supported
CONTROL1.IP Fully supported
CONTROL1.PD Not supported
COUNT1 Fully supported
LIMIT1 Fully supported

Real-time Counter:

AUX register Observations
AUX_RTC_CTRL.E Fully supported
AUX_RTC_CTRL.C Fully supported
AUX_RTC_CTRL.A0 Always set to 1
AUX_RTC_CTRL.A1 Always set to 1
AUX_RTC_LOW Fully supported
AUX_RTC_HIGH Fully supported

Timer related build configuration register(s)

AUX register Observations QEMU properties
TIMER_BUILD.VERSION Always set to 4
TIMER_BUILD.T0 Fully supported --global cpu.timer0=true/false
TIMER_BUILD.T1 Fully supported --global cpu.timer1=true/false
TIMER_BUILD.RTC Fully supported --global cpu.rtc-opt=true/false
TIMER_BUILD.P0 Not supported
TIMER_BUILD.P1 Not supported
Clone this wiki locally