v2.1 releases¶
Version 2.1.0¶
New minor release. Milestone: IPbus software: v2.1.0 release
Backward incompatible change
IPbus 2.0 communication now sent in native-endian by default (previously packets were sent in big-endian; ticket #417)
If using a revision of the IPbus2.0 firmware from more recent than the end of June (revisions >= 21147, or
ipbus_2_0_v1
tag), then …This will be a transparant change (i.e. no changes to end-user software are needed).
If your hardware is running a revision of the IPbus firmware core from before the end of June (revisions < 21147), then …
Please update your IPbus firmware to the tagged version (instructions here) at your earliest convenience
Along with being endian agnostic, the tagged version also contains a number of bugfixes from the last few months.
Until you have time to upgrade your firmware, you can use the new
ipbusudp-2.0-bigendian
orchtcp-2.0-bigendian
URIs (i.e. append-bigendian
to the protocol part of the URI).N.B: Since they are only needed with old firmware revisions, these
-bigendian
URIs are considered immediately deprecated, and will not be supported after 1st May 2014.
New feature
uHAL GUI: First iteration of uHAL GUI for HW development (ticket #152)
See [wiki:uhalGuiInstructions this wiki] for instructions on usage and customisation
Main improvements
uHAL & ControlHub: Substantially improved large block write/read performance (uHAL tickets: #255, #259, #418, #419 & #461; ControlHub tickets: #219, #333, #334 & #346)
E.g. In B904 CMS integration facility, for
chtcp-2.0
(i.e. IPbus firmware running on board, comminucation via ControlHub, with planned Pt5 PC layout):Single word read/write latency: ~ 290us
Write/read bandwidth for 10k 32-bit words ~ 110 Mb/s
Write (read) bandwidth for 10M 32-bit words ~ 520 (420) Mb/s
uHAL: Added more useful information to string returned by
exception::what()
method (e.g. URI for timeout/connection-related exceptions), and this information is now automatically copied to uhal log ERROR messages (tickets #124, #254)uHAL: Removed internal dependency on
binutils
library, and also removed corresponding backtrace information fromexception::what()
string (ticket #413)
Minor improvements
uHAL: Updated
PerfTester.exe
hardware validation test (i.e.-t Validation
mode) so that it is a more rigorous test of the firmware (ticket #370)uHAL: Added “parameters” xml attribute to address file, and corresponding
uhal::Node::getParameters()
method (ticket #452)uHAL: Moved
Node
address collision messages from ERROR logs into a dedicated collision report file under/tmp/uhal
(tickets #250, #290, #310)uHAL: Improved the “class” attribute derived node mechanism (tickets #445, #452)
uHAL, Python: Added native support for many integer-like operations with
ValWord_uint32
instances (ticket #265)E.g.
+
,-
,*
,/
,**
, bitwise operations, comparisons (<
,>
,==
,!=
, …) etc. Full list at comment 4 of ticket 265
uHAL, Python: Added
value()
method toValVector_uint32_t
(ticket #420)uHAL: Replaced
std::hash_map
usage withinuhal::ConnectionManager
withboost::unordered_map
(tickets #226, #244)uHAL: Removed unneccessary inheritance in
uhal::ValVector
class (ticket #257)uHAL: Added
uhal::Node::getModule()
method for future development of xml address file-->
VHDL decode logic auto-generator (ticket #368)uHAL: Added IPbus 2.0 UDP status packet script
ipbus2_udp_status.escript
to/opt/cactus/bin/etc/tests/
for debugging purposes (ticket #453)
Bugfixes
uHAL: Corrected type of exception thrown in various error scenarios, particularly timeouts & network related errors (previously just
std::exception
was thrown in several error cases; ticket #253)uHAL: Increased maximum IPbus 2.0 packet size to be same as that for IPbus 1.3 (ticket #255)
uHAL: Thread safety of
ClientInterface
/HwInterface
/Node
read/write/rmw/dispatch methodsAdded internal locking within
uhal::ClientInterface
to cope safely with multiple (end-user) threads accessing theread
/write
/rmw
/dispatch
methods of the sameClientInterface
/HwInterface
/Node
instance (ticket #297)
uHAL: Corrected accidental addition of square brackets to
uhal::Node
“description” attribute (ticket #325)uHAL: Fixed segfault in attempting 0-word block reads & writes (ticket #343)
uHAL: Stopped
ClientInterface::dispatch()
from sending an IPbus control packet header with no payload when read/write queue is empty - it now just returns immediately when the queue is empty (ticket #355)uHAL: Fixed recovery of
chtcp
communication after timeouts (previouslyValidationError
exception was incorrectly thrown 50% of the time after a timeout; ticket #436)uHAL, unit-testing: Increased size of simulated register space in
DummyHardware
unit test executables in order to avoid “writing to one register modifies values of two” behaviour (ticket #246)ControlHub: Fixed race condition in
controlhub_start
script, whereby it could occasionally exit before the ControlHub had actually started up; now it waits until the ControlHub has fully started before exiting (ticket #421)Packaging: Added OS string (i.e.
slc5
/slc6
) to RPM “package release” string (ticket #309)