All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v4 0/9] Allow sandbox to use config_distro_bootcmd
@ 2015-04-13 20:54 Sjoerd Simons
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 1/9] sandbox: only do sandboxfs for hostfs interface Sjoerd Simons
                   ` (8 more replies)
  0 siblings, 9 replies; 26+ messages in thread
From: Sjoerd Simons @ 2015-04-13 20:54 UTC (permalink / raw)
  To: u-boot

Testing whether images will correctly boot with the standard distro
bootcmds can be rather time-consuming as it tends to require flashing
the images and booting on a device. Ditto for testing changes to
config_distro_bootcmd.

Adding support for sandbox to run distro bootcmds makes things a lot
more convenient.


Version 4 is mostly a rebase on u-boot-dm/next as requested by Simon. As this
branch now has networking support one extra patch had to be added to setup
default PXE client architectures for intel.

Changes in v4:
- New patch to setup PXE client arch on intel systems
- Adapt to sandbox networking support

Changes in v3:
- Fill in *start and *end with proper values
- Improve deprecated sb command short line
- Don't document subcommands for sb anymore

Changes in v2:
- Minor comment coding style improvement
- Move into sandbox/lib/bootm.c
- convert to u-boot coding style
- Remove unneeded cast
- Prevent uncessary casts
- Always unmap mapped sysmem
- Consistently use base variable to refer to unmapped memory
- Various coding style fixes

Sjoerd Simons (9):
  sandbox: only do sandboxfs for hostfs interface
  sandbox: Split bootm code out into lib/bootm
  sandbox: Add support for bootz
  sandbox: Renamed sb command to host
  sandbox: Implement host dev [device]
  config_distro_bootcmd.h: Add shared block definition for the host
    interface
  pxe: Ensure all memory access is to mapped memory
  config: Add default client arch defines for intel architectures
  sandbox: add config_distro_defaults and config_distro_bootcmd

 arch/sandbox/cpu/cpu.c           |  12 ---
 arch/sandbox/lib/Makefile        |   1 +
 arch/sandbox/lib/bootm.c         |  63 ++++++++++++++
 common/Makefile                  |   2 +-
 common/cmd_host.c                | 176 +++++++++++++++++++++++++++++++++++++++
 common/cmd_pxe.c                 |  86 ++++++++++++-------
 common/cmd_sandbox.c             | 126 ----------------------------
 fs/sandbox/sandboxfs.c           |   6 +-
 include/config_distro_bootcmd.h  |  13 +++
 include/config_distro_defaults.h |   4 +
 include/configs/sandbox.h        |  31 +++++--
 11 files changed, 342 insertions(+), 178 deletions(-)
 create mode 100644 arch/sandbox/lib/bootm.c
 create mode 100644 common/cmd_host.c
 delete mode 100644 common/cmd_sandbox.c

-- 
2.1.4

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

* [U-Boot] [PATCH v4 1/9] sandbox: only do sandboxfs for hostfs interface
  2015-04-13 20:54 [U-Boot] [PATCH v4 0/9] Allow sandbox to use config_distro_bootcmd Sjoerd Simons
@ 2015-04-13 20:54 ` Sjoerd Simons
  2015-04-19 13:29   ` Simon Glass
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 2/9] sandbox: Split bootm code out into lib/bootm Sjoerd Simons
                   ` (7 subsequent siblings)
  8 siblings, 1 reply; 26+ messages in thread
From: Sjoerd Simons @ 2015-04-13 20:54 UTC (permalink / raw)
  To: u-boot

Only do sandbox filesystem access when using the hostfs device
interface, rather then falling back to it in all cases. This prevents
confusion situations due to the fallback being taken rather then an
unsupported error being raised.

Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Simon Glass <sjg@chromium.org>

---

Changes in v4: None
Changes in v3: None
Changes in v2:
- Minor comment coding style improvement

 fs/sandbox/sandboxfs.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/fs/sandbox/sandboxfs.c b/fs/sandbox/sandboxfs.c
index a920bc0..5acfc03 100644
--- a/fs/sandbox/sandboxfs.c
+++ b/fs/sandbox/sandboxfs.c
@@ -10,7 +10,11 @@
 
 int sandbox_fs_set_blk_dev(block_dev_desc_t *rbdd, disk_partition_t *info)
 {
-	return 0;
+	/*
+	 * Only accept a NULL block_dev_desc_t for the sandbox, which is when
+	 * hostfs interface is used
+	 */
+	return rbdd != NULL;
 }
 
 int sandbox_fs_read_at(const char *filename, loff_t pos, void *buffer,
-- 
2.1.4

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

* [U-Boot] [PATCH v4 2/9] sandbox: Split bootm code out into lib/bootm
  2015-04-13 20:54 [U-Boot] [PATCH v4 0/9] Allow sandbox to use config_distro_bootcmd Sjoerd Simons
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 1/9] sandbox: only do sandboxfs for hostfs interface Sjoerd Simons
@ 2015-04-13 20:54 ` Sjoerd Simons
  2015-04-19 13:30   ` Simon Glass
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 3/9] sandbox: Add support for bootz Sjoerd Simons
                   ` (6 subsequent siblings)
  8 siblings, 1 reply; 26+ messages in thread
From: Sjoerd Simons @ 2015-04-13 20:54 UTC (permalink / raw)
  To: u-boot

Follow the convention of other architectures and move the platform
specific linux bootm code into sandbox/lib/bootm.c.

Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Acked-by: Simon Glass <sjg@chromium.org>
---

Changes in v4: None
Changes in v3: None
Changes in v2: None

 arch/sandbox/cpu/cpu.c    | 12 ------------
 arch/sandbox/lib/Makefile |  1 +
 arch/sandbox/lib/bootm.c  | 21 +++++++++++++++++++++
 3 files changed, 22 insertions(+), 12 deletions(-)
 create mode 100644 arch/sandbox/lib/bootm.c

diff --git a/arch/sandbox/cpu/cpu.c b/arch/sandbox/cpu/cpu.c
index 007ae86..f0dafed 100644
--- a/arch/sandbox/cpu/cpu.c
+++ b/arch/sandbox/cpu/cpu.c
@@ -49,18 +49,6 @@ unsigned long __attribute__((no_instrument_function)) timer_get_us(void)
 	return os_get_nsec() / 1000;
 }
 
-int do_bootm_linux(int flag, int argc, char *argv[], bootm_headers_t *images)
-{
-	if (flag & (BOOTM_STATE_OS_GO | BOOTM_STATE_OS_FAKE_GO)) {
-		bootstage_mark(BOOTSTAGE_ID_RUN_OS);
-		printf("## Transferring control to Linux (at address %08lx)...\n",
-		       images->ep);
-		reset_cpu(0);
-	}
-
-	return 0;
-}
-
 int cleanup_before_linux(void)
 {
 	return 0;
diff --git a/arch/sandbox/lib/Makefile b/arch/sandbox/lib/Makefile
index 75b135c..96761e2 100644
--- a/arch/sandbox/lib/Makefile
+++ b/arch/sandbox/lib/Makefile
@@ -9,3 +9,4 @@
 
 obj-y	+= interrupts.o
 obj-$(CONFIG_PCI)	+= pci_io.o
+obj-$(CONFIG_CMD_BOOTM) += bootm.o
diff --git a/arch/sandbox/lib/bootm.c b/arch/sandbox/lib/bootm.c
new file mode 100644
index 0000000..8ddf4ef
--- /dev/null
+++ b/arch/sandbox/lib/bootm.c
@@ -0,0 +1,21 @@
+/*
+ * Copyright (c) 2011 The Chromium OS Authors.
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#include <common.h>
+#include <asm/io.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+int do_bootm_linux(int flag, int argc, char *argv[], bootm_headers_t *images)
+{
+	if (flag & (BOOTM_STATE_OS_GO | BOOTM_STATE_OS_FAKE_GO)) {
+		bootstage_mark(BOOTSTAGE_ID_RUN_OS);
+		printf("## Transferring control to Linux (at address %08lx)...\n",
+		       images->ep);
+		reset_cpu(0);
+	}
+
+	return 0;
+}
-- 
2.1.4

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

* [U-Boot] [PATCH v4 3/9] sandbox: Add support for bootz
  2015-04-13 20:54 [U-Boot] [PATCH v4 0/9] Allow sandbox to use config_distro_bootcmd Sjoerd Simons
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 1/9] sandbox: only do sandboxfs for hostfs interface Sjoerd Simons
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 2/9] sandbox: Split bootm code out into lib/bootm Sjoerd Simons
@ 2015-04-13 20:54 ` Sjoerd Simons
  2015-04-19 13:30   ` Simon Glass
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 4/9] sandbox: Renamed sb command to host Sjoerd Simons
                   ` (5 subsequent siblings)
  8 siblings, 1 reply; 26+ messages in thread
From: Sjoerd Simons @ 2015-04-13 20:54 UTC (permalink / raw)
  To: u-boot

Add dummy bootz_setup implementation allowing the u-boot sandbox to
run bootz. This recognizes both ARM and x86 zImages to validate a
valid zImage was loaded.

Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Acked-by: Simon Glass <sjg@chromium.org>

---

Changes in v4: None
Changes in v3:
- Fill in *start and *end with proper values

Changes in v2:
- Move into sandbox/lib/bootm.c
- convert to u-boot coding style
- Remove unneeded cast

 arch/sandbox/lib/bootm.c | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/arch/sandbox/lib/bootm.c b/arch/sandbox/lib/bootm.c
index 8ddf4ef..d49c927 100644
--- a/arch/sandbox/lib/bootm.c
+++ b/arch/sandbox/lib/bootm.c
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2011 The Chromium OS Authors.
+ * Copyright (c) 2015 Sjoerd Simons <sjoerd.simons@collabora.co.uk>
  * SPDX-License-Identifier:	GPL-2.0+
  */
 
