upstream: Add UDID support; NOTE: this changes the serial protocol version and is incompatible with previous versions -- match this commit with a dvmfirmware (commit 72c7385918d529df3f9f6b64c50913de7604fab2 or newer) update!

pull/1/head
Bryan Biedenkapp 5 years ago
parent ec7d02b28d
commit 7184a6923f

@ -1524,7 +1524,7 @@ bool HostCal::getFirmwareVersion()
sleep(100U); sleep(100U);
ret = readModem(buffer, 50U); ret = readModem(buffer, 200U);
if (ret < 0) if (ret < 0)
return false; return false;
if (ret == 0) if (ret == 0)
@ -1536,12 +1536,39 @@ bool HostCal::getFirmwareVersion()
return false; return false;
} }
int length = ret;
if (buffer[2U] != CMD_GET_VERSION) { if (buffer[2U] != CMD_GET_VERSION) {
Utils::dump("Invalid response", buffer, ret); Utils::dump("Invalid response", buffer, ret);
return false; return false;
} }
LogMessage(LOG_CAL, MODEM_VERSION_STR, buffer[1U] - 4, buffer + 4U, buffer[3U]); uint8_t protoVer = buffer[3U];
switch (protoVer) {
case PROTOCOL_VERSION:
LogInfoEx(LOG_MODEM, MODEM_VERSION_STR, length - 21U, buffer + 21U, protoVer);
switch (buffer[4U]) {
case 0U:
LogMessage(LOG_MODEM, "Atmel ARM, UDID: %02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X", buffer[5U], buffer[6U], buffer[7U], buffer[8U], buffer[9U], buffer[10U], buffer[11U], buffer[12U], buffer[13U], buffer[14U], buffer[15U], buffer[16U], buffer[17U], buffer[18U], buffer[19U], buffer[20U]);
break;
case 1U:
LogMessage(LOG_MODEM, "NXP ARM, UDID: %02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X", buffer[5U], buffer[6U], buffer[7U], buffer[8U], buffer[9U], buffer[10U], buffer[11U], buffer[12U], buffer[13U], buffer[14U], buffer[15U], buffer[16U], buffer[17U], buffer[18U], buffer[19U], buffer[20U]);
break;
case 2U:
LogMessage(LOG_MODEM, "ST-Micro ARM, UDID: %02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X", buffer[5U], buffer[6U], buffer[7U], buffer[8U], buffer[9U], buffer[10U], buffer[11U], buffer[12U], buffer[13U], buffer[14U], buffer[15U], buffer[16U]);
break;
default:
LogMessage(LOG_MODEM, "Unknown CPU type: %u", buffer[4U]);
break;
}
return true;
default:
LogError(LOG_MODEM, MODEM_UNSUPPORTED_STR, protoVer);
return false;
}
return true; return true;
} }

@ -1126,8 +1126,31 @@ bool Modem::getFirmwareVersion()
Thread::sleep(10U); Thread::sleep(10U);
RESP_TYPE_DVM resp = getResponse(); RESP_TYPE_DVM resp = getResponse();
if (resp == RTM_OK && m_buffer[2U] == CMD_GET_VERSION) { if (resp == RTM_OK && m_buffer[2U] == CMD_GET_VERSION) {
LogMessage(LOG_MODEM, MODEM_VERSION_STR, m_length - 4U, m_buffer + 4U, m_buffer[3U]); uint8_t protoVer = m_buffer[3U];
return true;
switch (protoVer) {
case PROTOCOL_VERSION:
LogInfoEx(LOG_MODEM, MODEM_VERSION_STR, m_length - 21U, m_buffer + 21U, protoVer);
switch (m_buffer[4U]) {
case 0U:
LogMessage(LOG_MODEM, "Atmel ARM, UDID: %02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X", m_buffer[5U], m_buffer[6U], m_buffer[7U], m_buffer[8U], m_buffer[9U], m_buffer[10U], m_buffer[11U], m_buffer[12U], m_buffer[13U], m_buffer[14U], m_buffer[15U], m_buffer[16U], m_buffer[17U], m_buffer[18U], m_buffer[19U], m_buffer[20U]);
break;
case 1U:
LogMessage(LOG_MODEM, "NXP ARM, UDID: %02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X", m_buffer[5U], m_buffer[6U], m_buffer[7U], m_buffer[8U], m_buffer[9U], m_buffer[10U], m_buffer[11U], m_buffer[12U], m_buffer[13U], m_buffer[14U], m_buffer[15U], m_buffer[16U], m_buffer[17U], m_buffer[18U], m_buffer[19U], m_buffer[20U]);
break;
case 2U:
LogMessage(LOG_MODEM, "ST-Micro ARM, UDID: %02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X", m_buffer[5U], m_buffer[6U], m_buffer[7U], m_buffer[8U], m_buffer[9U], m_buffer[10U], m_buffer[11U], m_buffer[12U], m_buffer[13U], m_buffer[14U], m_buffer[15U], m_buffer[16U]);
break;
default:
LogMessage(LOG_MODEM, "Unknown CPU type: %u", m_buffer[4U]);
break;
}
return true;
default:
LogError(LOG_MODEM, MODEM_UNSUPPORTED_STR, protoVer);
return false;
}
} }
} }

@ -39,8 +39,11 @@
#include <string> #include <string>
#define MODEM_VERSION_STR "%.*s, Modem protocol: %u" #define MODEM_VERSION_STR "%.*s, Modem protocol: %u"
#define MODEM_UNSUPPORTED_STR "Modem protocol: %u, unsupported! Stopping."
#define NULL_MODEM "null" #define NULL_MODEM "null"
const uint8_t PROTOCOL_VERSION = 2U;
namespace modem namespace modem
{ {
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
@ -116,8 +119,6 @@ namespace modem
CMD_ACK = 0x70U, CMD_ACK = 0x70U,
CMD_NAK = 0x7FU, CMD_NAK = 0x7FU,
CMD_SERIAL = 0x80U,
CMD_DEBUG1 = 0xF1U, CMD_DEBUG1 = 0xF1U,
CMD_DEBUG2 = 0xF2U, CMD_DEBUG2 = 0xF2U,
CMD_DEBUG3 = 0xF3U, CMD_DEBUG3 = 0xF3U,

Loading…
Cancel
Save

Powered by TurnKey Linux.