diff mbox series

[1/3] qfw: store loaded file size in environment variable

Message ID 20221010170122.1527138-2-andre.przywara@arm.com
State Accepted
Delegated to: Tom Rini
Headers show
Series qemu: allow auto-booting through firmware device | expand

Commit Message

Andre Przywara Oct. 10, 2022, 5:01 p.m. UTC
At the moment the QEMU firmware command just prints the size of the
loaded binaries on the console.
To go with all the other load methods, and many boot scripts'
expectations, also store the size of the file loaded last in the
environment variable "filesize".
We first put the kernel size in there, but overwrite this with the
initrd size, should we have one, because this is probably the more
prominent user of $filesize (in the booti or bootz command).

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
 cmd/qfw.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Tom Rini Oct. 24, 2022, 12:22 p.m. UTC | #1
On Mon, Oct 10, 2022 at 06:01:20PM +0100, Andre Przywara wrote:

> At the moment the QEMU firmware command just prints the size of the
> loaded binaries on the console.
> To go with all the other load methods, and many boot scripts'
> expectations, also store the size of the file loaded last in the
> environment variable "filesize".
> We first put the kernel size in there, but overwrite this with the
> initrd size, should we have one, because this is probably the more
> prominent user of $filesize (in the booti or bootz command).
> 
> Signed-off-by: Andre Przywara <andre.przywara@arm.com>

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

Patch

diff --git a/cmd/qfw.c b/cmd/qfw.c
index ccbc967ca9f..c61001b771d 100644
--- a/cmd/qfw.c
+++ b/cmd/qfw.c
@@ -40,6 +40,7 @@  static int qemu_fwcfg_cmd_setup_kernel(void *load_addr, void *initrd_addr)
 	qfw_read_entry(qfw_dev, FW_CFG_KERNEL_DATA,
 		       le32_to_cpu(kernel_size), data_addr);
 	data_addr += le32_to_cpu(kernel_size);
+	env_set_hex("filesize", le32_to_cpu(kernel_size));
 
 	data_addr = initrd_addr;
 	qfw_read_entry(qfw_dev, FW_CFG_INITRD_SIZE, 4, &initrd_size);
@@ -49,6 +50,7 @@  static int qemu_fwcfg_cmd_setup_kernel(void *load_addr, void *initrd_addr)
 		qfw_read_entry(qfw_dev, FW_CFG_INITRD_DATA,
 			       le32_to_cpu(initrd_size), data_addr);
 		data_addr += le32_to_cpu(initrd_size);
+		env_set_hex("filesize", le32_to_cpu(initrd_size));
 	}
 
 	qfw_read_entry(qfw_dev, FW_CFG_CMDLINE_SIZE, 4, &cmdline_size);