Skip to contentSkip to conversation

Save environment data to mmc.

PATCH Superseded Terry Lv 3 participants 5 messages May 5, 2010 – Jun 24, 2010

Subsystems (2)

v4 of 6 Superseded Latest is v6 →

lore
Share & tools
lore

Terry Lv

author
#0 lore raw

PATCH v4 1/1 Save environment data to mmc.

This patch is to save environment data to mmc card. It uses interfaces defined in generic mmc.

---
 arch/arm/lib/board.c     |   14 +++--
 arch/powerpc/lib/board.c |   16 +++--
 common/Makefile          |    1 +
 common/cmd_nvedit.c      |    3 +-
 common/env_mmc.c         |  154 ++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 176 insertions(+), 12 deletions(-)
 create mode 100644 common/env_mmc.c
arch/arm/lib/board.c +9 -5
index f5660a9..b7174ea 100644
@@ -347,6 +347,15 @@ void start_armboot (void)
 	dataflash_print_info();
 #endif
 
+#ifdef CONFIG_GENERIC_MMC
+/* MMC initialization is called before relocating env.
+   Thus It is required that operations like pin multiplexer 
+   be put in board_init.
+*/
+	puts ("MMC:   ");
+	mmc_initialize (gd->bd);
+#endif
+
 	/* initialize environment */
 	env_relocate ();
 
@@ -419,11 +428,6 @@ extern void davinci_eth_set_mac_addr (const u_int8_t *addr);
 	board_late_init ();
 #endif
 
-#ifdef CONFIG_GENERIC_MMC
-	puts ("MMC:   ");
-	mmc_initialize (gd->bd);
-#endif
-
 #ifdef CONFIG_BITBANGMII
 	bb_miiphy_init();
 #endif
arch/powerpc/lib/board.c +10 -6
index 7b09fb5..6e51442 100644
@@ -783,6 +783,16 @@ void board_init_r (gd_t *id, ulong dest_addr)
 	nand_init();		/* go init the NAND */
 #endif
 
+#ifdef CONFIG_GENERIC_MMC
+/* MMC initialization is called before relocating env.
+   Thus It is required that operations like pin multiplexer 
+   be put in board_init.
+*/
+	WATCHDOG_RESET ();
+	puts ("MMC:  ");
+	mmc_initialize (bd);
+#endif
+
 	/* relocate environment function pointers etc. */
 	env_relocate ();
 
@@ -939,12 +949,6 @@ void board_init_r (gd_t *id, ulong dest_addr)
 	scsi_init ();
 #endif
 
-#ifdef CONFIG_GENERIC_MMC
-	WATCHDOG_RESET ();
-	puts ("MMC:  ");
-	mmc_initialize (bd);
-#endif
-
 #if defined(CONFIG_CMD_DOC)
 	WATCHDOG_RESET ();
 	puts ("DOC:   ");
common/Makefile +1 -0
index dbf7a05..2c37073 100644
@@ -58,6 +58,7 @@ COBJS-$(CONFIG_ENV_IS_IN_FLASH) += env_embedded.o
 COBJS-$(CONFIG_ENV_IS_IN_NVRAM) += env_embedded.o
 COBJS-$(CONFIG_ENV_IS_IN_FLASH) += env_flash.o
 COBJS-$(CONFIG_ENV_IS_IN_MG_DISK) += env_mgdisk.o
+COBJS-$(CONFIG_ENV_IS_IN_MMC) += env_mmc.o
 COBJS-$(CONFIG_ENV_IS_IN_NAND) += env_nand.o
 COBJS-$(CONFIG_ENV_IS_IN_NVRAM) += env_nvram.o
 COBJS-$(CONFIG_ENV_IS_IN_ONENAND) += env_onenand.o
common/cmd_nvedit.c +2 -1
index eb89e9e..57dc288 100644
@@ -59,13 +59,14 @@ DECLARE_GLOBAL_DATA_PTR;
     !defined(CONFIG_ENV_IS_IN_FLASH)	&& \
     !defined(CONFIG_ENV_IS_IN_DATAFLASH)	&& \
     !defined(CONFIG_ENV_IS_IN_MG_DISK)	&& \
+    !defined(CONFIG_ENV_IS_IN_MMC)  && \
     !defined(CONFIG_ENV_IS_IN_NAND)	&& \
     !defined(CONFIG_ENV_IS_IN_NVRAM)	&& \
     !defined(CONFIG_ENV_IS_IN_ONENAND)	&& \
     !defined(CONFIG_ENV_IS_IN_SPI_FLASH)	&& \
     !defined(CONFIG_ENV_IS_NOWHERE)
 # error Define one of CONFIG_ENV_IS_IN_{EEPROM|FLASH|DATAFLASH|ONENAND|\
-SPI_FLASH|MG_DISK|NVRAM|NOWHERE}
+SPI_FLASH|MG_DISK|NVRAM|MMC|NOWHERE}
 #endif
 
 #define XMK_STR(x)	#x
common/env_mmc.c new file +154 -0

154 lines not on this page · raw message

Signature · 1 line
1.6.0.4
#1 lore raw

PATCH v4 1/1 Save environment data to mmc.

Dear Terry Lv,

Quoted 18 lines · In message <[email protected]> you wrote:

This patch is to save environment data to mmc card. It uses interfaces defined in generic mmc.

