There are two sets of firmware on the board: FPGA and XMOS processor.
The FPGA is the "brains" of the whole thing. It is the S/PDIF decoder, buffer controller, output format generator, adjustable oscillator interface, display controller and several others I can't think of at the moment. The firmware for the FPGA is stored in a special flash memory that is soldered to the board. In order to reprogram this flash memory there is a socket into which you can insert a cheap "eeprom". There is a switch on the board that takes the data from this eeprom and programs the FPGA flash. This chip in the socket is only needed when new firmware is being installed. From the factory there will be no chip in the socket. When new firmware is needed the Bottlehead gang will ship you a little chip, you put it in the socket and flip the switch. When it is done you can take out the chip.
Since there is a USB port I could have done firmware upgrades via USB, but there is a big proglem, you need a driver on the computer, which means I have to maintain drivers on every OS Bpttlehead users use, I REALLY did not want to do that! And every time Apple or Microsoft came up with a new version I would probably have to re-write the driver, not on my list of things I want to do forever. So yI decided on ship out something and plug it in, no software needed!
The XMOS processor also has firmware, but it is just for the USB interface, much lower probability of needing updating. As it is this is updated via USB, which unfortunately has the same problem of requiring a driver. It can theoretically be updated over the AUX port, so I might set things up so that any board that we send out that plugs into the aux port automatically updates the firmware for the processor on the main board.
John S.