Add soft reset / register read to controller interface
Adds the following controller interface changes, with default values having no effect:
const json readStatusRegs()
void sendSoftReset()
Also adds implementation for SPEC class which allows the following controller configuration file parameters:
-
resetOption
: integer, 0xE by default for "all except control register" -
statusRegisters
: list of dictionaries containing-
addr
: integer, register address -
base
: integer, base address (e.g. 16384 for TX_CORE in Spec). Limited to maximum of SPEC_GREG base address (0x7 << 14) to prevent reading from unallocated memory in SPEC -
name
: string, name for register in software -
value
: integer, optional, value to write to register. If specified, will write this value in order of list provided in configuration file. for e.g. registers which must be specified before being read.
-
This has been tested with both quad and SCC and works, but unit tests are difficult to write in this case since it seems to require a spec object to be instantiated. If anyone has ideas to this end I am happy to implement them.
Edited by Luc Tomas Le Pottier