A non-volatile storage subsystem is capable of serving as a configuration controller for configuring /
programming one or more field-programmable devices, such as FPGAs, of a target computer
system. The storage subsystem may be in the form of a memory card or drive that plugs into a standard slot or external port of the target
system. When connected to the target
system, the storage subsystem uses the appropriate download interface / protocol to
stream or otherwise send configuration data stored in its non-volatile storage to the target system's field-programmable device(s). Thus, the need for a configuration controller in the target system is avoided. Once the configuration process is complete, the storage subsystem preferably acts as a standard storage subsystem, such as an ATA storage drive, that may be used by the target system to store data.