2014-08--6, hazen

Use address table names or #define constants instead of hard-wired values in the flash programming code.

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.

selectMcsFile should also take a directory path.

Provide return value for flash verify functions

2014-06-17, hazen, dzou:

Add FLASH programming. (Needs to be done before initial release)

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

Edit | Attach | Watch | Print version | History: r34 | r9 < r8 < r7 < r6 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r7 - 06 Aug 2014 - EricHazen
 
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback