diff mbox series

[v2,1/2] arm: mach-snapdragon: misc: Initialize eMMC if necessary

Message ID 20210803101238.35596-1-stephan@gerhold.net
State Accepted
Commit 1eb006249e2fe84e889a89154d71a9cb0093eed8
Delegated to: Tom Rini
Headers show
Series [v2,1/2] arm: mach-snapdragon: misc: Initialize eMMC if necessary | expand

Commit Message

Stephan Gerhold Aug. 3, 2021, 10:12 a.m. UTC
At the moment U-Boot produces an empty MAC address (02:00:00:00:00:00)
if the eMMC is not used by anything in U-Boot (e.g. with
CONFIG_ENV_IS_NOWHERE=y instead of having the environment on eMMC).
This happens because then there is nothing that actually initializes
the eMMC and reads the "cid" that is later accessed.

To fix this, call mmc_init() to ensure the eMMC is initialized.
There is no functional difference if the eMMC is already initialized
since then mmc_init() will just return without doing anything.

Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
---

(no changes since v1)

 arch/arm/mach-snapdragon/misc.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Tom Rini Sept. 2, 2021, 10:41 p.m. UTC | #1
On Tue, Aug 03, 2021 at 12:12:37PM +0200, Stephan Gerhold wrote:

> At the moment U-Boot produces an empty MAC address (02:00:00:00:00:00)
> if the eMMC is not used by anything in U-Boot (e.g. with
> CONFIG_ENV_IS_NOWHERE=y instead of having the environment on eMMC).
> This happens because then there is nothing that actually initializes
> the eMMC and reads the "cid" that is later accessed.
> 
> To fix this, call mmc_init() to ensure the eMMC is initialized.
> There is no functional difference if the eMMC is already initialized
> since then mmc_init() will just return without doing anything.
> 
> Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
> Signed-off-by: Stephan Gerhold <stephan@gerhold.net>

Applied to u-boot/next, thanks!
diff mbox series

Patch

diff --git a/arch/arm/mach-snapdragon/misc.c b/arch/arm/mach-snapdragon/misc.c
index 985625a548..fbd5f4d051 100644
--- a/arch/arm/mach-snapdragon/misc.c
+++ b/arch/arm/mach-snapdragon/misc.c
@@ -33,6 +33,9 @@  u32 msm_board_serial(void)
 	if (!mmc_dev)
 		return 0;
 
+	if (mmc_init(mmc_dev))
+		return 0;
+
 	return UNSTUFF_BITS(mmc_dev->cid, 16, 32);
 }