From e1059151403ce37eb50d789c9405326523518fe8 Mon Sep 17 00:00:00 2001 From: Jeff Epler Date: Mon, 4 Nov 2024 18:29:46 -0600 Subject: [PATCH] mbedtls: avoid function that only exists on rp2040 rp2350 doesn't have the same RTC peripheral as the 2040 (let alone other family micros) this has the side effect of obeying a different timesource if one has been configured. --- lib/mbedtls_config/mbedtls_port.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/lib/mbedtls_config/mbedtls_port.c b/lib/mbedtls_config/mbedtls_port.c index 73929c85e81e..b7e8ceae5de0 100644 --- a/lib/mbedtls_config/mbedtls_port.c +++ b/lib/mbedtls_config/mbedtls_port.c @@ -27,15 +27,13 @@ #if CIRCUITPY_SSL_MBEDTLS +#include "py/runtime.h" #include "mbedtls_config.h" #include "mbedtls/entropy_poll.h" -#include "hardware/rtc.h" #include "shared/timeutils/timeutils.h" #include "shared-bindings/os/__init__.h" - -#include "hardware/rtc.h" -#include "shared/timeutils/timeutils.h" +#include "shared-bindings/time/__init__.h" extern uint8_t rosc_random_u8(size_t cycles); @@ -46,9 +44,10 @@ int mbedtls_hardware_poll(void *data, unsigned char *output, size_t len, size_t } time_t rp2_rtctime_seconds(time_t *timer) { - datetime_t t; - rtc_get_datetime(&t); - return timeutils_seconds_since_epoch(t.year, t.month, t.day, t.hour, t.min, t.sec); + mp_obj_t datetime = mp_load_attr(MP_STATE_VM(rtc_time_source), MP_QSTR_datetime); + timeutils_struct_time_t tm; + struct_time_to_tm(datetime, &tm); + return timeutils_seconds_since_epoch(tm.tm_year, tm.tm_mon, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec); } #endif