Add set_atr for a rescue ATR.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
This commit is contained in:
Pol Henarejos
2026-04-16 19:49:56 +02:00
parent 194b48773a
commit 32bbdc4684
3 changed files with 20 additions and 5 deletions

View File

@@ -256,4 +256,6 @@ extern bool has_set_rtc(void);
extern time_t get_rtc_time(void);
extern void set_rtc_time(time_t tv_sec);
extern int set_atr(void);
#endif

View File

@@ -39,15 +39,15 @@ const uint8_t rescue_aid[] = {
};
#ifdef PICO_RP2350
#define PICO_MCU 1
const uint8_t PICO_MCU = 1;
#elif defined(CONFIG_IDF_TARGET_ESP32S3)
#define PICO_MCU 2
const uint8_t PICO_MCU = 2;
#elif defined(ENABLE_EMULATION)
#define PICO_MCU 3
const uint8_t PICO_MCU = 3;
#elif defined(CONFIG_IDF_TARGET_ESP32S2)
#define PICO_MCU 4
const uint8_t PICO_MCU = 4;
#else
#define PICO_MCU 0
const uint8_t PICO_MCU = 0;
#endif
#define EF_DEVCERT_KEY 0xE0C1
@@ -73,6 +73,18 @@ static int rescue_select(app_t *a, uint8_t force) {
return PICOKEY_OK;
}
const uint8_t atr_rescue[] = {
24,
0x3B, 0xFE, 0x18, 0x00, 0x00, 0x81, 0x31, 0xFE, 0x45, 0x80, 0x31, 0x81, 0x54, 0x48, 0x53, 0x4D,
0x31, 0x73, 0x80, 0x21, 0x40, 0x81, 0x07, 0xFA
};
extern const uint8_t *ccid_atr;
__attribute__((weak)) int set_atr(void) {
ccid_atr = atr_rescue;
return 0;
}
INITIALIZER ( rescue_ctor ) {
register_app(rescue_select, rescue_aid);
}

View File

@@ -178,6 +178,7 @@ void usb_init(void)
#ifdef ESP_PLATFORM
usb_desc_setup();
#endif
set_atr();
}
#ifdef PICO_PLATFORM