@@ -8,6 +9,47 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
+#define	LINUX_ARM_ZIMAGE_MAGIC	0x016f2818
+
+struct arm_z_header {
+	uint32_t	code[9];
+	uint32_t	zi_magic;
+	uint32_t	zi_start;
+	uint32_t	zi_end;
+} __attribute__ ((__packed__));
+
+int bootz_setup(ulong image, ulong *start, ulong *end)
+{
+	uint8_t *zimage = map_sysmem(image, 0);
+	struct arm_z_header *arm_hdr = (struct arm_z_header *)zimage;
+	int ret = 0;
+
+	if (memcmp(zimage + 0x202, "HdrS", 4) == 0) {
+		uint8_t setup_sects = *(zimage + 0x1f1);
+		uint32_t syssize =
+			le32_to_cpu(*(uint32_t *)(zimage + 0x1f4));
+
+		*start = 0;
+		*end = (setup_sects + 1) * 512 + syssize * 16;
+
+		printf("setting up X86 zImage [ %ld - %ld ]\n",
+		       *start, *end);
+	} else if (le32_to_cpu(arm_hdr->zi_magic) == LINUX_ARM_ZIMAGE_MAGIC) {
+		*start = le32_to_cpu(arm_hdr->zi_start);
+		*end = le32_to_cpu(arm_hdr->zi_end);
+
+		printf("setting up ARM zImage [ %ld - %ld ]\n",
+		       *start, *end);
+	} else {
+		printf("Unrecognized zImage\n");
+		ret = 1;
+	}
+
+	unmap_sysmem((void *)image);
+
+	return ret;
+}
+
 int do_bootm_linux(int flag, int argc, char *argv[], bootm_headers_t *images)
 {
 	if (flag & (BOOTM_STATE_OS_GO | BOOTM_STATE_OS_FAKE_GO)) {
-- 
2.1.4

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

* [U-Boot] [PATCH v4 4/9] sandbox: Renamed sb command to host
  2015-04-13 20:54 [U-Boot] [PATCH v4 0/9] Allow sandbox to use config_distro_bootcmd Sjoerd Simons
                   ` (2 preceding siblings ...)
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 3/9] sandbox: Add support for bootz Sjoerd Simons
@ 2015-04-13 20:54 ` Sjoerd Simons
  2015-04-19 13:30   ` Simon Glass
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 5/9] sandbox: Implement host dev [device] Sjoerd Simons
                   ` (4 subsequent siblings)
  8 siblings, 1 reply; 26+ messages in thread
From: Sjoerd Simons @ 2015-04-13 20:54 UTC (permalink / raw)
  To: u-boot

As suggested by Simon Glass, rename the sb command to host but keep the
old sb command as an alias

Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Acked-by: Simon Glass <sjg@chromium.org>

---

Changes in v4: None
Changes in v3:
- Improve deprecated sb command short line
- Don't document subcommands for sb anymore

Changes in v2: None

 common/Makefile                      |  2 +-
 common/{cmd_sandbox.c => cmd_host.c} | 50 ++++++++++++++++++++----------------
 2 files changed, 29 insertions(+), 23 deletions(-)
 rename common/{cmd_sandbox.c => cmd_host.c} (62%)

diff --git a/common/Makefile b/common/Makefile
index 252fbf1..978c33b 100644
--- a/common/Makefile
+++ b/common/Makefile
@@ -152,7 +152,7 @@ obj-$(CONFIG_CMD_PXE) += cmd_pxe.o
 obj-$(CONFIG_CMD_READ) += cmd_read.o
 obj-$(CONFIG_CMD_REGINFO) += cmd_reginfo.o
 obj-$(CONFIG_CMD_REISER) += cmd_reiser.o
-obj-$(CONFIG_SANDBOX) += cmd_sandbox.o
+obj-$(CONFIG_SANDBOX) += cmd_host.o
 obj-$(CONFIG_CMD_SATA) += cmd_sata.o
 obj-$(CONFIG_CMD_SF) += cmd_sf.o
 obj-$(CONFIG_CMD_SCSI) += cmd_scsi.o
diff --git a/common/cmd_sandbox.c b/common/cmd_host.c
similarity index 62%
rename from common/cmd_sandbox.c
rename to common/cmd_host.c
index 4286969..323a795 100644
--- a/common/cmd_sandbox.c
+++ b/common/cmd_host.c
@@ -10,25 +10,25 @@
 #include <sandboxblockdev.h>
 #include <asm/errno.h>
 
-static int do_sandbox_load(cmd_tbl_t *cmdtp, int flag, int argc,
+static int do_host_load(cmd_tbl_t *cmdtp, int flag, int argc,
 			   char * const argv[])
 {
 	return do_load(cmdtp, flag, argc, argv, FS_TYPE_SANDBOX);
 }
 
-static int do_sandbox_ls(cmd_tbl_t *cmdtp, int flag, int argc,
+static int do_host_ls(cmd_tbl_t *cmdtp, int flag, int argc,
 			   char * const argv[])
 {
 	return do_ls(cmdtp, flag, argc, argv, FS_TYPE_SANDBOX);
 }
 
-static int do_sandbox_save(cmd_tbl_t *cmdtp, int flag, int argc,
+static int do_host_save(cmd_tbl_t *cmdtp, int flag, int argc,
 			   char * const argv[])
 {
 	return do_save(cmdtp, flag, argc, argv, FS_TYPE_SANDBOX);
 }
 
-static int do_sandbox_bind(cmd_tbl_t *cmdtp, int flag, int argc,
+static int do_host_bind(cmd_tbl_t *cmdtp, int flag, int argc,
 			   char * const argv[])
 {
 	if (argc < 2 || argc > 3)
@@ -44,7 +44,7 @@ static int do_sandbox_bind(cmd_tbl_t *cmdtp, int flag, int argc,
 	return host_dev_bind(dev, file);
 }
 
-static int do_sandbox_info(cmd_tbl_t *cmdtp, int flag, int argc,
+static int do_host_info(cmd_tbl_t *cmdtp, int flag, int argc,
 			   char * const argv[])
 {
 	if (argc < 1 || argc > 2)
@@ -85,25 +85,25 @@ static int do_sandbox_info(cmd_tbl_t *cmdtp, int flag, int argc,
 	return 0;
 }
 
-static cmd_tbl_t cmd_sandbox_sub[] = {
-	U_BOOT_CMD_MKENT(load, 7, 0, do_sandbox_load, "", ""),
-	U_BOOT_CMD_MKENT(ls, 3, 0, do_sandbox_ls, "", ""),
-	U_BOOT_CMD_MKENT(save, 6, 0, do_sandbox_save, "", ""),
-	U_BOOT_CMD_MKENT(bind, 3, 0, do_sandbox_bind, "", ""),
-	U_BOOT_CMD_MKENT(info, 3, 0, do_sandbox_info, "", ""),
+static cmd_tbl_t cmd_host_sub[] = {
+	U_BOOT_CMD_MKENT(load, 7, 0, do_host_load, "", ""),
+	U_BOOT_CMD_MKENT(ls, 3, 0, do_host_ls, "", ""),
+	U_BOOT_CMD_MKENT(save, 6, 0, do_host_save, "", ""),
+	U_BOOT_CMD_MKENT(bind, 3, 0, do_host_bind, "", ""),
+	U_BOOT_CMD_MKENT(info, 3, 0, do_host_info, "", ""),
 };
 
-static int do_sandbox(cmd_tbl_t *cmdtp, int flag, int argc,
+static int do_host(cmd_tbl_t *cmdtp, int flag, int argc,
 		      char * const argv[])
 {
 	cmd_tbl_t *c;
 
-	/* Skip past 'sandbox' */
+	/* Skip past 'host' */
 	argc--;
 	argv++;
 
-	c = find_cmd_tbl(argv[0], cmd_sandbox_sub,
-			 ARRAY_SIZE(cmd_sandbox_sub));
+	c = find_cmd_tbl(argv[0], cmd_host_sub,
+			 ARRAY_SIZE(cmd_host_sub));
 
 	if (c)
 		return c->cmd(cmdtp, flag, argc, argv);
@@ -112,15 +112,21 @@ static int do_sandbox(cmd_tbl_t *cmdtp, int flag, int argc,
 }
 
 U_BOOT_CMD(
-	sb,	8,	1,	do_sandbox,
-	"Miscellaneous sandbox commands",
+	sb,	8,	1,	do_host,
+	"Deprecated: use 'host' command instead.", ""
+);
+
+U_BOOT_CMD(
+	host, 8, 1, do_host,
+	"Miscellaneous host commands",
 	"load hostfs - <addr> <filename> [<bytes> <offset>]  - "
 		"load a file from host\n"
-	"sb ls hostfs - <filename>                    - list files on host\n"
-	"sb save hostfs - <addr> <filename> <bytes> [<offset>] - "
+	"host ls hostfs - <filename>                    - list files on host\n"
+	"host save hostfs - <addr> <filename> <bytes> [<offset>] - "
 		"save a file to host\n"
-	"sb bind <dev> [<filename>] - bind \"host\" device to file\n"
-	"sb info [<dev>]            - show device binding & info\n"
-	"sb commands use the \"hostfs\" device. The \"host\" device is used\n"
+	"host bind <dev> [<filename>] - bind \"host\" device to file\n"
+	"host info [<dev>]            - show device binding & info\n"
+	"host commands use the \"hostfs\" device. The \"host\" device is used\n"
 	"with standard IO commands such as fatls or ext2load"
 );
+
-- 
2.1.4

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

* [U-Boot] [PATCH v4 5/9] sandbox: Implement host dev [device]
  2015-04-13 20:54 [U-Boot] [PATCH v4 0/9] Allow sandbox to use config_distro_bootcmd Sjoerd Simons
                   ` (3 preceding siblings ...)
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 4/9] sandbox: Renamed sb command to host Sjoerd Simons
@ 2015-04-13 20:54 ` Sjoerd Simons
  2015-04-19 13:30   ` Simon Glass
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 6/9] config_distro_bootcmd.h: Add shared block definition for the host interface Sjoerd Simons
                   ` (3 subsequent siblings)
  8 siblings, 1 reply; 26+ messages in thread
From: Sjoerd Simons @ 2015-04-13 20:54 UTC (permalink / raw)
  To: u-boot

A common pattern to check if a certain device exists (e.g. in
config_distro_bootcmd) is to use: <interface> dev [device]

Implement host dev [device] so this pattern can be used for sandbox host
devices.

Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Acked-by: Simon Glass <sjg@chromium.org>
---

Changes in v4: None
Changes in v3: None
Changes in v2: None

 common/cmd_host.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/common/cmd_host.c b/common/cmd_host.c
index 323a795..bd7ee2c 100644
--- a/common/cmd_host.c
+++ b/common/cmd_host.c
@@ -10,6 +10,8 @@
 #include <sandboxblockdev.h>
 #include <asm/errno.h>
 
+static int host_curr_device = -1;
+
 static int do_host_load(cmd_tbl_t *cmdtp, int flag, int argc,
 			   char * const argv[])
 {
@@ -85,12 +87,53 @@ static int do_host_info(cmd_tbl_t *cmdtp, int flag, int argc,
 	return 0;
 }
 
+static int do_host_dev(cmd_tbl_t *cmdtp, int flag, int argc,
+		       char * const argv[])
+{
+	int dev;
+	char *ep;
+	block_dev_desc_t *blk_dev;
+	int ret;
+
+	if (argc < 1 || argc > 3)
+		return CMD_RET_USAGE;
+
+	if (argc == 1) {
+		if (host_curr_device < 0) {
+			printf("No current host device\n");
+			return 1;
+		}
+		printf("Current host device %d\n", host_curr_device);
+		return 0;
+	}
+
+	dev = simple_strtoul(argv[1], &ep, 16);
+	if (*ep) {
+		printf("** Bad device specification %s **\n", argv[2]);
+		return CMD_RET_USAGE;
+	}
+
+	ret = host_get_dev_err(dev, &blk_dev);
+	if (ret) {
+		if (ret == -ENOENT)
+			puts("Not bound to a backing file\n");
+		else if (ret == -ENODEV)
+			puts("Invalid host device number\n");
+
+		return 1;
+	}
+
+	host_curr_device = dev;
+	return 0;
+}
+
 static cmd_tbl_t cmd_host_sub[] = {
 	U_BOOT_CMD_MKENT(load, 7, 0, do_host_load, "", ""),
 	U_BOOT_CMD_MKENT(ls, 3, 0, do_host_ls, "", ""),
 	U_BOOT_CMD_MKENT(save, 6, 0, do_host_save, "", ""),
 	U_BOOT_CMD_MKENT(bind, 3, 0, do_host_bind, "", ""),
 	U_BOOT_CMD_MKENT(info, 3, 0, do_host_info, "", ""),
+	U_BOOT_CMD_MKENT(dev, 0, 1, do_host_dev, "", ""),
 };
 
 static int do_host(cmd_tbl_t *cmdtp, int flag, int argc,
@@ -126,6 +169,7 @@ U_BOOT_CMD(
 		"save a file to host\n"
 	"host bind <dev> [<filename>] - bind \"host\" device to file\n"
 	"host info [<dev>]            - show device binding & info\n"
+	"host dev [<dev>] - Set or retrieve the current host device\n"
 	"host commands use the \"hostfs\" device. The \"host\" device is used\n"
 	"with standard IO commands such as fatls or ext2load"
 );
-- 
2.1.4

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

* [U-Boot] [PATCH v4 6/9] config_distro_bootcmd.h: Add shared block definition for the host interface
  2015-04-13 20:54 [U-Boot] [PATCH v4 0/9] Allow sandbox to use config_distro_bootcmd Sjoerd Simons
                   ` (4 preceding siblings ...)
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 5/9] sandbox: Implement host dev [device] Sjoerd Simons
@ 2015-04-13 20:54 ` Sjoerd Simons
  2015-04-14  2:21   ` Dennis Gilmore
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 7/9] pxe: Ensure all memory access is to mapped memory Sjoerd Simons
                   ` (2 subsequent siblings)
  8 siblings, 1 reply; 26+ messages in thread
From: Sjoerd Simons @ 2015-04-13 20:54 UTC (permalink / raw)
  To: u-boot

Define the common shared block environment for the host interface in
preperation for the sandbox build to use config_distro_bootcmd.

Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Acked-by: Simon Glass <sjg@chromium.org>
Acked-by: Stephen Warren <swarren@nvidia.com>
---

Changes in v4: None
Changes in v3: None
Changes in v2: None

 include/config_distro_bootcmd.h | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/include/config_distro_bootcmd.h b/include/config_distro_bootcmd.h
index d71e58d..3a360ca4 100644
--- a/include/config_distro_bootcmd.h
+++ b/include/config_distro_bootcmd.h
@@ -48,6 +48,18 @@
 #define BOOTENV_DEV_NAME_BLKDEV(devtypeu, devtypel, instance) \
 	#devtypel #instance " "
 
+#ifdef CONFIG_SANDBOX
+#define BOOTENV_SHARED_HOST	BOOTENV_SHARED_BLKDEV(host)
+#define BOOTENV_DEV_HOST	BOOTENV_DEV_BLKDEV
+#define BOOTENV_DEV_NAME_HOST	BOOTENV_DEV_NAME_BLKDEV
+#else
+#define BOOTENV_SHARED_HOST
+#define BOOTENV_DEV_HOST \
+	BOOT_TARGET_DEVICES_references_HOST_without_CONFIG_SANDBOX
+#define BOOTENV_DEV_NAME_HOST \
+	BOOT_TARGET_DEVICES_references_HOST_without_CONFIG_SANDBOX
+#endif
+
 #ifdef CONFIG_CMD_MMC
 #define BOOTENV_SHARED_MMC	BOOTENV_SHARED_BLKDEV(mmc)
 #define BOOTENV_DEV_MMC		BOOTENV_DEV_BLKDEV
@@ -167,6 +179,7 @@
 #define BOOTENV_DEV(devtypeu, devtypel, instance) \
 	BOOTENV_DEV_##devtypeu(devtypeu, devtypel, instance)
 #define BOOTENV \
+	BOOTENV_SHARED_HOST \
 	BOOTENV_SHARED_MMC \
 	BOOTENV_SHARED_USB \
 	BOOTENV_SHARED_SATA \
-- 
2.1.4

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

* [U-Boot] [PATCH v4 7/9] pxe: Ensure all memory access is to mapped memory
  2015-04-13 20:54 [U-Boot] [PATCH v4 0/9] Allow sandbox to use config_distro_bootcmd Sjoerd Simons
                   ` (5 preceding siblings ...)
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 6/9] config_distro_bootcmd.h: Add shared block definition for the host interface Sjoerd Simons
@ 2015-04-13 20:54 ` Sjoerd Simons
  2015-04-19 13:30   ` Simon Glass
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 8/9] config: Add default client arch defines for intel architectures Sjoerd Simons
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 9/9] sandbox: add config_distro_defaults and config_distro_bootcmd Sjoerd Simons
  8 siblings, 1 reply; 26+ messages in thread
From: Sjoerd Simons @ 2015-04-13 20:54 UTC (permalink / raw)
  To: u-boot

Properly map memory through map_sysmem so that pxe can be used from the
sandbox.

Tested in sandbox as well as on jetson-tk1, odroid-xu3, snow as peach-pi
boards

Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Acked-by: Simon Glass <sjg@chromium.org>

---

Changes in v4: None
Changes in v3: None
Changes in v2:
- Prevent uncessary casts
- Always unmap mapped sysmem
- Consistently use base variable to refer to unmapped memory
- Various coding style fixes

 common/cmd_pxe.c | 86 ++++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 56 insertions(+), 30 deletions(-)

diff --git a/common/cmd_pxe.c b/common/cmd_pxe.c
index 5cde5b6..4cbb2b1 100644
--- a/common/cmd_pxe.c
+++ b/common/cmd_pxe.c
@@ -14,6 +14,7 @@
 #include <errno.h>
 #include <linux/list.h>
 #include <fs.h>
+#include <asm/io.h>
 
 #include "menu.h"
 #include "cli.h"
@@ -189,11 +190,12 @@ static int do_get_any(cmd_tbl_t *cmdtp, const char *file_path, char *file_addr)
  *
  * Returns 1 for success, or < 0 on error.
  */
-static int get_relfile(cmd_tbl_t *cmdtp, const char *file_path, void *file_addr)
+static int get_relfile(cmd_tbl_t *cmdtp, const char *file_path,
+	unsigned long file_addr)
 {
 	size_t path_len;
 	char relfile[MAX_TFTP_PATH_LEN+1];
-	char addr_buf[10];
+	char addr_buf[18];
 	int err;
 
 	err = get_bootfile_path(file_path, relfile, sizeof(relfile));
@@ -216,7 +218,7 @@ static int get_relfile(cmd_tbl_t *cmdtp, const char *file_path, void *file_addr)
 
 	printf("Retrieving file: %s\n", relfile);
 
-	sprintf(addr_buf, "%p", file_addr);
+	sprintf(addr_buf, "%lx", file_addr);
 
 	return do_getfile(cmdtp, relfile, addr_buf);
 }
@@ -228,11 +230,13 @@ static int get_relfile(cmd_tbl_t *cmdtp, const char *file_path, void *file_addr)
  *
  * Returns 1 on success, or < 0 for error.
  */
-static int get_pxe_file(cmd_tbl_t *cmdtp, const char *file_path, void *file_addr)
+static int get_pxe_file(cmd_tbl_t *cmdtp, const char *file_path,
+	unsigned long file_addr)
 {
 	unsigned long config_file_size;
 	char *tftp_filesize;
 	int err;
+	char *buf;
 
 	err = get_relfile(cmdtp, file_path, file_addr);
 
@@ -251,7 +255,9 @@ static int get_pxe_file(cmd_tbl_t *cmdtp, const char *file_path, void *file_addr
 	if (strict_strtoul(tftp_filesize, 16, &config_file_size) < 0)
 		return -EINVAL;
 
-	*(char *)(file_addr + config_file_size) = '\0';
+	buf = map_sysmem(file_addr + config_file_size, 1);
+	*buf = '\0';
+	unmap_sysmem(buf);
 
 	return 1;
 }
@@ -267,7 +273,8 @@ static int get_pxe_file(cmd_tbl_t *cmdtp, const char *file_path, void *file_addr
  *
  * Returns 1 on success or < 0 on error.
  */
-static int get_pxelinux_path(cmd_tbl_t *cmdtp, const char *file, void *pxefile_addr_r)
+static int get_pxelinux_path(cmd_tbl_t *cmdtp, const char *file,
+	unsigned long pxefile_addr_r)
 {
 	size_t base_len = strlen(PXELINUX_DIR);
 	char path[MAX_TFTP_PATH_LEN+1];
@@ -288,7 +295,7 @@ static int get_pxelinux_path(cmd_tbl_t *cmdtp, const char *file, void *pxefile_a
  *
  * Returns 1 on success or < 0 on error.
  */
-static int pxe_uuid_path(cmd_tbl_t *cmdtp, void *pxefile_addr_r)
+static int pxe_uuid_path(cmd_tbl_t *cmdtp, unsigned long pxefile_addr_r)
 {
 	char *uuid_str;
 
@@ -306,7 +313,7 @@ static int pxe_uuid_path(cmd_tbl_t *cmdtp, void *pxefile_addr_r)
  *
  * Returns 1 on success or < 0 on error.
  */
-static int pxe_mac_path(cmd_tbl_t *cmdtp, void *pxefile_addr_r)
+static int pxe_mac_path(cmd_tbl_t *cmdtp, unsigned long pxefile_addr_r)
 {
 	char mac_str[21];
 	int err;
@@ -326,7 +333,7 @@ static int pxe_mac_path(cmd_tbl_t *cmdtp, void *pxefile_addr_r)
  *
  * Returns 1 on success or < 0 on error.
  */
-static int pxe_ipaddr_paths(cmd_tbl_t *cmdtp, void *pxefile_addr_r)
+static int pxe_ipaddr_paths(cmd_tbl_t *cmdtp, unsigned long pxefile_addr_r)
 {
 	char ip_addr[9];
 	int mask_pos, err;
@@ -385,9 +392,9 @@ do_pxe_get(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	 * Keep trying paths until we successfully get a file we're looking
 	 * for.
 	 */
-	if (pxe_uuid_path(cmdtp, (void *)pxefile_addr_r) > 0 ||
-	    pxe_mac_path(cmdtp, (void *)pxefile_addr_r) > 0 ||
-	    pxe_ipaddr_paths(cmdtp, (void *)pxefile_addr_r) > 0) {
+	if (pxe_uuid_path(cmdtp, pxefile_addr_r) > 0 ||
+	    pxe_mac_path(cmdtp, pxefile_addr_r) > 0 ||
+	    pxe_ipaddr_paths(cmdtp, pxefile_addr_r) > 0) {
 		printf("Config file found\n");
 
 		return 0;
@@ -395,7 +402,7 @@ do_pxe_get(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 
 	while (pxe_default_paths[i]) {
 		if (get_pxelinux_path(cmdtp, pxe_default_paths[i],
-				      (void *)pxefile_addr_r) > 0) {
+				      pxefile_addr_r) > 0) {
 			printf("Config file found\n");
 			return 0;
 		}
@@ -428,7 +435,7 @@ static int get_relfile_envaddr(cmd_tbl_t *cmdtp, const char *file_path, const ch
 	if (strict_strtoul(envaddr, 16, &file_addr) < 0)
 		return -EINVAL;
 
-	return get_relfile(cmdtp, file_path, (void *)file_addr);
+	return get_relfile(cmdtp, file_path, file_addr);
 }
 
 /*
@@ -791,6 +798,7 @@ static int label_boot(cmd_tbl_t *cmdtp, struct pxe_label *label)
 	else
 		do_bootz(cmdtp, 0, bootm_argc, bootm_argv);
 #endif
+	unmap_sysmem(buf);
 	return 1;
 }
 
@@ -1055,7 +1063,8 @@ static int parse_integer(char **c, int *dst)
 	return 1;
 }
 
-static int parse_pxefile_top(cmd_tbl_t *cmdtp, char *p, struct pxe_menu *cfg, int nest_level);
+static int parse_pxefile_top(cmd_tbl_t *cmdtp, char *p, unsigned long base,
+	struct pxe_menu *cfg, int nest_level);
 
 /*
  * Parse an include statement, and retrieve and parse the file it mentions.
@@ -1065,12 +1074,14 @@ static int parse_pxefile_top(cmd_tbl_t *cmdtp, char *p, struct pxe_menu *cfg, in
  * include, nest_level has already been incremented and doesn't need to be
  * incremented here.
  */
-static int handle_include(cmd_tbl_t *cmdtp, char **c, char *base,
+static int handle_include(cmd_tbl_t *cmdtp, char **c, unsigned long base,
 				struct pxe_menu *cfg, int nest_level)
 {
 	char *include_path;
 	char *s = *c;
 	int err;
+	char *buf;
+	int ret;
 
 	err = parse_sliteral(c, &include_path);
 
@@ -1087,20 +1098,25 @@ static int handle_include(cmd_tbl_t *cmdtp, char **c, char *base,
 		return err;
 	}
 
-	return parse_pxefile_top(cmdtp, base, cfg, nest_level);
+	buf = map_sysmem(base, 0);
+	ret = parse_pxefile_top(cmdtp, buf, base, cfg, nest_level);
+	unmap_sysmem(buf);
+
+	return ret;
 }
 
 /*
  * Parse lines that begin with 'menu'.
  *
- * b and nest are provided to handle the 'menu include' case.
+ * base and nest are provided to handle the 'menu include' case.
  *
- * b should be the address where the file currently being parsed is stored.
+ * base should point to a location where it's safe to store the included file.
  *
  * nest_level should be 1 when parsing the top level pxe file, 2 when parsing
  * a file it includes, 3 when parsing a file included by that file, and so on.
  */
-static int parse_menu(cmd_tbl_t *cmdtp, char **c, struct pxe_menu *cfg, char *b, int nest_level)
+static int parse_menu(cmd_tbl_t *cmdtp, char **c, struct pxe_menu *cfg,
+				unsigned long base, int nest_level)
 {
 	struct token t;
 	char *s = *c;
@@ -1115,7 +1131,7 @@ static int parse_menu(cmd_tbl_t *cmdtp, char **c, struct pxe_menu *cfg, char *b,
 		break;
 
 	case T_INCLUDE:
-		err = handle_include(cmdtp, c, b + strlen(b) + 1, cfg,
+		err = handle_include(cmdtp, c, base, cfg,
 						nest_level + 1);
 		break;
 
@@ -1282,7 +1298,8 @@ static int parse_label(char **c, struct pxe_menu *cfg)
  *
  * Returns 1 on success, < 0 on error.
  */
-static int parse_pxefile_top(cmd_tbl_t *cmdtp, char *p, struct pxe_menu *cfg, int nest_level)
+static int parse_pxefile_top(cmd_tbl_t *cmdtp, char *p, unsigned long base,
+				struct pxe_menu *cfg, int nest_level)
 {
 	struct token t;
 	char *s, *b, *label_name;
@@ -1304,7 +1321,9 @@ static int parse_pxefile_top(cmd_tbl_t *cmdtp, char *p, struct pxe_menu *cfg, in
 		switch (t.type) {
 		case T_MENU:
 			cfg->prompt = 1;
-			err = parse_menu(cmdtp, &p, cfg, b, nest_level);
+			err = parse_menu(cmdtp, &p, cfg,
+				base + ALIGN(strlen(b) + 1, 4),
+				nest_level);
 			break;
 
 		case T_TIMEOUT:
@@ -1329,8 +1348,9 @@ static int parse_pxefile_top(cmd_tbl_t *cmdtp, char *p, struct pxe_menu *cfg, in
 			break;
 
 		case T_INCLUDE:
-			err = handle_include(cmdtp, &p, b + ALIGN(strlen(b), 4), cfg,
-							nest_level + 1);
+			err = handle_include(cmdtp, &p,
+				base + ALIGN(strlen(b), 4), cfg,
+				nest_level + 1);
 			break;
 
 		case T_PROMPT:
@@ -1386,9 +1406,11 @@ static void destroy_pxe_menu(struct pxe_menu *cfg)
  * files it includes). The resulting pxe_menu struct can be free()'d by using
  * the destroy_pxe_menu() function.
  */
-static struct pxe_menu *parse_pxefile(cmd_tbl_t *cmdtp, char *menucfg)
+static struct pxe_menu *parse_pxefile(cmd_tbl_t *cmdtp, unsigned long menucfg)
 {
 	struct pxe_menu *cfg;
+	char *buf;
+	int r;
 
 	cfg = malloc(sizeof(struct pxe_menu));
 
@@ -1399,7 +1421,11 @@ static struct pxe_menu *parse_pxefile(cmd_tbl_t *cmdtp, char *menucfg)
 
 	INIT_LIST_HEAD(&cfg->labels);
 
-	if (parse_pxefile_top(cmdtp, menucfg, cfg, 1) < 0) {
+	buf = map_sysmem(menucfg, 0);
+	r = parse_pxefile_top(cmdtp, buf, menucfg, cfg, 1);
+	unmap_sysmem(buf);
+
+	if (r < 0) {
 		destroy_pxe_menu(cfg);
 		return NULL;
 	}
@@ -1557,7 +1583,7 @@ do_pxe_boot(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 		return 1;
 	}
 
-	cfg = parse_pxefile(cmdtp, (char *)(pxefile_addr_r));
+	cfg = parse_pxefile(cmdtp, pxefile_addr_r);
 
 	if (cfg == NULL) {
 		printf("Error parsing config file\n");
@@ -1664,12 +1690,12 @@ static int do_sysboot(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 		return 1;
 	}
 
-	if (get_pxe_file(cmdtp, filename, (void *)pxefile_addr_r) < 0) {
+	if (get_pxe_file(cmdtp, filename, pxefile_addr_r) < 0) {
 		printf("Error reading config file\n");
 		return 1;
 	}
 
-	cfg = parse_pxefile(cmdtp, (char *)(pxefile_addr_r));
+	cfg = parse_pxefile(cmdtp, pxefile_addr_r);
 
 	if (cfg == NULL) {
 		printf("Error parsing config file\n");
-- 
2.1.4

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

* [U-Boot] [PATCH v4 8/9] config: Add default client arch defines for intel architectures
  2015-04-13 20:54 [U-Boot] [PATCH v4 0/9] Allow sandbox to use config_distro_bootcmd Sjoerd Simons
                   ` (6 preceding siblings ...)
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 7/9] pxe: Ensure all memory access is to mapped memory Sjoerd Simons
@ 2015-04-13 20:54 ` Sjoerd Simons
  2015-04-19 13:30   ` Simon Glass
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 9/9] sandbox: add config_distro_defaults and config_distro_bootcmd Sjoerd Simons
  8 siblings, 1 reply; 26+ messages in thread
From: Sjoerd Simons @ 2015-04-13 20:54 UTC (permalink / raw)
  To: u-boot

Define default PXE client architecture identifiers for IA32 (0x0 aka
Intel x86PC) and Intel x86-64 (0x9 aka EFI x86-64).

This prepares for usage for config_distro_defaults in the sandbox
architecture

Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>

---

Changes in v4:
- New patch

Changes in v3: None
Changes in v2: None

 include/config_distro_defaults.h | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/include/config_distro_defaults.h b/include/config_distro_defaults.h
index 8237239..5eea5cf 100644
--- a/include/config_distro_defaults.h
+++ b/include/config_distro_defaults.h
@@ -29,6 +29,10 @@
 #else
 #define CONFIG_BOOTP_VCI_STRING         "U-boot.arm"
 #endif
+#elif defined(__i386__)
+#define CONFIG_BOOTP_PXE_CLIENTARCH     0x0
+#elif defined(__x86_64__)
+#define CONFIG_BOOTP_PXE_CLIENTARCH     0x9
 #endif
 
 #define CONFIG_OF_LIBFDT
-- 
2.1.4

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

* [U-Boot] [PATCH v4 9/9] sandbox: add config_distro_defaults and config_distro_bootcmd
  2015-04-13 20:54 [U-Boot] [PATCH v4 0/9] Allow sandbox to use config_distro_bootcmd Sjoerd Simons
                   ` (7 preceding siblings ...)
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 8/9] config: Add default client arch defines for intel architectures Sjoerd Simons
@ 2015-04-13 20:54 ` Sjoerd Simons
  2015-04-13 22:07   ` Simon Glass
  2015-04-21  4:31   ` Joe Hershberger
  8 siblings, 2 replies; 26+ messages in thread
From: Sjoerd Simons @ 2015-04-13 20:54 UTC (permalink / raw)
  To: u-boot

Make the sandbox setup more generic/examplary by including
config_distro_defaults.h and config_distro_bootcmd.h.

Among other things this makes it easy to test whether images will boot
though with the standard distro bootcmds by running e.g:
  u-boot -c 'host bind 0 myimage.img ; boot'

By default there are 2 target host devices to emulate device with
multiple storage devices (e.g. internal ("host 0") and external
("host 1") and verify that the prioritization and fallbacks do work
correctly.

Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Reviewed by: Simon Glass <sjg@chromium.org>
Acked-by: Simon Glass <sjg@chromium.org>

---

Changes in v4:
- Adapt to sandbox networking support

Changes in v3: None
Changes in v2: None

 include/configs/sandbox.h | 31 +++++++++++++++++++++++--------
 1 file changed, 23 insertions(+), 8 deletions(-)

diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h
index 0a36719..3bf45a2 100644
--- a/include/configs/sandbox.h
+++ b/include/configs/sandbox.h
@@ -73,7 +73,6 @@
 #define CONFIG_CMDLINE_EDITING
 #define CONFIG_COMMAND_HISTORY
 #define CONFIG_AUTO_COMPLETE
-#define CONFIG_BOOTDELAY	3
 
 #define CONFIG_ENV_SIZE		8192
 #define CONFIG_ENV_IS_NOWHERE
@@ -120,26 +119,31 @@
 
 /* include default commands */
 #include <config_cmd_default.h>
+#include <config_distro_defaults.h>
+
+#define BOOT_TARGET_DEVICES(func) \
+	func(HOST, host, 1) \
+	func(HOST, host, 0)
+
+#include <config_distro_bootcmd.h>
 
 #define CONFIG_KEEP_SERVERADDR
 #define CONFIG_UDP_CHECKSUM
 #define CONFIG_CMD_LINK_LOCAL
 #define CONFIG_CMD_CDP
 #define CONFIG_CMD_DNS
-#define CONFIG_CMD_NFS
 #define CONFIG_CMD_SNTP
 #define CONFIG_TIMESTAMP
 #define CONFIG_CMD_RARP
-#define CONFIG_CMD_PING
-#define CONFIG_CMD_DHCP
 #define CONFIG_BOOTP_DNS
 #define CONFIG_BOOTP_DNS2
-#define CONFIG_BOOTP_GATEWAY
 #define CONFIG_BOOTP_SEND_HOSTNAME
 #define CONFIG_BOOTP_SERVERIP
-#define CONFIG_BOOTP_SUBNETMASK
 #define CONFIG_IP_DEFRAG
 
+/* Can't boot elf images */
+#undef CONFIG_CMD_ELF
+
 #define CONFIG_CMD_HASH
 #define CONFIG_HASH_VERIFY
 #define CONFIG_SHA1
@@ -182,8 +186,19 @@
 					"eth5addr=00:00:11:22:33:46\0" \
 					"ipaddr=1.2.3.4\0"
 
-#define CONFIG_EXTRA_ENV_SETTINGS	SANDBOX_SERIAL_SETTINGS \
-					SANDBOX_ETH_SETTINGS
+#define MEM_LAYOUT_ENV_SETTINGS \
+	"bootm_size=0x10000000\0" \
+	"kernel_addr_r=0x1000000\0" \
+	"fdt_addr_r=0xc00000\0" \
+	"ramdisk_addr_r=0x2000000\0" \
+	"scriptaddr=0x1000\0" \
+	"pxefile_addr_r=0x2000\0"
+
+#define CONFIG_EXTRA_ENV_SETTINGS \
+	SANDBOX_SERIAL_SETTINGS \
+	SANDBOX_ETH_SETTINGS \
+	BOOTENV \
+	MEM_LAYOUT_ENV_SETTINGS
 
 #define CONFIG_GZIP_COMPRESSED
 #define CONFIG_BZIP2
-- 
2.1.4

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

* [U-Boot] [PATCH v4 9/9] sandbox: add config_distro_defaults and config_distro_bootcmd
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 9/9] sandbox: add config_distro_defaults and config_distro_bootcmd Sjoerd Simons
@ 2015-04-13 22:07   ` Simon Glass
  2015-04-13 22:28     ` Joe Hershberger
  2015-04-21  4:31   ` Joe Hershberger
  1 sibling, 1 reply; 26+ messages in thread
From: Simon Glass @ 2015-04-13 22:07 UTC (permalink / raw)
  To: u-boot

Hi Sjoerd,

On 13 April 2015 at 14:54, Sjoerd Simons <sjoerd.simons@collabora.co.uk> wrote:
> Make the sandbox setup more generic/examplary by including
> config_distro_defaults.h and config_distro_bootcmd.h.
>
> Among other things this makes it easy to test whether images will boot
> though with the standard distro bootcmds by running e.g:
>   u-boot -c 'host bind 0 myimage.img ; boot'
>
> By default there are 2 target host devices to emulate device with
> multiple storage devices (e.g. internal ("host 0") and external
> ("host 1") and verify that the prioritization and fallbacks do work
> correctly.
>
> Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
> Reviewed by: Simon Glass <sjg@chromium.org>
> Acked-by: Simon Glass <sjg@chromium.org>

Thanks for the updated patch. Please see my question below.

>
> ---
>
> Changes in v4:
> - Adapt to sandbox networking support
>
> Changes in v3: None
> Changes in v2: None
>
>  include/configs/sandbox.h | 31 +++++++++++++++++++++++--------
>  1 file changed, 23 insertions(+), 8 deletions(-)
>
> diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h
> index 0a36719..3bf45a2 100644
> --- a/include/configs/sandbox.h
> +++ b/include/configs/sandbox.h
> @@ -73,7 +73,6 @@
>  #define CONFIG_CMDLINE_EDITING
>  #define CONFIG_COMMAND_HISTORY
>  #define CONFIG_AUTO_COMPLETE
> -#define CONFIG_BOOTDELAY       3
>
>  #define CONFIG_ENV_SIZE                8192
>  #define CONFIG_ENV_IS_NOWHERE
> @@ -120,26 +119,31 @@
>
>  /* include default commands */
>  #include <config_cmd_default.h>
> +#include <config_distro_defaults.h>
> +
> +#define BOOT_TARGET_DEVICES(func) \
> +       func(HOST, host, 1) \
> +       func(HOST, host, 0)
> +
> +#include <config_distro_bootcmd.h>
>
>  #define CONFIG_KEEP_SERVERADDR
>  #define CONFIG_UDP_CHECKSUM
>  #define CONFIG_CMD_LINK_LOCAL
>  #define CONFIG_CMD_CDP
>  #define CONFIG_CMD_DNS
> -#define CONFIG_CMD_NFS
>  #define CONFIG_CMD_SNTP
>  #define CONFIG_TIMESTAMP
>  #define CONFIG_CMD_RARP
> -#define CONFIG_CMD_PING
> -#define CONFIG_CMD_DHCP
>  #define CONFIG_BOOTP_DNS
>  #define CONFIG_BOOTP_DNS2
> -#define CONFIG_BOOTP_GATEWAY
>  #define CONFIG_BOOTP_SEND_HOSTNAME
>  #define CONFIG_BOOTP_SERVERIP
> -#define CONFIG_BOOTP_SUBNETMASK

Why are you removing these commands?

>  #define CONFIG_IP_DEFRAG
>
> +/* Can't boot elf images */
> +#undef CONFIG_CMD_ELF
> +
>  #define CONFIG_CMD_HASH
>  #define CONFIG_HASH_VERIFY
>  #define CONFIG_SHA1
> @@ -182,8 +186,19 @@
>                                         "eth5addr=00:00:11:22:33:46\0" \
>                                         "ipaddr=1.2.3.4\0"
>
> -#define CONFIG_EXTRA_ENV_SETTINGS      SANDBOX_SERIAL_SETTINGS \
> -                                       SANDBOX_ETH_SETTINGS
> +#define MEM_LAYOUT_ENV_SETTINGS \
> +       "bootm_size=0x10000000\0" \
> +       "kernel_addr_r=0x1000000\0" \
> +       "fdt_addr_r=0xc00000\0" \
> +       "ramdisk_addr_r=0x2000000\0" \
> +       "scriptaddr=0x1000\0" \
> +       "pxefile_addr_r=0x2000\0"
> +
> +#define CONFIG_EXTRA_ENV_SETTINGS \
> +       SANDBOX_SERIAL_SETTINGS \
> +       SANDBOX_ETH_SETTINGS \
> +       BOOTENV \
> +       MEM_LAYOUT_ENV_SETTINGS
>
>  #define CONFIG_GZIP_COMPRESSED
>  #define CONFIG_BZIP2
> --
> 2.1.4
>

Regards,
Simon

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

* [U-Boot] [PATCH v4 9/9] sandbox: add config_distro_defaults and config_distro_bootcmd
  2015-04-13 22:07   ` Simon Glass
@ 2015-04-13 22:28     ` Joe Hershberger
  2015-04-13 22:34       ` Simon Glass
  0 siblings, 1 reply; 26+ messages in thread
From: Joe Hershberger @ 2015-04-13 22:28 UTC (permalink / raw)
  To: u-boot

Hi Sjoerd,

On Mon, Apr 13, 2015 at 5:07 PM, Simon Glass <sjg@chromium.org> wrote:
>
> Hi Sjoerd,
>
> On 13 April 2015 at 14:54, Sjoerd Simons <sjoerd.simons@collabora.co.uk>
wrote:
> > Make the sandbox setup more generic/examplary by including
> > config_distro_defaults.h and config_distro_bootcmd.h.
> >
> > Among other things this makes it easy to test whether images will boot
> > though with the standard distro bootcmds by running e.g:
> >   u-boot -c 'host bind 0 myimage.img ; boot'
> >
> > By default there are 2 target host devices to emulate device with
> > multiple storage devices (e.g. internal ("host 0") and external
> > ("host 1") and verify that the prioritization and fallbacks do work
> > correctly.
> >
> > Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
> > Reviewed by: Simon Glass <sjg@chromium.org>
> > Acked-by: Simon Glass <sjg@chromium.org>
>
> Thanks for the updated patch. Please see my question below.
>
> >
> > ---
> >
> > Changes in v4:
> > - Adapt to sandbox networking support
> >
> > Changes in v3: None
> > Changes in v2: None
> >
> >  include/configs/sandbox.h | 31 +++++++++++++++++++++++--------
> >  1 file changed, 23 insertions(+), 8 deletions(-)
> >
> > diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h
> > index 0a36719..3bf45a2 100644
> > --- a/include/configs/sandbox.h
> > +++ b/include/configs/sandbox.h
> > @@ -73,7 +73,6 @@
> >  #define CONFIG_CMDLINE_EDITING
> >  #define CONFIG_COMMAND_HISTORY
> >  #define CONFIG_AUTO_COMPLETE
> > -#define CONFIG_BOOTDELAY       3
> >
> >  #define CONFIG_ENV_SIZE                8192
> >  #define CONFIG_ENV_IS_NOWHERE
> > @@ -120,26 +119,31 @@
> >
> >  /* include default commands */
> >  #include <config_cmd_default.h>
> > +#include <config_distro_defaults.h>

This include already has some of the commands removed below.

> > +
> > +#define BOOT_TARGET_DEVICES(func) \
> > +       func(HOST, host, 1) \
> > +       func(HOST, host, 0)
> > +
> > +#include <config_distro_bootcmd.h>
> >
> >  #define CONFIG_KEEP_SERVERADDR
> >  #define CONFIG_UDP_CHECKSUM
> >  #define CONFIG_CMD_LINK_LOCAL
> >  #define CONFIG_CMD_CDP
> >  #define CONFIG_CMD_DNS
> > -#define CONFIG_CMD_NFS

It looks like this one is already defined in config_cmd_default.h.

> >  #define CONFIG_CMD_SNTP
> >  #define CONFIG_TIMESTAMP
> >  #define CONFIG_CMD_RARP
> > -#define CONFIG_CMD_PING
> > -#define CONFIG_CMD_DHCP
> >  #define CONFIG_BOOTP_DNS
> >  #define CONFIG_BOOTP_DNS2
> > -#define CONFIG_BOOTP_GATEWAY
> >  #define CONFIG_BOOTP_SEND_HOSTNAME
> >  #define CONFIG_BOOTP_SERVERIP
> > -#define CONFIG_BOOTP_SUBNETMASK
>
> Why are you removing these commands?

I had the same reaction initially... These are being defined already in the
new include above.

> >  #define CONFIG_IP_DEFRAG
> >
> > +/* Can't boot elf images */
> > +#undef CONFIG_CMD_ELF
> > +
> >  #define CONFIG_CMD_HASH
> >  #define CONFIG_HASH_VERIFY
> >  #define CONFIG_SHA1
> > @@ -182,8 +186,19 @@
> >                                         "eth5addr=00:00:11:22:33:46\0" \
> >                                         "ipaddr=1.2.3.4\0"
> >
> > -#define CONFIG_EXTRA_ENV_SETTINGS      SANDBOX_SERIAL_SETTINGS \
> > -                                       SANDBOX_ETH_SETTINGS
> > +#define MEM_LAYOUT_ENV_SETTINGS \
> > +       "bootm_size=0x10000000\0" \
> > +       "kernel_addr_r=0x1000000\0" \
> > +       "fdt_addr_r=0xc00000\0" \
> > +       "ramdisk_addr_r=0x2000000\0" \
> > +       "scriptaddr=0x1000\0" \
> > +       "pxefile_addr_r=0x2000\0"
> > +
> > +#define CONFIG_EXTRA_ENV_SETTINGS \
> > +       SANDBOX_SERIAL_SETTINGS \
> > +       SANDBOX_ETH_SETTINGS \
> > +       BOOTENV \
> > +       MEM_LAYOUT_ENV_SETTINGS
> >
> >  #define CONFIG_GZIP_COMPRESSED
> >  #define CONFIG_BZIP2
> > --
> > 2.1.4
> >
>
> Regards,
> Simon
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot

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

* [U-Boot] [PATCH v4 9/9] sandbox: add config_distro_defaults and config_distro_bootcmd
  2015-04-13 22:28     ` Joe Hershberger
@ 2015-04-13 22:34       ` Simon Glass
  2015-04-19 13:30         ` Simon Glass
  0 siblings, 1 reply; 26+ messages in thread
From: Simon Glass @ 2015-04-13 22:34 UTC (permalink / raw)
  To: u-boot

Hi Joe,

On 13 April 2015 at 16:28, Joe Hershberger <joe.hershberger@gmail.com> wrote:
> Hi Sjoerd,
>
>
> On Mon, Apr 13, 2015 at 5:07 PM, Simon Glass <sjg@chromium.org> wrote:
>>
>> Hi Sjoerd,
>>
>> On 13 April 2015 at 14:54, Sjoerd Simons <sjoerd.simons@collabora.co.uk>
>> wrote:
>> > Make the sandbox setup more generic/examplary by including
>> > config_distro_defaults.h and config_distro_bootcmd.h.
>> >
>> > Among other things this makes it easy to test whether images will boot
>> > though with the standard distro bootcmds by running e.g:
>> >   u-boot -c 'host bind 0 myimage.img ; boot'
>> >
>> > By default there are 2 target host devices to emulate device with
>> > multiple storage devices (e.g. internal ("host 0") and external
>> > ("host 1") and verify that the prioritization and fallbacks do work
>> > correctly.
>> >
>> > Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
>> > Reviewed by: Simon Glass <sjg@chromium.org>
>> > Acked-by: Simon Glass <sjg@chromium.org>
>>
>> Thanks for the updated patch. Please see my question below.
>>
>> >
>> > ---
>> >
>> > Changes in v4:
>> > - Adapt to sandbox networking support
>> >
>> > Changes in v3: None
>> > Changes in v2: None
>> >
>> >  include/configs/sandbox.h | 31 +++++++++++++++++++++++--------
>> >  1 file changed, 23 insertions(+), 8 deletions(-)
>> >
>> > diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h
>> > index 0a36719..3bf45a2 100644
>> > --- a/include/configs/sandbox.h
>> > +++ b/include/configs/sandbox.h
>> > @@ -73,7 +73,6 @@
>> >  #define CONFIG_CMDLINE_EDITING
>> >  #define CONFIG_COMMAND_HISTORY
>> >  #define CONFIG_AUTO_COMPLETE
>> > -#define CONFIG_BOOTDELAY       3
>> >
>> >  #define CONFIG_ENV_SIZE                8192
>> >  #define CONFIG_ENV_IS_NOWHERE
>> > @@ -120,26 +119,31 @@
>> >
>> >  /* include default commands */
>> >  #include <config_cmd_default.h>
>> > +#include <config_distro_defaults.h>
>
> This include already has some of the commands removed below.
>
>> > +
>> > +#define BOOT_TARGET_DEVICES(func) \
>> > +       func(HOST, host, 1) \
>> > +       func(HOST, host, 0)
>> > +
>> > +#include <config_distro_bootcmd.h>
>> >
>> >  #define CONFIG_KEEP_SERVERADDR
>> >  #define CONFIG_UDP_CHECKSUM
>> >  #define CONFIG_CMD_LINK_LOCAL
>> >  #define CONFIG_CMD_CDP
>> >  #define CONFIG_CMD_DNS
>> > -#define CONFIG_CMD_NFS
>
> It looks like this one is already defined in config_cmd_default.h.
>
>> >  #define CONFIG_CMD_SNTP
>> >  #define CONFIG_TIMESTAMP
>> >  #define CONFIG_CMD_RARP
>> > -#define CONFIG_CMD_PING
>> > -#define CONFIG_CMD_DHCP
>> >  #define CONFIG_BOOTP_DNS
>> >  #define CONFIG_BOOTP_DNS2
>> > -#define CONFIG_BOOTP_GATEWAY
>> >  #define CONFIG_BOOTP_SEND_HOSTNAME
>> >  #define CONFIG_BOOTP_SERVERIP
>> > -#define CONFIG_BOOTP_SUBNETMASK
>>
>> Why are you removing these commands?
>
> I had the same reaction initially... These are being defined already in the
> new include above.
>

Ah, OK thanks.

- Simon

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

* [U-Boot] [PATCH v4 6/9] config_distro_bootcmd.h: Add shared block definition for the host interface
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 6/9] config_distro_bootcmd.h: Add shared block definition for the host interface Sjoerd Simons
@ 2015-04-14  2:21   ` Dennis Gilmore
  2015-04-19 13:30     ` Simon Glass
  0 siblings, 1 reply; 26+ messages in thread
From: Dennis Gilmore @ 2015-04-14  2:21 UTC (permalink / raw)
  To: u-boot

On Monday, April 13, 2015 10:54:24 PM Sjoerd Simons wrote:
> Define the common shared block environment for the host interface in
> preperation for the sandbox build to use config_distro_bootcmd.
> 
> Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
> Acked-by: Simon Glass <sjg@chromium.org>
> Acked-by: Stephen Warren <swarren@nvidia.com>
Acked-by : Dennis Gilmore <dennis@ausil.us>

> ---
> 
> Changes in v4: None
> Changes in v3: None
> Changes in v2: None
> 
>  include/config_distro_bootcmd.h | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/include/config_distro_bootcmd.h
> b/include/config_distro_bootcmd.h index d71e58d..3a360ca4 100644
> --- a/include/config_distro_bootcmd.h
> +++ b/include/config_distro_bootcmd.h
> @@ -48,6 +48,18 @@
>  #define BOOTENV_DEV_NAME_BLKDEV(devtypeu, devtypel, instance) \
>  	#devtypel #instance " "
> 
> +#ifdef CONFIG_SANDBOX
> +#define BOOTENV_SHARED_HOST	BOOTENV_SHARED_BLKDEV(host)
> +#define BOOTENV_DEV_HOST	BOOTENV_DEV_BLKDEV
> +#define BOOTENV_DEV_NAME_HOST	BOOTENV_DEV_NAME_BLKDEV
> +#else
> +#define BOOTENV_SHARED_HOST
> +#define BOOTENV_DEV_HOST \
> +	BOOT_TARGET_DEVICES_references_HOST_without_CONFIG_SANDBOX
> +#define BOOTENV_DEV_NAME_HOST \
> +	BOOT_TARGET_DEVICES_references_HOST_without_CONFIG_SANDBOX
> +#endif
> +
>  #ifdef CONFIG_CMD_MMC
>  #define BOOTENV_SHARED_MMC	BOOTENV_SHARED_BLKDEV(mmc)
>  #define BOOTENV_DEV_MMC		BOOTENV_DEV_BLKDEV
> @@ -167,6 +179,7 @@
>  #define BOOTENV_DEV(devtypeu, devtypel, instance) \
>  	BOOTENV_DEV_##devtypeu(devtypeu, devtypel, instance)
>  #define BOOTENV \
> +	BOOTENV_SHARED_HOST \
>  	BOOTENV_SHARED_MMC \
>  	BOOTENV_SHARED_USB \
>  	BOOTENV_SHARED_SATA \

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

* [U-Boot] [PATCH v4 1/9] sandbox: only do sandboxfs for hostfs interface
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 1/9] sandbox: only do sandboxfs for hostfs interface Sjoerd Simons
@ 2015-04-19 13:29   ` Simon Glass
  0 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2015-04-19 13:29 UTC (permalink / raw)
  To: u-boot

On 13 April 2015 at 14:54, Sjoerd Simons <sjoerd.simons@collabora.co.uk> wrote:
> Only do sandbox filesystem access when using the hostfs device
> interface, rather then falling back to it in all cases. This prevents
> confusion situations due to the fallback being taken rather then an
> unsupported error being raised.
>
> Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Acked-by: Simon Glass <sjg@chromium.org>
>
> ---
>
> Changes in v4: None
> Changes in v3: None
> Changes in v2:
> - Minor comment coding style improvement
>
>  fs/sandbox/sandboxfs.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)

Applied to u-boot-x86/sandbox, thanks!

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

* [U-Boot] [PATCH v4 2/9] sandbox: Split bootm code out into lib/bootm
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 2/9] sandbox: Split bootm code out into lib/bootm Sjoerd Simons
@ 2015-04-19 13:30   ` Simon Glass
  0 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2015-04-19 13:30 UTC (permalink / raw)
  To: u-boot

On 13 April 2015 at 14:54, Sjoerd Simons <sjoerd.simons@collabora.co.uk> wrote:
> Follow the convention of other architectures and move the platform
> specific linux bootm code into sandbox/lib/bootm.c.
>
> Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
> Acked-by: Simon Glass <sjg@chromium.org>
> ---
>
> Changes in v4: None
> Changes in v3: None
> Changes in v2: None
>
>  arch/sandbox/cpu/cpu.c    | 12 ------------
>  arch/sandbox/lib/Makefile |  1 +
>  arch/sandbox/lib/bootm.c  | 21 +++++++++++++++++++++
>  3 files changed, 22 insertions(+), 12 deletions(-)
>  create mode 100644 arch/sandbox/lib/bootm.c

Applied to u-boot-x86/sandbox, thanks!

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

* [U-Boot] [PATCH v4 3/9] sandbox: Add support for bootz
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 3/9] sandbox: Add support for bootz Sjoerd Simons
@ 2015-04-19 13:30   ` Simon Glass
  0 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2015-04-19 13:30 UTC (permalink / raw)
  To: u-boot

On 13 April 2015 at 14:54, Sjoerd Simons <sjoerd.simons@collabora.co.uk> wrote:
> Add dummy bootz_setup implementation allowing the u-boot sandbox to
> run bootz. This recognizes both ARM and x86 zImages to validate a
> valid zImage was loaded.
>
> Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
> Acked-by: Simon Glass <sjg@chromium.org>
>
> ---
>
> Changes in v4: None
> Changes in v3:
> - Fill in *start and *end with proper values
>
> Changes in v2:
> - Move into sandbox/lib/bootm.c
> - convert to u-boot coding style
> - Remove unneeded cast
>
>  arch/sandbox/lib/bootm.c | 42 ++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 42 insertions(+)

Applied to u-boot-x86/sandbox, thanks!

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

* [U-Boot] [PATCH v4 4/9] sandbox: Renamed sb command to host
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 4/9] sandbox: Renamed sb command to host Sjoerd Simons
@ 2015-04-19 13:30   ` Simon Glass
  0 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2015-04-19 13:30 UTC (permalink / raw)
  To: u-boot

On 13 April 2015 at 14:54, Sjoerd Simons <sjoerd.simons@collabora.co.uk> wrote:
> As suggested by Simon Glass, rename the sb command to host but keep the
> old sb command as an alias
>
> Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
> Acked-by: Simon Glass <sjg@chromium.org>
>
> ---
>
> Changes in v4: None
> Changes in v3:
> - Improve deprecated sb command short line
> - Don't document subcommands for sb anymore
>
> Changes in v2: None
>
>  common/Makefile                      |  2 +-
>  common/{cmd_sandbox.c => cmd_host.c} | 50 ++++++++++++++++++++----------------
>  2 files changed, 29 insertions(+), 23 deletions(-)
>  rename common/{cmd_sandbox.c => cmd_host.c} (62%)

Applied to u-boot-x86/sandbox, thanks!

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

* [U-Boot] [PATCH v4 5/9] sandbox: Implement host dev [device]
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 5/9] sandbox: Implement host dev [device] Sjoerd Simons
@ 2015-04-19 13:30   ` Simon Glass
  0 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2015-04-19 13:30 UTC (permalink / raw)
  To: u-boot

On 13 April 2015 at 14:54, Sjoerd Simons <sjoerd.simons@collabora.co.uk> wrote:
> A common pattern to check if a certain device exists (e.g. in
> config_distro_bootcmd) is to use: <interface> dev [device]
>
> Implement host dev [device] so this pattern can be used for sandbox host
> devices.
>
> Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
> Acked-by: Simon Glass <sjg@chromium.org>
> ---
>
> Changes in v4: None
> Changes in v3: None
> Changes in v2: None
>
>  common/cmd_host.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 44 insertions(+)

Applied to u-boot-x86/sandbox, thanks!

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

* [U-Boot] [PATCH v4 6/9] config_distro_bootcmd.h: Add shared block definition for the host interface
  2015-04-14  2:21   ` Dennis Gilmore
@ 2015-04-19 13:30     ` Simon Glass
  0 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2015-04-19 13:30 UTC (permalink / raw)
  To: u-boot

On 13 April 2015 at 20:21, Dennis Gilmore <dennis@ausil.us> wrote:
> On Monday, April 13, 2015 10:54:24 PM Sjoerd Simons wrote:
>> Define the common shared block environment for the host interface in
>> preperation for the sandbox build to use config_distro_bootcmd.
>>
>> Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
>> Acked-by: Simon Glass <sjg@chromium.org>
>> Acked-by: Stephen Warren <swarren@nvidia.com>
> Acked-by : Dennis Gilmore <dennis@ausil.us>
>
>> ---
>>
>> Changes in v4: None
>> Changes in v3: None
>> Changes in v2: None
>>
>>  include/config_distro_bootcmd.h | 13 +++++++++++++
>>  1 file changed, 13 insertions(+)

Applied to u-boot-x86/sandbox, thanks!

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

* [U-Boot] [PATCH v4 7/9] pxe: Ensure all memory access is to mapped memory
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 7/9] pxe: Ensure all memory access is to mapped memory Sjoerd Simons
@ 2015-04-19 13:30   ` Simon Glass
  0 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2015-04-19 13:30 UTC (permalink / raw)
  To: u-boot

On 13 April 2015 at 14:54, Sjoerd Simons <sjoerd.simons@collabora.co.uk> wrote:
> Properly map memory through map_sysmem so that pxe can be used from the
> sandbox.
>
> Tested in sandbox as well as on jetson-tk1, odroid-xu3, snow as peach-pi
> boards
>
> Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
> Acked-by: Simon Glass <sjg@chromium.org>
>
> ---
>
> Changes in v4: None
> Changes in v3: None
> Changes in v2:
> - Prevent uncessary casts
> - Always unmap mapped sysmem
> - Consistently use base variable to refer to unmapped memory
> - Various coding style fixes
>
>  common/cmd_pxe.c | 86 ++++++++++++++++++++++++++++++++++++--------------------
>  1 file changed, 56 insertions(+), 30 deletions(-)

Applied to u-boot-x86/sandbox, thanks!

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

* [U-Boot] [PATCH v4 8/9] config: Add default client arch defines for intel architectures
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 8/9] config: Add default client arch defines for intel architectures Sjoerd Simons
@ 2015-04-19 13:30   ` Simon Glass
  0 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2015-04-19 13:30 UTC (permalink / raw)
  To: u-boot

On 13 April 2015 at 14:54, Sjoerd Simons <sjoerd.simons@collabora.co.uk> wrote:
> Define default PXE client architecture identifiers for IA32 (0x0 aka
> Intel x86PC) and Intel x86-64 (0x9 aka EFI x86-64).
>
> This prepares for usage for config_distro_defaults in the sandbox
> architecture
>
> Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
>
> ---
>
> Changes in v4:
> - New patch
>
> Changes in v3: None
> Changes in v2: None
>
>  include/config_distro_defaults.h | 4 ++++
>  1 file changed, 4 insertions(+)

Applied to u-boot-x86/sandbox, thanks!

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

* [U-Boot] [PATCH v4 9/9] sandbox: add config_distro_defaults and config_distro_bootcmd
  2015-04-13 22:34       ` Simon Glass
@ 2015-04-19 13:30         ` Simon Glass
  0 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2015-04-19 13:30 UTC (permalink / raw)
  To: u-boot

On 13 April 2015 at 16:34, Simon Glass <sjg@chromium.org> wrote:
> Hi Joe,
>
> On 13 April 2015 at 16:28, Joe Hershberger <joe.hershberger@gmail.com> wrote:
>> Hi Sjoerd,
>>
>>
>> On Mon, Apr 13, 2015 at 5:07 PM, Simon Glass <sjg@chromium.org> wrote:
>>>
>>> Hi Sjoerd,
>>>
>>> On 13 April 2015 at 14:54, Sjoerd Simons <sjoerd.simons@collabora.co.uk>
>>> wrote:
>>> > Make the sandbox setup more generic/examplary by including
>>> > config_distro_defaults.h and config_distro_bootcmd.h.
>>> >
>>> > Among other things this makes it easy to test whether images will boot
>>> > though with the standard distro bootcmds by running e.g:
>>> >   u-boot -c 'host bind 0 myimage.img ; boot'
>>> >
>>> > By default there are 2 target host devices to emulate device with
>>> > multiple storage devices (e.g. internal ("host 0") and external
>>> > ("host 1") and verify that the prioritization and fallbacks do work
>>> > correctly.
>>> >
>>> > Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
>>> > Reviewed by: Simon Glass <sjg@chromium.org>
>>> > Acked-by: Simon Glass <sjg@chromium.org>
>>>
>>> Thanks for the updated patch. Please see my question below.
>>>
>>> >
>>> > ---
>>> >
>>> > Changes in v4:
>>> > - Adapt to sandbox networking support
>>> >
>>> > Changes in v3: None
>>> > Changes in v2: None
>>> >
>>> >  include/configs/sandbox.h | 31 +++++++++++++++++++++++--------
>>> >  1 file changed, 23 insertions(+), 8 deletions(-)

Applied to u-boot-x86/sandbox, thanks!

[snip]

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

* [U-Boot] [PATCH v4 9/9] sandbox: add config_distro_defaults and config_distro_bootcmd
  2015-04-13 20:54 ` [U-Boot] [PATCH v4 9/9] sandbox: add config_distro_defaults and config_distro_bootcmd Sjoerd Simons
  2015-04-13 22:07   ` Simon Glass
@ 2015-04-21  4:31   ` Joe Hershberger
  2015-04-21  8:13     ` Sjoerd Simons
  1 sibling, 1 reply; 26+ messages in thread
From: Joe Hershberger @ 2015-04-21  4:31 UTC (permalink / raw)
  To: u-boot

Hi Sjoerd,

On Mon, Apr 13, 2015 at 3:54 PM, Sjoerd Simons
<sjoerd.simons@collabora.co.uk> wrote:
> Make the sandbox setup more generic/examplary by including
> config_distro_defaults.h and config_distro_bootcmd.h.
>
> Among other things this makes it easy to test whether images will boot
> though with the standard distro bootcmds by running e.g:
>   u-boot -c 'host bind 0 myimage.img ; boot'
>
> By default there are 2 target host devices to emulate device with
> multiple storage devices (e.g. internal ("host 0") and external
> ("host 1") and verify that the prioritization and fallbacks do work
> correctly.
>
> Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
> Reviewed by: Simon Glass <sjg@chromium.org>
> Acked-by: Simon Glass <sjg@chromium.org>

For me this has broken the build of the "env" target.

I get this following error:

In file included from /home/joe/u-boot/tools/env/fw_env.c:117:
/usr/include/search.h:173: error: expected "}" before
"BOOT_TARGET_DEVICES_references_HOST_without_CONFIG_SANDBOX"
make[2]: *** [tools/env/fw_env.o] Error 1
make[1]: *** [env] Error 2
make: *** [sub-make] Error 2

I haven't looked closely at the header you've added. Any quick
thoughts about what's going on?

Thanks,
-Joe

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

* [U-Boot] [PATCH v4 9/9] sandbox: add config_distro_defaults and config_distro_bootcmd
  2015-04-21  4:31   ` Joe Hershberger
@ 2015-04-21  8:13     ` Sjoerd Simons
  2015-04-23 15:15       ` Simon Glass
  0 siblings, 1 reply; 26+ messages in thread
From: Sjoerd Simons @ 2015-04-21  8:13 UTC (permalink / raw)
  To: u-boot

Hey Joe,

On Mon, 2015-04-20 at 23:31 -0500, Joe Hershberger wrote:
> Hi Sjoerd,
> 
> On Mon, Apr 13, 2015 at 3:54 PM, Sjoerd Simons
> <sjoerd.simons@collabora.co.uk> wrote:
> > Make the sandbox setup more generic/examplary by including
> > config_distro_defaults.h and config_distro_bootcmd.h.
> >
> > Among other things this makes it easy to test whether images will boot
> > though with the standard distro bootcmds by running e.g:
> >   u-boot -c 'host bind 0 myimage.img ; boot'
> >
> > By default there are 2 target host devices to emulate device with
> > multiple storage devices (e.g. internal ("host 0") and external
> > ("host 1") and verify that the prioritization and fallbacks do work
> > correctly.
> >
> > Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
> > Reviewed by: Simon Glass <sjg@chromium.org>
> > Acked-by: Simon Glass <sjg@chromium.org>
> 
> For me this has broken the build of the "env" target.
> 
> I get this following error:
> 
> In file included from /home/joe/u-boot/tools/env/fw_env.c:117:
> /usr/include/search.h:173: error: expected "}" before
> "BOOT_TARGET_DEVICES_references_HOST_without_CONFIG_SANDBOX"
> make[2]: *** [tools/env/fw_env.o] Error 1
> make[1]: *** [env] Error 2
> make: *** [sub-make] Error 2
> 
> I haven't looked closely at the header you've added. Any quick
> thoughts about what's going on?

Hrm, the problem seems to be that when running "make env" CONFIG_SANDBOX
isn't defined, so you get the error triggered above.

Essentially that error is trying to tell you - You're trying to build a
config which will cause your boot environment to have commands not
supported by this build..

I haven't dug out what exactly causes this difference in definitions but
it does make me wonder whether we should trigger on something more
conventional like CONFIG_CMD_HOST (similar to e.g. CONFIG_CMD_MMC)
rather then CONFIG_SANDBOX


-- 
Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Collabora Ltd.

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

* [U-Boot] [PATCH v4 9/9] sandbox: add config_distro_defaults and config_distro_bootcmd
  2015-04-21  8:13     ` Sjoerd Simons
@ 2015-04-23 15:15       ` Simon Glass
  0 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2015-04-23 15:15 UTC (permalink / raw)
  To: u-boot

Hi,

On 21 April 2015 at 02:13, Sjoerd Simons <sjoerd.simons@collabora.co.uk> wrote:
> Hey Joe,
>
> On Mon, 2015-04-20 at 23:31 -0500, Joe Hershberger wrote:
>> Hi Sjoerd,
>>
>> On Mon, Apr 13, 2015 at 3:54 PM, Sjoerd Simons
>> <sjoerd.simons@collabora.co.uk> wrote:
>> > Make the sandbox setup more generic/examplary by including
>> > config_distro_defaults.h and config_distro_bootcmd.h.
>> >
>> > Among other things this makes it easy to test whether images will boot
>> > though with the standard distro bootcmds by running e.g:
>> >   u-boot -c 'host bind 0 myimage.img ; boot'
>> >
>> > By default there are 2 target host devices to emulate device with
>> > multiple storage devices (e.g. internal ("host 0") and external
>> > ("host 1") and verify that the prioritization and fallbacks do work
>> > correctly.
>> >
>> > Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
>> > Reviewed by: Simon Glass <sjg@chromium.org>
>> > Acked-by: Simon Glass <sjg@chromium.org>
>>
>> For me this has broken the build of the "env" target.
>>
>> I get this following error:
>>
>> In file included from /home/joe/u-boot/tools/env/fw_env.c:117:
>> /usr/include/search.h:173: error: expected "}" before
>> "BOOT_TARGET_DEVICES_references_HOST_without_CONFIG_SANDBOX"
>> make[2]: *** [tools/env/fw_env.o] Error 1
>> make[1]: *** [env] Error 2
>> make: *** [sub-make] Error 2
>>
>> I haven't looked closely at the header you've added. Any quick
>> thoughts about what's going on?
>
> Hrm, the problem seems to be that when running "make env" CONFIG_SANDBOX
> isn't defined, so you get the error triggered above.
>
> Essentially that error is trying to tell you - You're trying to build a
> config which will cause your boot environment to have commands not
> supported by this build..
>
> I haven't dug out what exactly causes this difference in definitions but
> it does make me wonder whether we should trigger on something more
> conventional like CONFIG_CMD_HOST (similar to e.g. CONFIG_CMD_MMC)
> rather then CONFIG_SANDBOX

That sounds reasonable. Also I think it would be good to add a flag to
enable the distro boot feature. At present I always get the bootdelay
message and then an error:

U-Boot 2015.04-00423-g183ad88 (Apr 23 2015 - 09:05:12)

DRAM:  128 MiB
Using default environment

In:    serial
Out:   lcd
Err:   lcd
Net:   Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot:  0
Not bound to a backing file
Not bound to a backing file

I did a similar thing with LCD since it was similarly invasive.

Regards,
Simon

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

end of thread, other threads:[~2015-04-23 15:15 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-13 20:54 [U-Boot] [PATCH v4 0/9] Allow sandbox to use config_distro_bootcmd Sjoerd Simons
2015-04-13 20:54 ` [U-Boot] [PATCH v4 1/9] sandbox: only do sandboxfs for hostfs interface Sjoerd Simons
2015-04-19 13:29   ` Simon Glass
2015-04-13 20:54 ` [U-Boot] [PATCH v4 2/9] sandbox: Split bootm code out into lib/bootm Sjoerd Simons
2015-04-19 13:30   ` Simon Glass
2015-04-13 20:54 ` [U-Boot] [PATCH v4 3/9] sandbox: Add support for bootz Sjoerd Simons
2015-04-19 13:30   ` Simon Glass
2015-04-13 20:54 ` [U-Boot] [PATCH v4 4/9] sandbox: Renamed sb command to host Sjoerd Simons
2015-04-19 13:30   ` Simon Glass
2015-04-13 20:54 ` [U-Boot] [PATCH v4 5/9] sandbox: Implement host dev [device] Sjoerd Simons
2015-04-19 13:30   ` Simon Glass
2015-04-13 20:54 ` [U-Boot] [PATCH v4 6/9] config_distro_bootcmd.h: Add shared block definition for the host interface Sjoerd Simons
2015-04-14  2:21   ` Dennis Gilmore
2015-04-19 13:30     ` Simon Glass
2015-04-13 20:54 ` [U-Boot] [PATCH v4 7/9] pxe: Ensure all memory access is to mapped memory Sjoerd Simons
2015-04-19 13:30   ` Simon Glass
2015-04-13 20:54 ` [U-Boot] [PATCH v4 8/9] config: Add default client arch defines for intel architectures Sjoerd Simons
2015-04-19 13:30   ` Simon Glass
2015-04-13 20:54 ` [U-Boot] [PATCH v4 9/9] sandbox: add config_distro_defaults and config_distro_bootcmd Sjoerd Simons
2015-04-13 22:07   ` Simon Glass
2015-04-13 22:28     ` Joe Hershberger
2015-04-13 22:34       ` Simon Glass
2015-04-19 13:30         ` Simon Glass
2015-04-21  4:31   ` Joe Hershberger
2015-04-21  8:13     ` Sjoerd Simons
2015-04-23 15:15       ` Simon Glass

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.