Iñigo Muguruza
2014-06-17 15:00:39 UTC
Dear OpenRISC community,
I write this mail to inform about an issue I have found when I analyzed the
outcome data coming from or1200 and mor1kx profiling. I am working in
making a OpenRISC tutorial to help people install and execute the diverse
open-soruce SoC tools. In this tutorial a profiling test for or1200/mor1kx
is made. Surprisingly, the results are really different, inducting to think
about a fault/bug. (results in the attached txts)
In the mor1kx, _reset and or1k_dmu_disable routines, takes really a big
percentage of the execution, while in or1200 is does not happen the same.
The tools that I have used to make the profiling are the next ones:
- De0_nano board
- mor1kx and or1200 .sof generated with quartus tools. (changing defines
from orpsoc-defines.v)
- Simple test code, basically two decrementing loops that are called by the
main. It also prints messages at the end of each loop (see prof-test.c from
the link below).
- OpenOCD
- Telnet client for running the test.
- OpenOCD patch. Enables to execute profiling in or1200/mor1kx. gmon file
data writing for big endian targets. http://openocd.zylin.com/#/c/2168/
The procedure, is the one described in the "profiling" section of this
tutorial:
http://wiki.mintsoc.org/doku.php?id=run_programs_on_the_altera_de0_nano_board#profiling
Best regards,
Inigo Muguruza
I write this mail to inform about an issue I have found when I analyzed the
outcome data coming from or1200 and mor1kx profiling. I am working in
making a OpenRISC tutorial to help people install and execute the diverse
open-soruce SoC tools. In this tutorial a profiling test for or1200/mor1kx
is made. Surprisingly, the results are really different, inducting to think
about a fault/bug. (results in the attached txts)
In the mor1kx, _reset and or1k_dmu_disable routines, takes really a big
percentage of the execution, while in or1200 is does not happen the same.
The tools that I have used to make the profiling are the next ones:
- De0_nano board
- mor1kx and or1200 .sof generated with quartus tools. (changing defines
from orpsoc-defines.v)
- Simple test code, basically two decrementing loops that are called by the
main. It also prints messages at the end of each loop (see prof-test.c from
the link below).
- OpenOCD
- Telnet client for running the test.
- OpenOCD patch. Enables to execute profiling in or1200/mor1kx. gmon file
data writing for big endian targets. http://openocd.zylin.com/#/c/2168/
The procedure, is the one described in the "profiling" section of this
tutorial:
http://wiki.mintsoc.org/doku.php?id=run_programs_on_the_altera_de0_nano_board#profiling
Best regards,
Inigo Muguruza