Files
qdl/docs/multi-programmer.md
Igor Opaniuk fa60a80e42 doc: move specialised README sections into docs/
The README had grown into one long page where the basic flashing
workflow was buried between VIP, multi-programmer, ramdump, kickstart,
WSL2 and raw sector guides. Keep only the generic material in the
README and move each specialised workflow into its own file under
docs/, linked from a new "Documentation" index. The moved text is
unchanged apart from heading levels and two cross-references.

Signed-off-by: Igor Opaniuk <igor.opaniuk@oss.qualcomm.com>
2026-09-29 17:59:54 +02:00

68 lines
2.1 KiB
Markdown

# Multi-programmer targets
On some targets multiple files need to be loaded in order to reach the
Firehose programmer; these targets will request multiple images over Sahara.
Three mechanisms for providing these images are provided:
## Command line argument
The *programmer* argument allows specifying a comma-separated list of
colon-separated "id" and "filename" pairs. Each filename should refer to the
Sahara image of the specified Sahara image id.
```bash
qdl 13:prog_firehose_ddr.elf,42:the-answer rawprogram.xml
```
## Sahara configuration XML file
Flattened METAs include the various images that need to be loaded to
enter Firehose mode, as well as a sahara_config XML file, which defines the
Sahara image id for each of these images.
If the specified device programmer is determined to be a Sahara configuration
XML file, it will be parsed and the referenced files will be loaded and
serviced to the device upon request.
```bash
qdl sahara_programmer.xml rawprogram.xml
```
## Programmer archive
Directly providing a list of ids and filenames is cumbersome and error-prone,
so QDL accepts a "*programmer archive*". This allows the user to use the
tool in the same fashion as was done for single-programmer targets.
The *programmer archive* contains the Sahara images to be loaded, identified by
the Sahara *id* needed by the target.
QDL can create such an archive from the same programmer descriptions accepted
for flashing. To create an archive from a command-line Sahara image list:
```bash
qdl create-sahara-archive programmer.bin 13:prog_firehose_ddr.elf,42:the-answer
```
To create an archive from a Sahara configuration XML file:
```bash
qdl create-sahara-archive programmer.bin sahara_programmer.xml
```
To create an archive from a contents XML file:
```bash
qdl create-sahara-archive programmer.bin contents.xml
```
When the contents XML describes multiple storage or flavor combinations, select
exactly one with the same `::specifier` syntax used by `flash`:
```bash
qdl create-sahara-archive programmer.bin contents.xml::ufs
```
*programmer.bin* can now be passed to QDL and the included images will be served
in order to reach Firehose mode.