Yes, I did. I originally patched the PRUSS UIO driver, but then
someone helped me figure out that the only reason that was necessary
was that enabling everything through clock tree is the way to go, and
that the work had already been done (just not made it into angstrom).
So, everything is working.
I'm now working on a debugger. It's an ncurses based application that
lets you load code, set/view registers and memory, set soft
breakpoints, and single step (the latter using facilities described in
the TRM). I made an interface to which I can adapt the UIO driver,
another skunkworks driver that I know about, and I imagine yours - you
can take a look at the interface if you want and let me know:
https://github.com/wz2b/prude/blob/master/Pruss.hpp
and
https://github.com/wz2b/prude/blob/master/Pru.hpp
are the relevant files. I don't want to overstate my progress on this
- I have really just gotten started, there's no real functionality yet
- just some interfaces and the start of the user interface.
I should say, too, that I'm not especially happy with the UIO approach
to this. I find it to be a pain from languages other than C/C++. In
particular, I am doing a lot of java work and the behavior of NIO's
MMAP on java is not good on something that's not a real file. The
Oracle JRE at least fails because before you can mmap a chunk of
memory it checks the file size to make sure it's at least that big.
When the "file" is a device, Java thinks its size is zero and it fails
to mmap. Non-Oracle JREs may behave differently, I don't know - and
it doesn't really matter to me, it'd be great if it also worked in
OpenJDK but I want it to work with Oracle as well (at least for a
while longer).
What I really want is a read/write/seek interface for simpler
operations that require lower performance - for example, if I could
just do this:
# cat mypruapp.bin > /sys/pruss/pruss0/pru0/imem
it be awfully nice for certain simple testing. I wouldn't throw the
mmap interface out entirely for performance reasons (especially what
the UIO driver calls the "dma" memory) but a lot of operations are
linear enough that seek and read wouldn't be all that much more
expensive (in any relevant way).
My thought, then, was to add read/write/seek to the UIO driver, or, if
that's not possible, make a character-mode driver that also supports
mmap. The userspace libraries would have to be fixed (they are
missing a critical function anyway and need work).
How does that line up with your proposed driver?
--Chris
Some more digging revealed 0002-Release-PRUSS-from-reset-on-enable-for-the-am33xx-be.patch from Jason Winnebeck which fixes the problem correctly.
Hi Chris,I have been working with the PRUSS without successfull results. For this reason I tried your test and in my case the devmem shows in the 0x44E00C00 the value 1.What does it mean exactly? Is the waiting value 3 or other in anycase?-RegardsBreixo
--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to a topic in the Google Groups "BeagleBoard" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/beagleboard/h0v-1v1xSyY/unsubscribe?hl=en.
To unsubscribe from this group and all its topics, send an email to beagleboard...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.