diff mbox

[U-Boot,v4,8/8] x86: qemu: add documentaion for the fw_cfg interface

Message ID 1451530525-30913-9-git-send-email-yanmiaobest@gmail.com
State Superseded
Delegated to: Bin Meng
Headers show

Commit Message

Miao Yan Dec. 31, 2015, 2:55 a.m. UTC
Document the usage of 'fw' command

Signed-off-by: Miao Yan <yanmiaobest@gmail.com>
---
Changes in v4:
  - limit maximum supported cpu number to 32

 doc/README.x86 | 35 ++++++++++++++++++++++++++++++++---
 1 file changed, 32 insertions(+), 3 deletions(-)

Comments

Simon Glass Dec. 31, 2015, 5:08 a.m. UTC | #1
Hi Miao,

On 30 December 2015 at 19:55, Miao Yan <yanmiaobest@gmail.com> wrote:
> Document the usage of 'fw' command
>
> Signed-off-by: Miao Yan <yanmiaobest@gmail.com>
> ---
> Changes in v4:
>   - limit maximum supported cpu number to 32
>
>  doc/README.x86 | 35 ++++++++++++++++++++++++++++++++---
>  1 file changed, 32 insertions(+), 3 deletions(-)
>
> diff --git a/doc/README.x86 b/doc/README.x86
> index 1271e5e..aa3010d 100644
> --- a/doc/README.x86
> +++ b/doc/README.x86
> @@ -295,9 +295,38 @@ show QEMU's VGA console window. Note this will disable QEMU's serial output.
>  If you want to check both consoles, use '-serial stdio'.
>
>  Multicore is also supported by QEMU via '-smp n' where n is the number of cores
> -to instantiate. Currently the default U-Boot built for QEMU supports 2 cores.
> -In order to support more cores, you need add additional cpu nodes in the device
> -tree and change CONFIG_MAX_CPUS accordingly.

This is a little unclear, because it seems like your code actually
fixes this by automatically supporting more CPUs.

> +to instantiate. Note, due space limitations in dtb, the maximum supported CPU
> +number is 32.
> +
> +The fw_cfg interface in QEMU also provides information about kernel data, initrd
> +,command-line arguments and more. U-Boot supports directly accessing these informtion
> +from fw_cfg interface, this saves the time of loading them from hard disk or
> +network again, through emulated devices. To use it , simply providing them in
> +QEMU command line:
> +
> +$ qemu-system-i386 -nographic -bios path/to/u-boot.rom -m 1024 -kernel /path/to/bzImage
> +    -append 'root=/dev/ram console=ttyS0' -initrd /path/to/initrd -smp 8
> +
> +Note: -initrd and -smp are both optional
> +
> +Then start QEMU, in U-Boot command line use the following U-Boot command to setup kernel:
> +
> + => fw
> +fw - QEMU firmware interface
> +
> +Usage:
> +fw <command>
> +    - list                             : print firmware(s) currently loaded
> +    - cpus                             : print online cpu number
> +    - load <kernel addr> <initrd addr> : load kernel and initrd (if any) and setup for zboot
> +
> +=> fw load
> +loading kernel to address 02000000 initrd 04000000, size 0x1b1ab50
> +
> +Here the kernel (bzImage) is loaded to 02000000 and initrd is to 0x04000000. Then, 'zboot'
> +can be used to boot the kernel:
> +
> +=> zboot 02000000 - 04000000 1b1ab50
>
>  CPU Microcode
>  -------------
> --
> 1.9.1
>

Great documentation!

Regards,
Simon
Bin Meng Jan. 4, 2016, 4:06 a.m. UTC | #2
Hi Miao,

