From f30af1a1dc72be36cc0c2bdc1501a64cb2ed10fa Mon Sep 17 00:00:00 2001 From: Stefan Mavrodiev Date: Wed, 9 May 2018 14:49:24 +0300 Subject: [PATCH 1/3] Update A20-SOM204 fex --- config/fex/olimex-som204-a20.fex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/fex/olimex-som204-a20.fex b/config/fex/olimex-som204-a20.fex index 80df2ad5dc..5747d0197a 100644 --- a/config/fex/olimex-som204-a20.fex +++ b/config/fex/olimex-som204-a20.fex @@ -665,7 +665,7 @@ sdc_isio = 0 sdc_regulator = "none" [mmc2_para] -sdc_used = 0 +sdc_used = 1 sdc_detmode = 3 sdc_buswidth = 4 sdc_cmd = port:PC06<3><1><2> From 016e1b5f7bd2fafc7f3028b45812a410945e1487 Mon Sep 17 00:00:00 2001 From: Stefan Mavrodiev Date: Wed, 9 May 2018 14:50:13 +0300 Subject: [PATCH 2/3] Add support for eMMC v5 --- .../sun7i-default/enable_emmc5_support.patch | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 patch/kernel/sun7i-default/enable_emmc5_support.patch diff --git a/patch/kernel/sun7i-default/enable_emmc5_support.patch b/patch/kernel/sun7i-default/enable_emmc5_support.patch new file mode 100644 index 0000000000..be004c6f9c --- /dev/null +++ b/patch/kernel/sun7i-default/enable_emmc5_support.patch @@ -0,0 +1,42 @@ +diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c +index 5352cd7..4bd64db 100644 +--- a/drivers/mmc/core/mmc.c ++++ b/drivers/mmc/core/mmc.c +@@ -262,12 +262,6 @@ static int mmc_read_ext_csd(struct mmc_card *card, u8 *ext_csd) + } + + card->ext_csd.rev = ext_csd[EXT_CSD_REV]; +- if (card->ext_csd.rev > 6) { +- pr_err("%s: unrecognised EXT_CSD revision %d\n", +- mmc_hostname(card->host), card->ext_csd.rev); +- err = -EINVAL; +- goto out; +- } + + card->ext_csd.raw_sectors[0] = ext_csd[EXT_CSD_SEC_CNT + 0]; + card->ext_csd.raw_sectors[1] = ext_csd[EXT_CSD_SEC_CNT + 1]; +@@ -534,7 +528,6 @@ static int mmc_read_ext_csd(struct mmc_card *card, u8 *ext_csd) + card->ext_csd.data_tag_unit_size = 0; + } + } +- + out: + return err; + } +diff --git a/drivers/mmc/host/sunxi-mci.c b/drivers/mmc/host/sunxi-mci.c +index fec9b7f..a5251b0 100644 +--- a/drivers/mmc/host/sunxi-mci.c ++++ b/drivers/mmc/host/sunxi-mci.c +@@ -2011,10 +2011,9 @@ static struct sunxi_mmc_platform_data sw_mci_pdata[4] = { + #endif + | MMC_CAP_SDIO_IRQ + | MMC_CAP_SET_XPC_330 | MMC_CAP_DRIVER_TYPE_A, +- .caps2 = MMC_CAP2_HS200_1_8V_SDR, + .f_min = 400000, +- .f_max = 120000000, +- .f_ddr_max = 50000000, ++ .f_max = 50000000, ++ .f_ddr_max = 47000000, + .dma_tl= 0x20070008, + }, + [3] = { From 015403f835251d38b02ceb8d580998378666cb6b Mon Sep 17 00:00:00 2001 From: Stefan Mavrodiev Date: Wed, 9 May 2018 16:26:44 +0300 Subject: [PATCH 3/3] Disable eMMC HPI --- ...20-lime-emmc-kernel-default.patch.disabled | 21 ------------------- .../{board_micro-emmc => }/fix_emmc_hpi.patch | 9 -------- 2 files changed, 30 deletions(-) delete mode 100644 patch/kernel/sun7i-default/a20-lime-emmc-kernel-default.patch.disabled rename patch/kernel/sun7i-default/{board_micro-emmc => }/fix_emmc_hpi.patch (70%) diff --git a/patch/kernel/sun7i-default/a20-lime-emmc-kernel-default.patch.disabled b/patch/kernel/sun7i-default/a20-lime-emmc-kernel-default.patch.disabled deleted file mode 100644 index 99f573ea34..0000000000 --- a/patch/kernel/sun7i-default/a20-lime-emmc-kernel-default.patch.disabled +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c -index 5352cd7..2690b64 100644 ---- a/drivers/mmc/core/mmc.c -+++ b/drivers/mmc/core/mmc.c -@@ -481,6 +481,8 @@ static int mmc_read_ext_csd(struct mmc_card *card, u8 *ext_csd) - - if (card->ext_csd.rev >= 5) { - /* check whether the eMMC card supports HPI */ -+#if 0 -+// comment for emmc HPI patch - if (ext_csd[EXT_CSD_HPI_FEATURES] & 0x1) { - card->ext_csd.hpi = 1; - if (ext_csd[EXT_CSD_HPI_FEATURES] & 0x2) -@@ -495,6 +497,7 @@ static int mmc_read_ext_csd(struct mmc_card *card, u8 *ext_csd) - ext_csd[EXT_CSD_OUT_OF_INTERRUPT_TIME] * 10; - } - -+#endif - card->ext_csd.rel_param = ext_csd[EXT_CSD_WR_REL_PARAM]; - card->ext_csd.rst_n_function = ext_csd[EXT_CSD_RST_N_FUNCTION]; - } diff --git a/patch/kernel/sun7i-default/board_micro-emmc/fix_emmc_hpi.patch b/patch/kernel/sun7i-default/fix_emmc_hpi.patch similarity index 70% rename from patch/kernel/sun7i-default/board_micro-emmc/fix_emmc_hpi.patch rename to patch/kernel/sun7i-default/fix_emmc_hpi.patch index 638e086461..8ecb5cd892 100644 --- a/patch/kernel/sun7i-default/board_micro-emmc/fix_emmc_hpi.patch +++ b/patch/kernel/sun7i-default/fix_emmc_hpi.patch @@ -24,12 +24,3 @@ index 5352cd7..0004b8f 100644 card->ext_csd.rel_param = ext_csd[EXT_CSD_WR_REL_PARAM]; card->ext_csd.rst_n_function = ext_csd[EXT_CSD_RST_N_FUNCTION]; } -@@ -1026,7 +1011,7 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr, - err = 0; - if (card->ext_csd.hs_max_dtr > 52000000 && - host->caps2 & MMC_CAP2_HS200) -- err = mmc_select_hs200(card); -+ err = -EBADMSG; - else if (host->caps & MMC_CAP_MMC_HIGHSPEED) - err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, - EXT_CSD_HS_TIMING, 1,