Add reading of lock bits

This commit is contained in:
BlackMark 2020-04-10 16:47:17 +02:00
parent c808c344b4
commit c5b3614733

View File

@ -104,6 +104,13 @@ static inline bool isReadFuseIsp(const Message &msg)
return false; return false;
} }
static inline bool isReadLockIsp(const Message &msg)
{
if (msg.size == 6 && msg.body[0] == CMD_READ_LOCK_ISP)
return true;
return false;
}
static inline bool isLeaveProgmodeIsp(const Message &msg) static inline bool isLeaveProgmodeIsp(const Message &msg)
{ {
if (msg.size == 3 && msg.body[0] == CMD_LEAVE_PROGMODE_ISP) if (msg.size == 3 && msg.body[0] == CMD_LEAVE_PROGMODE_ISP)
@ -210,6 +217,16 @@ static inline void formatReadFuseIspAnswer(Message &msg)
msg.checksum = calcChecksum(msg); msg.checksum = calcChecksum(msg);
} }
static inline void formatReadLockIspAnswer(Message &msg)
{
msg.size = 4;
msg.body[2] = boot_lock_fuse_bits_get(GET_LOCK_BITS);
msg.body[1] = STATUS_CMD_OK;
msg.body[3] = STATUS_CMD_OK;
msg.checksum = calcChecksum(msg);
}
static inline void formatLeaveProgmodeIspAnswer(Message &msg) static inline void formatLeaveProgmodeIspAnswer(Message &msg)
{ {
msg.size = 2; msg.size = 2;
@ -241,6 +258,8 @@ static inline void handleMessage(Message &msg)
formatReadSignatureIspAnswer(msg); formatReadSignatureIspAnswer(msg);
else if (isReadFuseIsp(msg)) else if (isReadFuseIsp(msg))
formatReadFuseIspAnswer(msg); formatReadFuseIspAnswer(msg);
else if (isReadLockIsp(msg))
formatReadLockIspAnswer(msg);
else if (isLeaveProgmodeIsp(msg)) else if (isLeaveProgmodeIsp(msg))
formatLeaveProgmodeIspAnswer(msg); formatLeaveProgmodeIspAnswer(msg);
else else