Show validation code

This commit is contained in:
Ben V. Brown
2022-06-16 23:41:52 +10:00
parent 5de5dd48a2
commit 60f9931b6e
4 changed files with 56 additions and 29 deletions

View File

@@ -77,6 +77,9 @@ bool isTipDisconnected();
// Return hardware unique ID if possible
uint64_t getDeviceID();
// If device has burned in validation code's, return the code
uint32_t getDeviceValidation();
// Status LED controls
enum StatusLED {

View File

@@ -296,5 +296,23 @@ uint64_t getDeviceID() {
// return tmp | (((uint64_t)tmp2) << 32);
uint64_t tmp = 0;
EF_Ctrl_Read_Chip_ID((uint8_t *)&tmp);
return tmp;
return __builtin_bswap64(tmp);
}
uint32_t getDeviceValidation() {
uint32_t userData = 0;
EF_Ctrl_Read_Sw_Usage(0, &userData);
// 4 byte user data burned in at factory
return userData;
}
uint8_t getDeviceValidationStatus() {
uint32_t userData = 0;
EF_Ctrl_Read_Sw_Usage(0, &userData);
userData &= 0xFFFF; // We only want the lower two bytes
userData = 0xDEAD; // TODO TESTING KEY
return 1; // Device is OK
}

View File

@@ -135,7 +135,7 @@
#define MIN_TEMP_F 60 // Min soldering temp selectable °F
#define MIN_BOOST_TEMP_C 250 // The min settable temp for boost mode °C
#define MIN_BOOST_TEMP_F 480 // The min settable temp for boost mode °F
#define DEVICE_HAS_VALIDATION_CODE // We have 2 digit validations
#define POW_PD 1
#define POW_QC 1
#define POW_DC 1

View File

@@ -758,8 +758,14 @@ void showDebugMenu(void) {
// Print device ID Numbers
{
uint64_t id = getDeviceID();
OLED::drawHex((uint32_t)(id >> 32), FontStyle::SMALL, 2);
#ifdef DEVICE_HAS_VALIDATION_CODE
// If device has validation code; then we want to take over both lines of the screen
OLED::clearScreen(); // Ensure the buffer starts clean
OLED::setCursor(0, 0); // Position the cursor at the 0,0 (top left)
OLED::print(DebugMenu[screen], FontStyle::SMALL);
OLED::drawHex(getDeviceValidation(), FontStyle::SMALL, 8);
OLED::setCursor(0, 8); // second line
#endif
OLED::drawHex((uint32_t)(id >> 32), FontStyle::SMALL, 8);
OLED::drawHex((uint32_t)(id & 0xFFFFFFFF), FontStyle::SMALL, 8);
}