On Thu, Dec 31, 2015 at 10:55 AM, Miao Yan <yanmiaobest@gmail.com> wrote:
> Document the usage of 'fw' command
>
> Signed-off-by: Miao Yan <yanmiaobest@gmail.com>
> ---
> Changes in v4:
>   - limit maximum supported cpu number to 32
>
>  doc/README.x86 | 35 ++++++++++++++++++++++++++++++++---
>  1 file changed, 32 insertions(+), 3 deletions(-)
>
> diff --git a/doc/README.x86 b/doc/README.x86
> index 1271e5e..aa3010d 100644
> --- a/doc/README.x86
> +++ b/doc/README.x86
> @@ -295,9 +295,38 @@ show QEMU's VGA console window. Note this will disable QEMU's serial output.
>  If you want to check both consoles, use '-serial stdio'.
>
>  Multicore is also supported by QEMU via '-smp n' where n is the number of cores
> -to instantiate. Currently the default U-Boot built for QEMU supports 2 cores.
> -In order to support more cores, you need add additional cpu nodes in the device
> -tree and change CONFIG_MAX_CPUS accordingly.
> +to instantiate. Note, due space limitations in dtb, the maximum supported CPU
> +number is 32.
> +
> +The fw_cfg interface in QEMU also provides information about kernel data, initrd
> +,command-line arguments and more. U-Boot supports directly accessing these informtion

Please move the ',' to the end of the line above

> +from fw_cfg interface, this saves the time of loading them from hard disk or
> +network again, through emulated devices. To use it , simply providing them in
> +QEMU command line:
> +
> +$ qemu-system-i386 -nographic -bios path/to/u-boot.rom -m 1024 -kernel /path/to/bzImage
> +    -append 'root=/dev/ram console=ttyS0' -initrd /path/to/initrd -smp 8
> +
> +Note: -initrd and -smp are both optional
> +
> +Then start QEMU, in U-Boot command line use the following U-Boot command to setup kernel:
> +
> + => fw
> +fw - QEMU firmware interface
> +
> +Usage:
> +fw <command>
> +    - list                             : print firmware(s) currently loaded
> +    - cpus                             : print online cpu number
> +    - load <kernel addr> <initrd addr> : load kernel and initrd (if any) and setup for zboot
> +
> +=> fw load
> +loading kernel to address 02000000 initrd 04000000, size 0x1b1ab50

This 'size' looks confusing as it is unclear which size is this for.
So we may need enhance 'fw load' to print kernel size as well,
something like:

loading kernel to address 02000000 size xxxxxxxx, initrd 04000000 size
xxxxxxxx. Note you can omit 0x in the size to keep consitency.

> +
> +Here the kernel (bzImage) is loaded to 02000000 and initrd is to 0x04000000. Then, 'zboot'
> +can be used to boot the kernel:
> +
> +=> zboot 02000000 - 04000000 1b1ab50
>
>  CPU Microcode
>  -------------
> --
> 1.9.1
>
diff mbox

Patch

diff --git a/doc/README.x86 b/doc/README.x86
index 1271e5e..aa3010d 100644
--- a/doc/README.x86
+++ b/doc/README.x86
@@ -295,9 +295,38 @@  show QEMU's VGA console window. Note this will disable QEMU's serial output.
 If you want to check both consoles, use '-serial stdio'.
 
 Multicore is also supported by QEMU via '-smp n' where n is the number of cores
-to instantiate. Currently the default U-Boot built for QEMU supports 2 cores.
-In order to support more cores, you need add additional cpu nodes in the device
-tree and change CONFIG_MAX_CPUS accordingly.
+to instantiate. Note, due space limitations in dtb, the maximum supported CPU
+number is 32.
+
+The fw_cfg interface in QEMU also provides information about kernel data, initrd
+,command-line arguments and more. U-Boot supports directly accessing these informtion
+from fw_cfg interface, this saves the time of loading them from hard disk or
+network again, through emulated devices. To use it , simply providing them in
+QEMU command line:
+
+$ qemu-system-i386 -nographic -bios path/to/u-boot.rom -m 1024 -kernel /path/to/bzImage
+    -append 'root=/dev/ram console=ttyS0' -initrd /path/to/initrd -smp 8
+
+Note: -initrd and -smp are both optional
+
+Then start QEMU, in U-Boot command line use the following U-Boot command to setup kernel:
+
+ => fw
+fw - QEMU firmware interface
+
+Usage:
+fw <command>
+    - list                             : print firmware(s) currently loaded
+    - cpus                             : print online cpu number
+    - load <kernel addr> <initrd addr> : load kernel and initrd (if any) and setup for zboot
+
+=> fw load
+loading kernel to address 02000000 initrd 04000000, size 0x1b1ab50
+
+Here the kernel (bzImage) is loaded to 02000000 and initrd is to 0x04000000. Then, 'zboot'
+can be used to boot the kernel:
+
+=> zboot 02000000 - 04000000 1b1ab50
 
 CPU Microcode
 -------------