Skip to content

Commit a4ce146

Browse files
committed
firmware compatibility list: identify current and old versions
1 parent c54ce6e commit a4ce146

File tree

5 files changed

+28
-17
lines changed

5 files changed

+28
-17
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -755,7 +755,7 @@ Dependencies
755755
-------------------
756756
### Compatibility
757757
758-
In order to use a CRU the package versions have to adhere to the following table.
758+
In order to use a CRU/CRORC the package versions have to adhere to the following table.
759759
760760
| ReadoutCard | CRU firmware | CRORC firmware | PDA Driver | PDA Library |
761761
| ----------- | --------------- | -------------- | ----------- | ------------ |
@@ -780,6 +780,7 @@ In order to use a CRU the package versions have to adhere to the following table
780780
| v0.34.0 | v3.13.0 | v2.7.0-v2.8.1 | v1.1.0+ | v12.0.0 |
781781
| v0.35.0 | v3.13.0 | v2.9.0-v2.9.1 | v1.1.0+ | v12.0.0 |
782782
| v0.36.0 | v3.13.0/v3.14.0 | v2.9.0-v2.9.1 | v1.1.0+ | v12.0.0 |
783+
| v0.41.0 | v3.13.0/v3.17.1 | v2.9.0-v2.11.0 | v1.1.0+ | v12.0.0 |
783784
784785
The _PDA Driver_ entry refers to the `pda-kadapter-dkms-*.rpm` package which is availabe through the [o2-daq-yum](http://alice-daq-yum-o2.web.cern.ch/alice-daq-yum-o2/cc7_64/) repo as an RPM.
785786

doc/releaseNotes.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,4 @@ This file describes the main feature changes for released versions of ReadoutCar
3939

4040
## next version
4141
- Fix for crorId field in configuration file.
42+
- o2-roc-list-cards is able to identify previous versions of the firmware. Their version number is displayed and they are flagged as "old", when not on the compatibility list any more.

include/ReadoutCard/FirmwareChecker.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ class FirmwareChecker
4141
void checkFirmwareCompatibilityWrapped(Parameters::CardIdType cardId);
4242
std::string getFirmwareCompatibilityList();
4343
std::unordered_map<std::string, std::string> mCompatibleFirmwareList;
44+
std::unordered_map<std::string, std::string> mOtherFirmwareList;
4445
static constexpr char kFirmwareListFile[] = "json:///etc/o2.d/readoutcard/o2-roc-fw-list.json";
4546
};
4647

src/CommandLineUtilities/ProgramListCards.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ class ProgramListCards : public Program
5656
{
5757
std::ostringstream table;
5858

59-
auto formatHeader = " %-3s %-6s %-10s %-8s %-10s %-5s %-12s %-12s\n";
60-
auto formatRow = " %-3s %-6s %-10s %-8s %-10s %-5s %-12s %-12s\n";
59+
auto formatHeader = " %-3s %-6s %-10s %-8s %-10s %-5s %-15s %-12s\n";
60+
auto formatRow = " %-3s %-6s %-10s %-8s %-10s %-5s %-15s %-12s\n";
6161
auto header = (boost::format(formatHeader) % "#" % "Type" % "PCI Addr" % "Serial" % "Endpoint" % "NUMA" % "FW Version" % "UL Version").str();
6262
auto lineFat = std::string(header.length(), '=') + '\n';
6363
auto lineThin = std::string(header.length(), '-') + '\n';

src/FirmwareChecker.cxx

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -32,28 +32,34 @@ FirmwareChecker::FirmwareChecker() : mCompatibleFirmwareList({
3232
{ "82b4662d", "MFT PSU" },
3333
{ "6838510f", "v3.17.0" },
3434
{ "8e74a7f8", "v3.17.1" },
35-
/*{ "6a85d30c", "v3.12.0" },
36-
{ "7be5aa1c", "v3.11.0" },
37-
{ "e4a5a46e", "v3.10.0" },
38-
{ "f71faa86", "v3.9.1" },
39-
{ "8e0d2ffa", "v3.9.0" },
40-
{ "e8e58cff", "v3.8.0" },
41-
{ "f8cecade", "v3.7.0" },
42-
{ "75b96268", "v3.6.1" },
43-
{ "6955404", "v3.6.0" },
44-
{ "d458317e", "v3.5.2" },
45-
{ "6baf11da", "v3.5.1" },*/
4635
/* CRORC */
4736
{ "267f8e5", "v2.9.1" },
4837
{ "cecc295", "v2.9.0" },
4938
{ "221ff280", "v2.10.0" },
5039
{ "cfa0bc9c", "2.10.1" },
5140
{ "2d4c9028", "2.11.0" },
52-
/*{ "59e9955", "v2.8.1" },
41+
})
42+
43+
// second list for older firmware
44+
, mOtherFirmwareList({
45+
/* CRU */
46+
{ "6a85d30c", "v3.12.0" },
47+
{ "7be5aa1c", "v3.11.0" },
48+
{ "e4a5a46e", "v3.10.0" },
49+
{ "f71faa86", "v3.9.1" },
50+
{ "8e0d2ffa", "v3.9.0" },
51+
{ "e8e58cff", "v3.8.0" },
52+
{ "f8cecade", "v3.7.0" },
53+
{ "75b96268", "v3.6.1" },
54+
{ "6955404", "v3.6.0" },
55+
{ "d458317e", "v3.5.2" },
56+
{ "6baf11da", "v3.5.1" },
57+
/* CRORC */
58+
{ "59e9955", "v2.8.1" },
5359
{ "f086417", "v2.8.0" },
54-
{ "474f9e1", "v2.7.0" }
60+
{ "474f9e1", "v2.7.0" },
5561
{ "8e3a98e", "v2.6.1" },
56-
{ "72cdb92", "v2.4.1" }*/
62+
{ "72cdb92", "v2.4.1" }
5763
})
5864
{
5965
std::unordered_map<std::string, std::string> parsedList;
@@ -80,6 +86,8 @@ std::string FirmwareChecker::resolveFirmwareTag(std::string firmware)
8086
//firmware = firmware.substr(firmware.find_last_of("-") + 1);
8187
if (mCompatibleFirmwareList.find(firmware) != mCompatibleFirmwareList.end()) {
8288
return mCompatibleFirmwareList.at(firmware);
89+
} else if (mOtherFirmwareList.find(firmware) != mOtherFirmwareList.end()) {
90+
return mOtherFirmwareList.at(firmware) + " (old)";
8391
} else {
8492
return firmware;
8593
}

0 commit comments

Comments
 (0)