#include "smbus.h" smbus_callback_t smbus_ds2460_write; smbus_callback_t smbus_ds2460_read; // Specification #define DS2460_EEPROM_SIZE 112 #define DS2460_INPUT_BUFFER_SIZE 64 #define DS2460_MAC_LEN 20 // Registers #define DS2460_MEM_SHA 0x00 #define DS2460_MEM_MAC 0x40 #define DS2460_MEM_SSECRET 0x54 #define DS2460_MEM_CMD 0x5C #define DS2460_MEM_MATCHMAC 0x5E #define DS2460_MEM_ESECRET1 0x60 #define DS2460_MEM_ESECRET2 0x68 #define DS2460_MEM_ESECRET3 0x70 #define DS2460_MEM_EEPROM 0x80 #define DS2460_MEM_SERIAL 0xF0 #define DS2460_CMD_COMPUTE 0x80 #define DS2460_CMD_COMPUTE_GP_SHA 0x20 #define DS2460_CMD_COMPUTE_TO_MAC_BUFFER 0x04 #define DS2460_CMD_TXSECRET 0x40 // Consts #define DS2460_REQUEST_COMPUTE_MAC 0x94 // Wiring #define DS2460_GND 0 #define DS2460_VCC 1 #define DS2460_PIN_AD0 DS2460_GND #define DS2460_PIN_AD1 DS2460_VCC #define DS2460_PIN_AD2 DS2460_VCC #define DS2460_ADDRESS \ (0b10'0'0'0'0'0 | DS2460_PIN_AD0 | (DS2460_PIN_AD1 << 2) | (DS2460_PIN_AD2 << 4))