Device: Add sendSPIPortKeyOperation()

This commit is contained in:
Max Brombach
2026-08-04 15:42:21 -04:00
committed by Kyle Schwarz
parent 78c2e3ff89
commit 1dda9f5412
8 changed files with 92 additions and 0 deletions
+1
View File
@@ -77,6 +77,7 @@ enum class ExtendedCommand : uint16_t {
TransmitCoreminiMessage = 0x0028,
GenericBinaryInfo = 0x0030,
LiveData = 0x0035,
ExecuteSPIPortKeyOperation = 0x003C,
RequestTC10Wake = 0x003D,
RequestTC10Sleep = 0x003E,
GetTC10Status = 0x003F,
@@ -48,6 +48,7 @@ public:
NetworkMutex = 0x8016,
ClientId = 0x8017,
AllMACAddresses = 0x8018,
SPIPortKeyOperation = 0x8019,
};
Message(Type t) : type(t) {}
@@ -0,0 +1,43 @@
#ifndef __SPIPORTKEYMESSAGE_H_
#define __SPIPORTKEYMESSAGE_H_
#ifdef __cplusplus
#include "icsneo/communication/message/message.h"
#include <array>
#include <memory>
namespace icsneo {
class SPIPortKeyMessage : public Message {
public:
enum class Operation : uint8_t {
WriteKey = 0,
IsKeySet = 1,
ClearKey = 2
};
#pragma pack(push, 2)
struct SPIPortKeyPacket
{
Operation op;
uint8_t portIndex;
bool isKeyLoaded;
uint8_t rsvd;
uint8_t key[16];
};
#pragma pack(pop)
static std::shared_ptr<SPIPortKeyMessage> DecodeToMessage(const std::vector<uint8_t>& bytestream);
SPIPortKeyMessage() : Message(Type::SPIPortKeyOperation) {}
bool isKeyLoaded;
};
} // namespace icsneo
#endif // __cplusplus
#endif // __SPIPORTKEYMESSAGE_H_
+3
View File
@@ -46,6 +46,7 @@
#include "icsneo/communication/message/extendeddatamessage.h"
#include "icsneo/communication/message/livedatamessage.h"
#include "icsneo/communication/message/tc10statusmessage.h"
#include "icsneo/communication/message/spiportkeymessage.h"
#include "icsneo/core/macseccfg.h"
#include "icsneo/communication/packet/genericbinarystatuspacket.h"
#include "icsneo/communication/packet/livedatapacket.h"
@@ -726,6 +727,8 @@ public:
std::optional<EthPhyMessage> sendEthPhyMsg(const EthPhyMessage& message, std::chrono::milliseconds timeout = std::chrono::milliseconds(50));
bool sendSPIPortKeyOperation(uint8_t portIndex, SPIPortKeyMessage::Operation op, std::array<uint8_t, 16> key = {});
/**
* Set the flags of the root directory entry specified at given address