2014-08-07, hazen
When "T" (ttc-loop-back) is enabled, "L" (local triggers) must be also.
localTtcSignalEnable() should also call
genInternalL1asEnable()
2014-08-06, hazen
1. Use address table names or #define constants instead of hard-wired values
in the flash programming code.
2. Add support for file paths in flash programming code (need to separate the file name
from the path before parsing the file name). Check for and support "Golden" and "Header"
files.
3.
selectMcsFile should also take a directory path.
4. Provide return value for flash verify functions
2014-06-17, hazen, dzou:
Add FLASH programming. (Needs to be done before initial release)
DONE
2014-06-13, hazen, dzou:
1. I think you have left out parts of the register names in many cases.
For example, below you want I believe "CONF.EVB.ENABLE_DAQLSC".
EDIT 1: Fixed
2.
void AMC13::daqLinkEnable(bool b) {
if(b)
write(T1, "EVB.ENABLE_DAQLSC", 1);
else
write(T1, "EVB.ENABLE_DAQLSC", 0);
}
This is a small thing, but I'd suggest the more concise:
void AMC13::daqLinkEnable(bool b) {
write(T1, "EVB.ENABLE_DAQLSC", b);
}
EDIT 2: Fixed
3. Please change the
AMCInputEnable to take a bit mask instead of a list.
EDIT 3: FIXED
4. Please add an
SFPOutputEnable to enable SFPs, taking a 3-bit mask
(writes to CONF.SFP.ENABLE_MASK).
EDIT 4: FIXED
2014-06-10, dzou:
1. A number of control functions implemented with hard coded addresses (due to no equivalent register). Should add relevant registers to new address table and use named registers in control functions.
EDIT 1: Fixed
2014-06-10, hazen:
Add 64-bit versions of read and write methods. Apparently under some new C++
rules you aren't allowed to convert uint32_t* to uint64_t* without using a union or something.
(for now, maybe just add
-fno-strict-aliasing
to Makefile!)
2014-06-10, hazen:
Check for block read capability and automatically choose between
block read and single-word reads. e.g.:
if( m_T1 -> getNode(reg).getMode() == uhal::defs::INCREMENTAL))
// do block read
else
// do single reads
That is fine if a register name is used. For the address-based block reads,
it is more
FIXED(2014-06-10, dzou): Address block read do not require register to have incremental mode. Register block read now checks for mode==incremental and will do a address block read if there is no mode == incremental
2041-06-10, hazen:
Break up block reads greater than 0x400 32-bit words into multiple reads.
File a bug report to UHAL developers that reads greater than about 0x500
words causes the following exception:
terminate called after throwing an instance of 'uhal::exception::IPbusCoreResponseCodeSet'
what(): Returned Header, 0x20180706 ( transaction id = 0x00000018, transaction type = 0x00, word count = 7 ) \
had response field = 0x06 indicating an error (1025 bytes into IPbus reply payload)
Original sent header was 0x2018080F, 9 bytes into IPbus send payload
A similar ticket has been submitted
https://svnweb.cern.ch/trac/cactus/ticket/635
--
EricHazen - 10 Jun 2014