Files
adsp219x-re/README.md

63 lines
1.8 KiB
Markdown

# ADSP-219x Reverse Engineering Toolkit
Radare2 architecture plugin and reference materials for reverse
engineering ADSP-2191 firmware.
## Contents
r2plugin/ Native radare2 arch plugin (C, GNU style)
examples/ ADSP-2191 assembly examples (FIR, IIR, FFT, Viterbi)
+ assembler-verified ISA test ROM
testrom/ Test ROM generator for plugin validation
docs/ Architecture reference, opcode tables, walkthrough guides
## Quick Start
cd r2plugin && make && make install
r2 -a adsp219x -b 24 examples/isa_test.bin
[0x00000000]> pd 48
## Requirements
- Radare2 >= 5.8.0 (RArchPlugin API)
- GCC
## Plugin Status
The decoder implements all documented ADSP-219x instruction types and
has assembler verification for 34 of 37 documented opcode families.
Assembler-verified coverage includes:
- Types 1, 3, 4, 6, 7, 8, 9, 9a, 10, 10a, 11, 12, 14, 15, 16,
17, 18, 19, 20, 21, 21a, 23, 24, 25, 26, 29, 30, 32, 33, 34,
35, 36, 37
Structural-only coverage remains for:
- Type 22 / 22a (2-word immediate data write)
- Type 31 (IDLE)
- Type 32a (DAG register store with transfer)
For the current verification matrix and test inputs, see
`r2plugin/TESTING.md`.
## Assembler
The examples were assembled with [open21xx](https://github.com/wodz/open21xx),
an open-source assembler/linker for ADSP-218x/219x. Build
instructions are in the open21xx README. The resulting ELF is
converted to raw binary with `dd` (extract the `int_pm` section).
## Analysis Guides
- `docs/GETTING_STARTED.md` - setup, loading ROMs, and basic radare2 use
- `docs/LARGE_ROM_ANALYSIS_WORKFLOW.md` - step-by-step workflow for
analyzing large raw ADSP-219x ROM dumps
## License
Plugin code: LGPL-3.0-only. Example code from Analog Devices
application notes. Documentation extracts from the ADSP-219x
DSP Instruction Set Reference.