Files

67 lines
2.1 KiB
Markdown
Raw Permalink Normal View History

# 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.