Permalink
Browse files

Using a marked up README

  • Loading branch information...
scottellis committed Feb 19, 2011
1 parent 93e86a0 commit de4e220ff84ee23985f32d2bef64665ba9b42189
Showing with 34 additions and 7 deletions.
  1. +34 −7 README → README.md
View
@@ -1,5 +1,11 @@
+ overo-irqlat
+=============
+
+Overview
+-------
+
A linux module to measure gpio irq latency and the time it takes to toggle a
-gpio pin in an OMAP3 kernel.
+gpio pin in an OMAP3 kernel.
The test requires an oscope to do the actual measurements and two gpio pins
jumpered together. The pins are assumed to be already mux'd as GPIO and not
@@ -23,8 +29,15 @@ IRQ_PIN ---- TP ---- TEST_PIN
oscope
+Build
+-------
+
There is a file you can source to set up the environment for building using
the OE tools configured the standard gumstix way.
+
+
+Run
+-------
Build the module, insert it and then write 1 to do an irq latency test or
anything else to do a gpio toggle speed test.
@@ -45,14 +58,26 @@ Set your scope to trigger on a rising signal.
The program sets up IRQ_PIN as an input and irq enables it for an
IRQ_TRIGGER_RISING signal.
-I last tested with a 2.6.36 kernel and two Overo COMs, one 720 MHz Tide
+
+Results
+-------
+
+The latest test was with a 2.6.36 kernel and two Overo COMs, one 720 MHz Tide
and one 500 MHz board.
+
+The same tftp booted kernel, nfs root filesystem and Tobi expansion board was
+used for both COMs. Only the boot.scr on the SD card specifying the different
+mpurates was different.
For the irq latency test, the program raises TEST_PIN and in the IRQ_PIN irq
handler, it lowers TEST_PIN again. The difference between the rise and fall of
-TEST_PIN is the irq latency, minus the time the gpio_set() call takes. I get
-values in the neighborhood of 8-9 usecs for either board. There is a good usec
-variation in this test, sometimes up to 10 usecs for either board.
+TEST_PIN is what I am calling the irq latency. This ignores the time the
+gpio_set() call takes, but you can see from the next test that it is negligble
+for this measurement.
+
+I get values in the neighborhood of 8-9 usecs for either board. There is a good
+amount of variation in this test. It sometimes takes up to 10 usecs for either
+board, but never under 8 usecs.
Refer to the *_gpio-irq-latency.png screenshots.
@@ -62,8 +87,10 @@ again for 1000 iterations. You can watch with an oscope the time this takes.
Refer to the *-gpio-toggle-1000.png screenshots.
-For the 500 MHz system, ~420 usecs for 1000 cycles = ~210 nsecs to change state
-For the 720 MHz system, ~290 usecs for 1000 cycles = ~145 nsecs to change state
+Here are the measurements I get.
+
+500 MHz COM: ~420 usecs for 1000 cycles = ~210 nsecs to change state = ~4.76 MHz
+720 MHz COM: ~290 usecs for 1000 cycles = ~145 nsecs to change state = ~6.90 MHz
See the source code for more details.

0 comments on commit de4e220

Please sign in to comment.