Proposed new database and versioning system for AMC13 firmware.
Version numbers
Currently we have many
AMC13FirmwareFlavors each with their own range of version numbers.
The version number must fit in a 16-bit field in a register. The range from about 0x8200-0xff00 is currently unused,
so we propose the following re-definition of the 16-bit field:
Bits |
Range |
Use |
15 |
|
Fixed '1' |
14-11 |
1-15 |
Firmware flavor, see below. 0 not used |
10 |
|
Reserved '0' |
9 |
|
Reserved '0' |
8-0 |
1-511 |
Revision |
The 15 firmware flavors are tentatively assigned as follows for the Kintex-7 (T1) FPGA.
Flavor |
Old Numbering |
Use |
0 |
|
Not used |
1 |
0x0200 |
general CMS use, 3 x 5Gb/s DAQ links (OBSOLETE) |
2 |
0x2000 |
general CMS use, 3 x 10Gb/s DAQ links |
3 |
0x4000 |
HCAL CMS use, 2 x 5Gb/s DAQ links plus local trigger (OBSOLETE) |
4 |
0x6000 |
HCAL CMS use, 2 x 10Gb/s DAQ links plus local trigger |
5 |
0x8000 |
Fermilab g-2 use, up to 3 x 10Gb/s Ethernet links |
6 |
0x1000 |
Test AMC data generator |
7 |
n/a |
T2 for XC6SLX25 |
8 |
n/a |
T2 for XC6SLX45 |
9-15 |
- |
Reserved |
The revisions will start from an arbitrary value, probably 1 and increment for each release
after transition to the new system. These release numbers will correspond to releases
of the source code in SVN.
The Spartan-6 (T2) FPGA firmware follow it's own version numbering scheme as before.
Database
A simple database will keep track of the revisions and contain the following information for
each firmware release.
Releases table
This table contains one row for each release of the firmware.
Column |
Type |
Description |
ID |
int |
Unique ID for row |
svn_tag |
Text |
SVN repository tag specifier for this revision |
rel_date |
Text |
date in yyyy-mm-dd format |
revision |
Int |
9 bit revision number |
notes |
Text |
Description of changes since last release |
Flavors table
This table contains one row for each defined firmware flavor. It is rarely updated.
Column |
Type |
Description |
ID |
int |
Unique ID for row |
flavor |
int |
Flavor 1-15 |
board |
int |
1 for T1, 2 for T2 |
oldver_lo |
int |
lower version limit for old numbering |
oldver_hi |
int |
upper version limit for old numbering |
name |
text |
Description |
Files table
This table contains one row for each file attached to a release
Column |
Type |
Description |
ID |
int |
Unique ID for row |
release_id |
int |
ID for the release this file goes with (0 if not assigned) |
version |
int16 |
16-bit encoded version number per above scheme |
flavor |
int |
flavor for the flavor of this file or 0 for non-firmware files |
notes |
text |
release or file-specific notes |
name |
text |
file name |
URL |
text |
URL to file if online |
--
EricHazen - 17 Feb 2016