From b9f2ad45d9c3309c1fd44d485c5befddfb6497a4 Mon Sep 17 00:00:00 2001 From: Wojtek Kosior Date: Mon, 20 Jan 2020 14:15:40 +0100 Subject: various random things update 2 --- ...ng-a-separate-txt-for-each-or-ordering-them-in-any-way.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Various-random-things-explained-I-dont-feel-like-creating-a-separate-txt-for-each-or-ordering-them-in-any-way.txt b/Various-random-things-explained-I-dont-feel-like-creating-a-separate-txt-for-each-or-ordering-them-in-any-way.txt index cd69b45..af333fd 100644 --- a/Various-random-things-explained-I-dont-feel-like-creating-a-separate-txt-for-each-or-ordering-them-in-any-way.txt +++ b/Various-random-things-explained-I-dont-feel-like-creating-a-separate-txt-for-each-or-ordering-them-in-any-way.txt @@ -14,3 +14,14 @@ TODOs Contains what the name suggests, in plain text. It lists things that can be implemented or improvemed, as well as tasks, that were once listed and have since been completed (in which case they're marked as done). + + + + +Several timers are available on the RaspberryPi: +1. System Timer (with 4 interrupt lines, regarded as the most reliable, as it is not derived from the system clock and hence is not affecter by processor power mode changes) +2. ARM side Timer (based on a ARM AP804) +3. ARM Generic Timer (optional extension to ARMv7-A and ARMv7-R, configured through coprocessor registers) + +At first, we attempted to use the System Timer, some code for which is still present in src/arm/PL1/kernel/bcmclock.h. The interrupts from that timer are not, however, routed to any ARM core under rpi-open-firmware, but rather to the GPU. Because of that, we ended using the ARM side Timer (programmed in src/arm/PL1/kernel/armclock.h). +The ARM side Timer based on ARM AP804 is currently only available on real hardware and not in qemu. Programming the ARM Generic Timer (listed in TODOs) could enable the use of timer interrupts in qemu. -- cgit v1.2.3