|
|
@@ -867,6 +867,21 @@ static int mmc_startup(SdmmcDev *dev)
|
|
|
} else {
|
|
|
// support high speed
|
|
|
freq = 52000000;
|
|
|
+
|
|
|
+ //EMMC RST_n signal config permanently enable
|
|
|
+ if (dev->CardType == MMC) {
|
|
|
+ u8 rst_n_function = data.dest[EXT_CSD_RST_N_FUNCTION] & 0x3;
|
|
|
+ if (rst_n_function == EXT_CSD_RST_N_TEMPORARILY_DISABLED) {
|
|
|
+ err = mmc_switch(dev, EXT_CSD_CMD_SET_NORMAL, EXT_CSD_RST_N_FUNCTION,
|
|
|
+ EXT_CSD_RST_N_PERMANENTLY_ENABLED);
|
|
|
+ if (err) {
|
|
|
+ printf("Enable EMMC RST_n H/W Reset fail\n");
|
|
|
+ return err;
|
|
|
+ }
|
|
|
+ } else if (rst_n_function != EXT_CSD_RST_N_PERMANENTLY_ENABLED) {
|
|
|
+ printf("EXT_CSD_RST_N_FUNCTION = 0x%x, IO reset invalid\n", rst_n_function);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
vPortFree(data.dest);
|
|
|
#else
|