mirror of
https://github.com/armbian/build
synced 2025-09-24 19:47:06 +07:00
fix: add some patch to repair eMMC startup issues
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Chen Jiali <ChenJiali@radxa.com>
|
||||
Date: Tue, 23 Apr 2024 16:05:42 +0800
|
||||
Subject: [PATCH 1/1] Reduce eMMC frequency to improve compatibility
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts b/arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts
|
||||
index cf0a9be83..29ace14b4 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts
|
||||
@@ -358,7 +358,7 @@ &sd_emmc_c {
|
||||
cap-mmc-highspeed;
|
||||
mmc-ddr-1_8v;
|
||||
mmc-hs200-1_8v;
|
||||
- max-frequency = <200000000>;
|
||||
+ max-frequency = <150000000>;
|
||||
disable-wp;
|
||||
|
||||
mmc-pwrseq = <&emmc_pwrseq>;
|
||||
@@ -0,0 +1,52 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: ZHANG Yuntian <95260730+RadxaYuntian@users.noreply.github.com>
|
||||
Date: Mon, 21 Aug 2023 15:28:09 +0800
|
||||
Subject: HACK: fix meson mmc core phase in the tuning process
|
||||
|
||||
This is needed to use with Samsung eMMC module.
|
||||
|
||||
Tested with Samsung, Foresee, and YMTC eMMC modules on Radxa Zero.
|
||||
|
||||
Idea taken from the following patch and comments:
|
||||
https://patchwork.ozlabs.org/project/uboot/patch/20191126211206.4537-2-linux.amoon@gmail.com/
|
||||
---
|
||||
drivers/mmc/meson_gx_mmc.c | 5 +++--
|
||||
drivers/mmc/meson_gx_mmc.h | 4 ++++
|
||||
2 files changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/mmc/meson_gx_mmc.c b/drivers/mmc/meson_gx_mmc.c
|
||||
index 111111111111..222222222222 100644
|
||||
--- a/drivers/mmc/meson_gx_mmc.c
|
||||
+++ b/drivers/mmc/meson_gx_mmc.c
|
||||
@@ -71,10 +71,11 @@ static void meson_mmc_config_clock(struct mmc *mmc)
|
||||
if (meson_gx_mmc_is_compatible(mmc->dev, MMC_COMPATIBLE_SM1))
|
||||
meson_mmc_clk |= CLK_CO_PHASE_270;
|
||||
else
|
||||
- meson_mmc_clk |= CLK_CO_PHASE_180;
|
||||
+ meson_mmc_clk |= CLK_CO_PHASE_090;
|
||||
|
||||
- /* 180 phase tx clock */
|
||||
+ /* 000 phase tx & rx clock */
|
||||
meson_mmc_clk |= CLK_TX_PHASE_000;
|
||||
+ meson_mmc_clk |= CLK_RX_PHASE_000;
|
||||
|
||||
/* clock settings */
|
||||
meson_mmc_clk |= clk_src;
|
||||
diff --git a/drivers/mmc/meson_gx_mmc.h b/drivers/mmc/meson_gx_mmc.h
|
||||
index 111111111111..222222222222 100644
|
||||
--- a/drivers/mmc/meson_gx_mmc.h
|
||||
+++ b/drivers/mmc/meson_gx_mmc.h
|
||||
@@ -33,6 +33,10 @@ enum meson_gx_mmc_compatible {
|
||||
#define CLK_TX_PHASE_090 (1 << 10)
|
||||
#define CLK_TX_PHASE_180 (2 << 10)
|
||||
#define CLK_TX_PHASE_270 (3 << 10)
|
||||
+#define CLK_RX_PHASE_000 (0 << 12)
|
||||
+#define CLK_RX_PHASE_090 (1 << 12)
|
||||
+#define CLK_RX_PHASE_180 (2 << 12)
|
||||
+#define CLK_RX_PHASE_270 (3 << 12)
|
||||
#define CLK_ALWAYS_ON BIT(24)
|
||||
|
||||
#define MESON_SD_EMMC_CFG 0x44
|
||||
--
|
||||
Armbian
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
From d2e637bf6a433d0a991800e00489ca2535cb8965 Mon Sep 17 00:00:00 2001
|
||||
From: ZHANG Yuntian <yt@radxa.com>
|
||||
Date: Thu, 27 Jul 2023 15:58:56 +0800
|
||||
Subject: configs: radxa-zero_defconfig: reset board if failed to boot
|
||||
|
||||
Signed-off-by: ZHANG Yuntian <yt@radxa.com>
|
||||
---
|
||||
configs/radxa-zero_defconfig | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/configs/radxa-zero_defconfig b/configs/radxa-zero_defconfig
|
||||
index 111111111111..222222222222 100644
|
||||
--- a/configs/radxa-zero_defconfig
|
||||
+++ b/configs/radxa-zero_defconfig
|
||||
@@ -1,5 +1,6 @@
|
||||
CONFIG_ARM=y
|
||||
CONFIG_ARCH_MESON=y
|
||||
+CONFIG_BOOTCOMMAND="bootflow scan; run distro_bootcmd; echo Boot failed. Reset in 3 seconds...; sleep 3; reset;"
|
||||
CONFIG_TEXT_BASE=0x01000000
|
||||
CONFIG_NR_DRAM_BANKS=1
|
||||
CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
|
||||
--
|
||||
Reference in New Issue
Block a user