---
 arch/arm/lib/board.c     |   14 +++--
 arch/powerpc/lib/board.c |   16 +++--
 common/Makefile          |    1 +
 common/cmd_nvedit.c      |    3 +-
 common/env_mmc.c         |  154 ++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 176 insertions(+), 12 deletions(-)
 create mode 100644 common/env_mmc.c
arch/arm/lib/board.c +0 -0
index f5660a9..b7174ea 100644

arch/arm/lib/board.c void start_armboot (void) · line 354

Quoted 8 lines
arch/arm/lib/board.c +5 -0
@@ -347,6 +347,15 @@ void start_armboot (void)
 	dataflash_print_info();
 #endif
 
+#ifdef CONFIG_GENERIC_MMC
+/* MMC initialization is called before relocating env.
+   Thus It is required that operations like pin multiplexer 
+   be put in board_init.
+*/

Incorrect multiline comment style. Please fix globally.

common/env_mmc.c

Quoted 5 lines
common/env_mmc.c new file +0 -0
new file mode 100644
index 0000000..c9a9415

Hm... I see a tendency to add more and more such files that all deal with one sort of a block oriented storage device or another. Should we not try to generalize this?

Best regards,

Wolfgang Denk

Signature · 4 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
My play was a complete success.  The audience was a failure.
#2 lore raw

PATCH v4 1/1 Save environment data to mmc.

Hi Wolfgang Denk,

Though a block offset macros is more suitable for a block device, block size can be changed. Thus I think a size offset is better to describe the offset.

What do you think?

Thanks~~

Yours
Terry

-----Original Message-----
From: Wolfgang Denk [mailto:wd at denx.de]
Sent: 2010?5?7? 6:22
To: Lv Terry-R65388
Cc: u-boot at lists.denx.de
Subject: Re: [U-Boot] [PATCH] [PATCH V4]Save environment data to mmc.

Dear Terry Lv,

Quoted 18 lines · In message <[email protected]> you wrote:

This patch is to save environment data to mmc card. It uses interfaces defined in generic mmc.

---
 arch/arm/lib/board.c     |   14 +++--
 arch/powerpc/lib/board.c |   16 +++--
 common/Makefile          |    1 +
 common/cmd_nvedit.c      |    3 +-
 common/env_mmc.c         |  154 ++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 176 insertions(+), 12 deletions(-)  create mode 

100644 common/env_mmc.c

arch/arm/lib/board.c index renamed from arch/arm/lib/board.c +0 -0

f5660a9..b7174ea 100644

arch/arm/lib/board.c void start_armboot (void) · line 354

Quoted 8 lines
arch/arm/lib/board.c +5 -0
@@ -347,6 +347,15 @@ void start_armboot (void)
 	dataflash_print_info();
 #endif
 
+#ifdef CONFIG_GENERIC_MMC
+/* MMC initialization is called before relocating env.
+   Thus It is required that operations like pin multiplexer 
+   be put in board_init.
+*/

Incorrect multiline comment style. Please fix globally.

common/env_mmc.c

Quoted 4 lines
common/env_mmc.c new file +0 -0
index 0000000..c9a9415

Hm... I see a tendency to add more and more such files that all deal with one sort of a block oriented storage device or another. Should we not try to generalize this?

Best regards,

Wolfgang Denk

Signature · 4 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
My play was a complete success.  The audience was a failure.
#3 lore raw

PATCH v4 1/1 Save environment data to mmc.

Dear "Lv Terry-R65388",

Please stop top posting / full quoting.

This style of replying to messages ios a major PITA to deal with :-(

Quoted 6 lines · In message <1AE74F652ECB1440B73DD7C2C20842D1B3A663@zch01exm27.fsl.freescale.net…

Though a block offset macros is more suitable for a block device, block size can be changed.
Thus I think a size offset is better to describe the offset.

What do you think?

Quoted 3 lines · I think you either did not read or understand what I

Hm... I see a tendency to add more and more such files that all deal with one sort of a block oriented storage device or another. Should we not try to generalize this?

I was talking about a more generic support layer for block oriented storage devices. In Unix, this is typically called a "block device", but we probably don't have to go that far.

What are all these env_*.c files doing? Reading or writing one or several blocks of data from a storage device and handing it over to the environment code.

Maybe we can use a single generic file where each used driver registers it's block read / block write functions?

Best regards,

Wolfgang Denk

Signature · 6 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
In the strict scientific sense we all feed on death -- even
vegetarians.
	-- Spock, "Wolf in the Fold", stardate 3615.4
#4 lore raw

PATCH v4 1/1 Save environment data to mmc.

In reply to Wolfgang Denk
Quoted 5 lines · Wolfgang Denk

Dear Terry Lv,

Quoted 2 lines · In message <[email protected]> you wrote:

This patch is to save environment data to mmc card. It uses interfaces defined in generic mmc.

<snip>

Quoted 9 lines

common/env_mmc.c

Quoted 5 lines
common/env_mmc.c new file +0 -0
new file mode 100644
index 0000000..c9a9415

Hm... I see a tendency to add more and more such files that all deal with one sort of a block oriented storage device or another. ?Should we not try to generalize this?

Has there been any further work on this patch (taking into account Wolfgang's comments)?

I'll need to do something similar for saving the OMAP4430 SDP environment to emmc, so I can help out with testing on another platform.

Steve