Skip to content

Commit

Permalink
coredevice/comm: compare software and gateware versions. Closes #97
Browse files Browse the repository at this point in the history
sbourdeauducq committed Dec 11, 2015
1 parent 7548229 commit eeb53c5
Showing 2 changed files with 15 additions and 2 deletions.
8 changes: 7 additions & 1 deletion artiq/coredevice/comm_generic.py
Original file line number Diff line number Diff line change
@@ -5,6 +5,7 @@
from fractions import Fraction

from artiq.language import core as core_language
from artiq import __version__ as software_version


logger = logging.getLogger(__name__)
@@ -223,6 +224,11 @@ def check_ident(self):
if runtime_id != b"AROR":
raise UnsupportedDevice("Unsupported runtime ID: {}"
.format(runtime_id))
gateware_version = self._read_chunk(self._read_length).decode("utf-8")
if gateware_version != software_version:
logger.warning("Mismatch between gateware (%s) "
"and software (%s) versions",
gateware_version, software_version)

def switch_clock(self, external):
self._write_header(_H2DMsgType.SWITCH_CLOCK)
@@ -236,7 +242,7 @@ def get_log(self):

self._read_header()
self._read_expect(_D2HMsgType.LOG_REPLY)
return self._read_chunk(self._read_length).decode('utf-8')
return self._read_chunk(self._read_length).decode("utf-8")

def clear_log(self):
self._write_empty(_H2DMsgType.LOG_CLEAR)
9 changes: 8 additions & 1 deletion artiq/runtime/session.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#include <string.h>
#include <stdio.h>
#include <stdarg.h>
#include <id.h>

#include <generated/csr.h>

@@ -394,11 +395,17 @@ static int receive_rpc_value(const char **tag, void **slot);
static int process_input(void)
{
switch(buffer_in.header.type) {
case REMOTEMSG_TYPE_IDENT_REQUEST:
case REMOTEMSG_TYPE_IDENT_REQUEST: {
char version[IDENT_SIZE];

get_ident(version);

out_packet_start(REMOTEMSG_TYPE_IDENT_REPLY);
out_packet_chunk("AROR", 4);
out_packet_chunk(version, strlen(version));
out_packet_finish();
break;
}

case REMOTEMSG_TYPE_SWITCH_CLOCK: {
int clk = in_packet_int8();

0 comments on commit eeb53c5

Please sign in to comment.