You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
trezor-firmware/core/embed/lib/unit_variant.c

37 lines
901 B

#include "unit_variant.h"
#include "flash_otp.h"
#include "model.h"
static uint8_t unit_variant_color = 0;
static bool unit_variant_btconly = false;
static bool unit_variant_ok = false;
static void unit_variant_0x01(const uint8_t *data) {
unit_variant_color = data[1];
unit_variant_btconly = data[2] == 1;
unit_variant_ok = true;
}
void unit_variant_init(void) {
uint8_t data[FLASH_OTP_BLOCK_SIZE];
secbool result = flash_otp_read(FLASH_OTP_BLOCK_DEVICE_VARIANT, 0, data,
FLASH_OTP_BLOCK_SIZE);
if (sectrue == result) {
switch (data[0]) {
case 0x01:
unit_variant_0x01(data);
break;
default:
break;
}
}
}
uint8_t unit_variant_get_color(void) { return unit_variant_color; }
bool unit_variant_get_btconly(void) { return unit_variant_btconly; }
bool unit_variant_present(void) { return unit_variant_ok; }