57 lines
1.6 KiB
Markdown
57 lines
1.6 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 now covers most 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).
|
|
|
|
## License
|
|
|
|
Plugin code: LGPL-3.0-only. Example code from Analog Devices
|
|
application notes. Documentation extracts from the ADSP-219x
|
|
DSP Instruction Set Reference.
|