Jump to: navigation, search


We using a lot of data from datasheets, tech specs, and manuals. Mostly this is an usual registers description. As now we have more than one processor core, we now moving to the new format of registers info storage: XML definitions

We not yet converted our data to the new format, bit this will be very soon.

Here you can read specsification, see examples and code of library: Nouveau envytools

<?xml version="1.0" encoding="UTF-8"?>
<database xmlns="http://nouveau.freedesktop.org/"
xsi:schemaLocation="http://nouveau.freedesktop.org/ rules-ng.xsd">
<import file="copyright.xml"/>
<domain name="NV_MMIO" size="0x1000000" bare="yes" prefix="chipset">
<reg32 offset="0" name="PMC_BOOT_0" />
<reg32 offset="4" name="PMC_BOOT_1" varset="chipset" variants="NV10-" />
<reg32 offset="0x100" name="PMC_INTR" />
<domain name="NV50_PFB_VM_TRAP" width="32" size="6">
<reg32 offset="0" name="STATUS" />
<reg32 offset="1" name="CHANNEL" />
<reg32 offset="2" name="UNK2" />
<reg32 offset="3" name="ADDRLOW" />
<reg32 offset="4" name="ADDRMID" />
<reg32 offset="5" name="ADDRHIGH" />
<domain name="EXAMPLE1" bare="yes">
<reg32 offset="0x400784" name="PGRAPH_CTXCTL_SWAP" shr="12" />
<reg32 offset="0x0600" name="NV50_COMPUTE_USER_PARAM" length="64" />

ARM disassembly

The guys at the CHDK project have a nice collection of tutorials related to reverse engineering ARM code. For example, see:

IDA Pro 5.5 is the suggested tools since OMAP3430 is armv7-a architecture that older versions may not be able to disassemble some instructions.

This is a very useful tutorials for IDA Pro: IDA Pro Book, File:Reverse Engineering Code with IDA.pdf, IDA Pro disassembly

Also you can use Beye

For more efficient work you can use CollabREate server for collaborative work CollabREate

Also you can use scripts and plugins for IDA:

An ARM Decompiler is in the works too.

Automation in the IDA

IDAPython: http://code.google.com/p/idapython/

IDA API docs: http://www.hex-rays.com/idapro/idapython_docs/

Personal tools
see also