[raspi-internals] Re: Registers as html extracted from the Brcm_Android_ICS_Graphics_Stack.tar.gz header files

  • From: Martin Sperl <rpiinternal@xxxxxxxxxxxxxxxx>
  • To: raspi-internals@xxxxxxxxxxxxx
  • Date: Wed, 5 Mar 2014 22:51:58 +0100

Hi Mathias!

On 05.03.2014, at 21:21, Mathias Gottschlag <mgottschlag@xxxxxxxxx> wrote:
> Also, I don't know whether everybody knows about it (I guess everybody
> does by now), but I have a couple of traces from the early firmware boot
> process which just wait to be decoded with a script similar to yours:
> http://studwww.ira.uni-karlsruhe.de/~s_gottsc/traces/tracer_hdmi_raw.log
> Format: first letter is the access type, followed by one '0' which iirc
> encodes the access size, followed by (in that order) pc, accessed
> address, value which was read/written.

I know that you have been investigating a lot via reverse engineering - 
I just wanted to help by providing "names" to the registers you have 
already found - I have not seen this summary before.

It is similar to the way that some ops got renamed, because the official
sources name them differently.

So this is mostly an effort to provide a basis from which to start
a more comprehensive documentation of knowledge around those registers.

In the end we need to come up with a place where to consolidate 
the knowledge in a central location - adding a converter to a different
markup if necessary...

As for the list - as the information is taken based on:
brcm_usrlib/dag/vmcsx/vcinclude/bcm2708_chip/register_map.h
which explicitly states bcm2708, I would guess that most of those
registers are really available on the RPI.

On the other hand: brcm_usrlib/dag/vmcsx/vcinclude/hardware_vc4.h 
includes only a subset of the above, but then it is still unclear
which headers are to get really included in the original firmware...

Let us focus on what we need first - checking if the non-essential
registers also exist is probably a matter of writing and reading those
registers of interest to see if the changes written persist or not...

Martin

P.s: if you are mostly interested in the register names for your 
translation script for the traces, then use the following to get 
the official address to register name mapping:

curl https://raw.github.com/msperl/rpi-registers/master/defined.txt \
| grep -E ':R[WO]$' | sed 's/:R[OW]$//' | awk '{print $2,$1}' | sort

the :RW/:RO are designations from the headers, which I did not want to
lose during the conversion process.

Other related posts: