public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Simon Glass <sjg@chromium.org>
To: U-Boot Mailing List <u-boot@lists.denx.de>
Cc: "Tom Rini" <trini@konsulko.com>,
	"Albert Aribaud" <albert.u.boot@aribaud.net>,
	"Ilias Apalodimas" <ilias.apalodimas@linaro.org>,
	"Simon Glass" <sjg@chromium.org>,
	"Andre Przywara" <andre.przywara@arm.com>,
	"Pierre-Clément Tosi" <ptosi@google.com>
Subject: [PATCH 07/13] qemu: Update qfw command to use addresses
Date: Sat, 28 Jan 2023 15:00:22 -0700	[thread overview]
Message-ID: <20230128220028.53575-8-sjg@chromium.org> (raw)
In-Reply-To: <20230128220028.53575-1-sjg@chromium.org>

This uses casts all over the place. Use the correct type so that these
can be avoided, as is done with other commands. Also simplify a few
conditionals.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 cmd/qfw.c | 42 +++++++++++++++++++++---------------------
 1 file changed, 21 insertions(+), 21 deletions(-)

diff --git a/cmd/qfw.c b/cmd/qfw.c
index 0c49c6074e1..8837911d99f 100644
--- a/cmd/qfw.c
+++ b/cmd/qfw.c
@@ -7,6 +7,7 @@
 #include <command.h>
 #include <env.h>
 #include <errno.h>
+#include <mapmem.h>
 #include <qfw.h>
 #include <dm.h>
 
@@ -17,7 +18,7 @@ static struct udevice *qfw_dev;
  * to 'load_addr', initrd to 'initrd_addr' and kernel command
  * line using qemu fw_cfg interface.
  */
