public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v3 1/5] sandbox: Support 'env import' and 'env export'
@ 2013-10-26  5:01 Simon Glass
  2013-10-26  5:01 ` [U-Boot] [PATCH v3 2/5] Make 'run' use run_command_list() instead of run_command() Simon Glass
                   ` (3 more replies)
  0 siblings, 4 replies; 19+ messages in thread
From: Simon Glass @ 2013-10-26  5:01 UTC (permalink / raw)
  To: u-boot

Adjust the code for these commands so that they work on sandbox.

Signed-off-by: Simon Glass <sjg@chromium.org>
---
Changes in v3: None
Changes in v2:
- Add new patch to get 'env import/export' working on sandbox

 common/cmd_nvedit.c | 31 ++++++++++++++++++-------------
 1 file changed, 18 insertions(+), 13 deletions(-)

diff --git a/common/cmd_nvedit.c b/common/cmd_nvedit.c
index ba9ba16..718d4eb 100644
--- a/common/cmd_nvedit.c
+++ b/common/cmd_nvedit.c
@@ -33,6 +33,7 @@
 #include <watchdog.h>
 #include <linux/stddef.h>
 #include <asm/byteorder.h>
+#include <asm/io.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -848,7 +849,8 @@ static int do_env_export(cmd_tbl_t *cmdtp, int flag,
 			 int argc, char * const argv[])
 {
 	char	buf[32];
-	char	*addr, *cmd, *res;
+	ulong	addr;
+	char	*ptr, *cmd, *res;
 	size_t	size = 0;
 	ssize_t	len;
 	env_t	*envp;
@@ -893,10 +895,11 @@ NXTARG:		;
 	if (argc < 1)
 		return CMD_RET_USAGE;
 
-	addr = (char *)simple_strtoul(argv[0], NULL, 16);
+	addr = simple_strtoul(argv[0], NULL, 16);
+	ptr = map_sysmem(addr, size);
 
 	if (size)
-		memset(addr, '\0', size);
+		memset(ptr, '\0', size);
 
 	argc--;
 	argv++;
@@ -904,7 +907,7 @@ NXTARG:		;
 	if (sep) {		/* export as text file */
 		len = hexport_r(&env_htab, sep,
 				H_MATCH_KEY | H_MATCH_IDENT,
-				&addr, size, argc, argv);
+				&ptr, size, argc, argv);
 		if (len < 0) {
 			error("Cannot export environment: errno = %d\n", errno);
 			return 1;
@@ -915,12 +918,12 @@ NXTARG:		;
 		return 0;
 	}
 
-	envp = (env_t *)addr;
+	envp = (env_t *)ptr;
 
 	if (chk)		/* export as checksum protected block */
 		res = (char *)envp->data;
 	else			/* export as raw binary data */
-		res = addr;
+		res = ptr;
 
 	len = hexport_r(&env_htab, '\0',
 			H_MATCH_KEY | H_MATCH_IDENT,
@@ -962,7 +965,8 @@ sep_err:
 static int do_env_import(cmd_tbl_t *cmdtp, int flag,
 			 int argc, char * const argv[])
 {
-	char	*cmd, *addr;
+	ulong	addr;
+	char	*cmd, *ptr;
 	char	sep = '\n';
 	int	chk = 0;
 	int	fmt = 0;
@@ -1006,12 +1010,13 @@ static int do_env_import(cmd_tbl_t *cmdtp, int flag,
 	if (!fmt)
 		printf("## Warning: defaulting to text format\n");
 
-	addr = (char *)simple_strtoul(argv[0], NULL, 16);
+	addr = simple_strtoul(argv[0], NULL, 16);
+	ptr = map_sysmem(addr, 0);
 
 	if (argc == 2) {
 		size = simple_strtoul(argv[1], NULL, 16);
 	} else {
-		char *s = addr;
+		char *s = ptr;
 
 		size = 0;
 
@@ -1031,7 +1036,7 @@ static int do_env_import(cmd_tbl_t *cmdtp, int flag,
 
 	if (chk) {
 		uint32_t crc;
-		env_t *ep = (env_t *)addr;
+		env_t *ep = (env_t *)ptr;
 
 		size -= offsetof(env_t, data);
 		memcpy(&crc, &ep->crc, sizeof(crc));
@@ -1040,11 +1045,11 @@ static int do_env_import(cmd_tbl_t *cmdtp, int flag,
 			puts("## Error: bad CRC, import failed\n");
 			return 1;
 		}
-		addr = (char *)ep->data;
+		ptr = (char *)ep->data;
 	}
 
-	if (himport_r(&env_htab, addr, size, sep, del ? 0 : H_NOCLEAR,
-			0, NULL) == 0) {
+	if (himport_r(&env_htab, ptr, size, sep, del ? 0 : H_NOCLEAR, 0,
+		      NULL) == 0) {
 		error("Environment import failed: errno = %d\n", errno);
 		return 1;
 	}
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2013-10-29 19:38 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-26  5:01 [U-Boot] [PATCH v3 1/5] sandbox: Support 'env import' and 'env export' Simon Glass
2013-10-26  5:01 ` [U-Boot] [PATCH v3 2/5] Make 'run' use run_command_list() instead of run_command() Simon Glass
2013-10-26  5:01 ` [U-Boot] [PATCH v3 3/5] Allow U-Boot scripts to be placed in a .env file Simon Glass
2013-10-26 20:26   ` Wolfgang Denk
2013-10-28 20:24     ` Simon Glass
2013-10-28 21:16       ` Wolfgang Denk
2013-10-28 22:22         ` Simon Glass
2013-10-28 23:52           ` Wolfgang Denk
2013-10-28 13:34   ` Otavio Salvador
2013-10-28 20:26     ` Simon Glass
2013-10-26  5:01 ` [U-Boot] [PATCH v3 4/5] env: Allow environment files to use the C preprocessor Simon Glass
2013-10-26  5:01 ` [U-Boot] [PATCH v3 5/5] RFC: tegra: Convert to using environment files Simon Glass
2013-10-28 19:59   ` Stephen Warren
2013-10-28 20:34     ` Simon Glass
2013-10-28 20:41       ` Stephen Warren
2013-10-28 20:50         ` Simon Glass
2013-10-28 21:20           ` Stephen Warren
2013-10-28 22:15             ` Simon Glass
2013-10-29 19:38               ` Stephen Warren

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox