From 712173f9680c3c708eb701e81c6388b6e6728edb Mon Sep 17 00:00:00 2001 From: Michael Keller Date: Fri, 4 Jun 2021 01:23:04 +1200 Subject: [PATCH] Merge pull request #10730 from hydra/bf-sdcard-fixes-1 --- src/main/drivers/sdio_h7xx.c | 6 ++++++ src/main/drivers/system.h | 1 + src/main/fc/init.c | 4 ++++ 3 files changed, 11 insertions(+) diff --git a/src/main/drivers/sdio_h7xx.c b/src/main/drivers/sdio_h7xx.c index 080e977ab1..7c6bca2393 100644 --- a/src/main/drivers/sdio_h7xx.c +++ b/src/main/drivers/sdio_h7xx.c @@ -168,8 +168,14 @@ void HAL_SD_MspInit(SD_HandleTypeDef* hsd) } if (sdioHardware->instance == SDMMC1) { + __HAL_RCC_SDMMC1_CLK_DISABLE(); + __HAL_RCC_SDMMC1_FORCE_RESET(); + __HAL_RCC_SDMMC1_RELEASE_RESET(); __HAL_RCC_SDMMC1_CLK_ENABLE(); } else if (sdioHardware->instance == SDMMC2) { + __HAL_RCC_SDMMC2_CLK_DISABLE(); + __HAL_RCC_SDMMC2_FORCE_RESET(); + __HAL_RCC_SDMMC2_RELEASE_RESET(); __HAL_RCC_SDMMC2_CLK_ENABLE(); } diff --git a/src/main/drivers/system.h b/src/main/drivers/system.h index f8f75df65b..9a2b8508da 100644 --- a/src/main/drivers/system.h +++ b/src/main/drivers/system.h @@ -42,6 +42,7 @@ typedef enum { FAILURE_SDCARD_READ_FAILED, FAILURE_SDCARD_WRITE_FAILED, FAILURE_SDCARD_INITIALISATION_FAILED, + FAILURE_SDCARD_REQUIRED, } failureMode_e; #define WARNING_FLASH_DURATION_MS 50 diff --git a/src/main/fc/init.c b/src/main/fc/init.c index ec2c6a84d6..b2a45984e9 100644 --- a/src/main/fc/init.c +++ b/src/main/fc/init.c @@ -378,6 +378,10 @@ void init(void) sdCardAndFSInit(); initFlags |= SD_INIT_ATTEMPTED; + if (!sdcard_isInserted()) { + failureMode(FAILURE_SDCARD_REQUIRED); + } + while (afatfs_getFilesystemState() != AFATFS_FILESYSTEM_STATE_READY) { afatfs_poll();