-static int qemu_fwcfg_cmd_setup_kernel(void *load_addr, void *initrd_addr)
+int qemu_fwcfg_cmd_setup_kernel(ulong load_addr, ulong initrd_addr)
 {
 	char *data_addr;
 	uint32_t setup_size, kernel_size, cmdline_size, initrd_size;
@@ -25,13 +26,13 @@ static int qemu_fwcfg_cmd_setup_kernel(void *load_addr, void *initrd_addr)
 	qfw_read_entry(qfw_dev, FW_CFG_SETUP_SIZE, 4, &setup_size);
 	qfw_read_entry(qfw_dev, FW_CFG_KERNEL_SIZE, 4, &kernel_size);
 
-	if (kernel_size == 0) {
+	if (!kernel_size) {
 		printf("fatal: no kernel available\n");
-		return CMD_RET_FAILURE;
+		return -ENOENT;
 	}
 
-	data_addr = load_addr;
-	if (setup_size != 0) {
+	data_addr = map_sysmem(load_addr, 0);
+	if (setup_size) {
 		qfw_read_entry(qfw_dev, FW_CFG_SETUP_DATA,
 			       le32_to_cpu(setup_size), data_addr);
 		data_addr += le32_to_cpu(setup_size);
@@ -42,9 +43,9 @@ static int qemu_fwcfg_cmd_setup_kernel(void *load_addr, void *initrd_addr)
 	data_addr += le32_to_cpu(kernel_size);
 	env_set_hex("filesize", le32_to_cpu(kernel_size));
 
-	data_addr = initrd_addr;
+	data_addr = map_sysmem(initrd_addr, 0);
 	qfw_read_entry(qfw_dev, FW_CFG_INITRD_SIZE, 4, &initrd_size);
-	if (initrd_size == 0) {
+	if (!initrd_size) {
 		printf("warning: no initrd available\n");
 	} else {
 		qfw_read_entry(qfw_dev, FW_CFG_INITRD_DATA,
@@ -61,17 +62,16 @@ static int qemu_fwcfg_cmd_setup_kernel(void *load_addr, void *initrd_addr)
 		 * if kernel cmdline only contains '\0', (e.g. no -append
 		 * when invoking qemu), do not update bootargs
 		 */
-		if (*data_addr != '\0') {
+		if (*data_addr) {
 			if (env_set("bootargs", data_addr) < 0)
 				printf("warning: unable to change bootargs\n");
 		}
 	}
 
-	printf("loading kernel to address %p size %x", load_addr,
+	printf("loading kernel to address %lx size %x", load_addr,
 	       le32_to_cpu(kernel_size));
 	if (initrd_size)
-		printf(" initrd %p size %x\n",
-		       initrd_addr,
+		printf(" initrd %lx size %x\n", initrd_addr,
 		       le32_to_cpu(initrd_size));
 	else
 		printf("\n");
@@ -119,28 +119,28 @@ static int qemu_fwcfg_do_load(struct cmd_tbl *cmdtp, int flag,
 			      int argc, char *const argv[])
 {
 	char *env;
-	void *load_addr;
-	void *initrd_addr;
+	ulong load_addr;
+	ulong initrd_addr;
 
 	env = env_get("loadaddr");
 	load_addr = env ?
-		(void *)hextoul(env, NULL) :
-		(void *)CONFIG_SYS_LOAD_ADDR;
+		hextoul(env, NULL) :
+		CONFIG_SYS_LOAD_ADDR;
 
 	env = env_get("ramdiskaddr");
 	initrd_addr = env ?
-		(void *)hextoul(env, NULL) :
+		hextoul(env, NULL) :
 #ifdef CFG_RAMDISK_ADDR
-		(void *)CFG_RAMDISK_ADDR;
+		CFG_RAMDISK_ADDR;
 #else
-		NULL;
+		0;
 #endif
 
 	if (argc == 2) {
-		load_addr = (void *)hextoul(argv[0], NULL);
-		initrd_addr = (void *)hextoul(argv[1], NULL);
+		load_addr = hextoul(argv[0], NULL);
+		initrd_addr = hextoul(argv[1], NULL);
 	} else if (argc == 1) {
-		load_addr = (void *)hextoul(argv[0], NULL);
+		load_addr = hextoul(argv[0], NULL);
 	}
 
 	if (!load_addr || !initrd_addr) {
-- 
2.39.1.456.gfc5497dd1b-goog


  parent reply	other threads:[~2023-01-28 22:02 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-28 22:00 [PATCH 00/13] bootstd: Update ARM QEMU for standard boot and environment Simon Glass
2023-01-28 22:00 ` [PATCH 01/13] log: Add a category for filesystems Simon Glass
2023-02-07 16:51   ` Tom Rini
2023-01-28 22:00 ` [PATCH 02/13] virtio: Add some debugging Simon Glass
2023-02-07 16:51   ` Tom Rini
2023-01-28 22:00 ` [PATCH 03/13] bootstd: Allow enabling BOOTSTD_FULL without needing EXPO Simon Glass
2023-02-07 16:51   ` Tom Rini
2023-01-28 22:00 ` [PATCH 04/13] bootstd: Probe the block device before use Simon Glass
2023-02-07 16:51   ` Tom Rini
2023-01-28 22:00 ` [PATCH 05/13] bootstd: Correct virtio block-device handling Simon Glass
2023-02-07 16:51   ` Tom Rini
2023-01-28 22:00 ` [PATCH 06/13] bootstd: Add some default filesystems and commands Simon Glass
2023-02-07 16:51   ` Tom Rini
2023-01-28 22:00 ` Simon Glass [this message]
2023-02-07 16:52   ` [PATCH 07/13] qemu: Update qfw command to use addresses Tom Rini
2023-01-28 22:00 ` [PATCH 08/13] qemu: Move qfw kernel setup into a common file Simon Glass
2023-02-07 16:52   ` Tom Rini
2023-01-28 22:00 ` [PATCH 09/13] qemu: Add a bootdev for qfw Simon Glass
2023-02-07 16:52   ` Tom Rini
2023-01-28 22:00 ` [PATCH 10/13] qemu: Add a bootmeth " Simon Glass
2023-02-07 16:52   ` Tom Rini
2023-01-28 22:00 ` [PATCH 11/13] arm: qemu: Switch to standard boot Simon Glass
2023-02-07 16:52   ` Tom Rini
2023-01-28 22:00 ` [PATCH 12/13] arm: qemu: Switch to a text environment Simon Glass
2023-02-07 16:52   ` Tom Rini
2023-01-28 22:00 ` [PATCH 13/13] arm: qemu: Move GUIDs to the C file Simon Glass
2023-02-07 16:52   ` Tom Rini
2023-01-30 17:19 ` [PATCH 00/13] bootstd: Update ARM QEMU for standard boot and environment Tom Rini
2023-01-31 14:16   ` Simon Glass

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230128220028.53575-8-sjg@chromium.org \
    --to=sjg@chromium.org \
    --cc=albert.u.boot@aribaud.net \
    --cc=andre.przywara@arm.com \
    --cc=ilias.apalodimas@linaro.org \
    --cc=ptosi@google.com \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox