NanoBoard 3000 - Host Controller Configuration Flash Memory

Frozen Content

The NanoBoard 3000 has been designed so that the firmware can be updated in the field, over the standard PC-NanoBoard USB connection, without the need for a parallel port or Altium's USB JTAG Adapter (DT01). To accomplish this, the NanoBoard 3000 employs a dual boot system for configuring the board's Host (NanoTalk) Controller FPGA. Either the normal firmware can be loaded, or a version of firmware that enables the normal firmware to be upgraded. These two versions of the firmware are referred to as the 'Primary' and 'Golden' boot images respectively. The version of firmware loaded into the Host Controller is controlled by placement of a jumper on the board.

The two firmware configurations are stored in two M25P80 8-Mbit serial Flash memory devices (from STMicroelectronics). These devices support a serial data rate of 25MHz. The M25P80 is an SPI-compatible device, with both devices accessed through the motherboard's SPI Controller, which itself resides within the board's Host Controller FPGA.

Serial Flash memory devices (U50 and U51),
used to store the two versions of the
NanoBoard firmware.

The function of the two devices (designated U50 and U51) can be summarized as follows:

  • U50 – used to store the 'Golden' boot image for the board's Host Controller. This special version of the firmware, when loaded, allows the normal firmware ('Primary' boot image) – stored in device U51 – to be updated over the USB link. The Host Controller FPGA will only boot from this SPI Flash memory device when the 'PLATFORM UPGRADE ENABLE' jumper (J24) is on, or booting from the normal 'Primary' boot image memory fails.
  • U51 – used to store the 'Primary' boot image. This is the normal operating firmware for the board. The embedded software for the Host Controller will also be stored in this memory. Once the Host is configured, this code will be loaded into the independent SRAM (U47) accessible by the Host Controller. The Host Controller FPGA will only boot from this SPI Flash memory device when the 'PLATFORM UPGRADE ENABLE' jumper (J24) is off.

The Spartan-3AN device used as the Host Controller on the Xilinx variant (NanoBoard 3000XN) has a built-in Flash memory. This is used to store the 'Primary' boot image for the board and, as such, the M25P80 device (U51) is not used.


The M25P80 device used to store the 'Golden' boot image is programmed during manufacture of the board. It should not need to be reprogrammed again, but if this is required, programming can be carried out through the 'SYSTEM JTAG' header, using Altium's USB JTAG Adapter.

For information on how to update the firmware on the board, see NanoBoard 3000 - Firmware Updates.

Location on Board

The two M25P80 devices (U50 and U51) are located on the component side of the board, to the left of the Host Controller FPGA device (U30).

Schematic Reference

The SPI Flash memory devices used to hold the firmware configurations can be found on Sheet 22 (FLASH_M25PX0_SPI_8Mbit.SchDoc, entitled Host - Dual Serial Flash Memory) of the motherboard schematics.

Further Device Information

For more information on the M25P80 device, refer to the datasheet (m25p80.pdf) available at

You are reporting an issue with the following selected text and/or image within the active document: