/*! \page page_images Firmware and FPGA Images

\tableofcontents

\section images_overview Images Overview

Every USRP device must be loaded with special firmware and FPGA images.
The methods of loading images into the device vary among devices:

-   **USRP1:** The host code will automatically load the firmware and
    FPGA at runtime.
-   **USRP2:** The user must manually write the images onto the USRP2 SD
    card.
-   **USRP-N Series:** The user programs an image into on-board storage,
    which then is automatically loaded at runtime.
-   **USRP-E Series:** The host code will automatically load the FPGA at
    runtime.
-   **USRP-B Series:** The host code will automatically load the FPGA at
    runtime.
-   **USRP-X Series:** The user programs an image into on-board storage,
    which then is automatically loaded at runtime.

\section images_prebuild Pre-built Images

Pre-built images are available for download.

- <a href="http://files.ettus.com/binaries/images/">Images</a>

The pre-built images come in two forms:

-   bundled with UHD software in a platform-specific installer
-   stand-alone platform-independent archive files

\subsection images_prebuilt_downloader UHD Images Downloader

The UHD images downloader downloads UHD images compatible with the host
code and places them in the default images directory.

The download script is typically installed into your $PATH and can be invoked
by calling

    uhd_images_downloader

It can also be found at: `<install-path>/lib/uhd/utils/uhd_images_downloader.py`

By default, it installs images to: `<install-path>/share/uhd/images`

\subsection images_prebuilt_installers Platform installers

The UNIX-based installers will install the images into `/usr/share/uhd/images`.

The Windows installers will install the images into `C:/Program Files/UHD/share/uhd/images`.

\subsection images_prebuilt_archive Archive install

When installing images from an archive, there are two options:

<b>Option 1:</b>

Unpack the archive into the UHD installation prefix. UHD software will
always search `<install-path>/share/uhd/images` for image files.
Where `<install-path>` was set by the `CMAKE_INSTALL_PREFIX` at
configure-time.

<b>Option 2:</b>

Unpack the archive anywhere and set the `UHD_IMAGES_DIR` environment variable.
The `UHD_IMAGES_DIR` environment variable may contain a list of paths. They
should be ordered by preference.

\section images_building Building Images

The UHD source repository comes with the source code necessary to build
both firmware and FPGA images for all supported devices.

The build commands for a particular image can be found in
`<uhd-repo-path>/images/Makefile`.

\subsection images_building_xilinx Xilinx FPGA builds

USRP Xilinx FPGA images are built with either Vivado or one of two versions of ISE,
depending on the device.

The build requires that you have a UNIX-like environment with `Make`.
Make sure that `xtclsh` from the Xilinx Vivado or ISE bin directory is in your `$PATH`.

- Vivado 2017.4: USRP N3x0, USRP E3x0, USRP X3x0
- Xilinx ISE 14.7: USRP B2x0, USRP B200mini, B200mini-i, B205mini-i, USRP N2x0

See `<uhd-repo-path>/fpga/usrp3/top/`.

- Xilinx ISE 12.2: USRP B1x0, USRP E1x0, USRP2 [All of these devices are EOL as of 2018]

See `<uhd-repo-path>/fpga/usrp2/top/`.

\subsection images_building_zpu ZPU firmware builds

The ZPU GCC compiler is required to build the ZPU firmware images. The
build requires that you have a UNIX-like environment with `CMake` and
`Make`. Make sure that `zpu-elf-gcc` is in your `$PATH`.

See `<uhd-repo-path>/firmware/zpu`.

\subsection images_building_altera Altera FPGA builds

Quartus is required to build the Altera FPGA image for the USRP1.
Pre-built images can also be found in `<uhd-repo-path>/fpga/usrp1/rbf`.

See `<uhd-repo-path>/fpga/usrp1/toplevel/`.

\subsection images_building_fx2 FX2 firmware builds

The SDCC compiler is required to build the FX2 firmware images. The
build requires that you have a UNIX-like environment with `CMake` and `Make`.

See `<uhd-repo-path>/firmware/fx2`.

*/
// vim:ft=doxygen:
