qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] RFC: Add a new boot parameter to set delay time before seabios retry to boot
@ 2012-09-06  4:15 Amos Kong
  2012-09-06  6:21 ` Gleb Natapov
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Amos Kong @ 2012-09-06  4:15 UTC (permalink / raw)
  To: Anthony Liguori; +Cc: Kevin O'Connor, seabios, qemu-devel, Gleb Natapov

Hi all,

Seabios supports automatically reboot after X second delay on failed 
boot [1],
I want to add a parameter for qemu, it's used put a boot parameter into 
romfile
for seabios to set the delay time.

# qemu ... -boot order=n,menu=on,delay=5 ...


Comments & suggestions ? Thanks!


[1] commit b8fcf46826e77c835da0ad8127a17895bb2e2fca
Author: Kevin O'Connor <kevin@koconnor.net>
Date:   Sat May 12 22:12:22 2012 -0400

     Automatically reboot after 60 second delay on failed boot.

     If no valid boot devices are found, display the error for 60 seconds
     (by default) and then reboot.  This enables a periodic retry in case
     one of the boot devices is still coming online.

     Signed-off-by: Kevin O'Connor <kevin@koconnor.net>



-- 
			Amos.

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

* Re: [Qemu-devel] RFC: Add a new boot parameter to set delay time before seabios retry to boot
  2012-09-06  4:15 [Qemu-devel] RFC: Add a new boot parameter to set delay time before seabios retry to boot Amos Kong
@ 2012-09-06  6:21 ` Gleb Natapov
  2012-09-06 12:39 ` [Qemu-devel] [PATCH] add a boot parameter to set reboot timeout Amos Kong
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 11+ messages in thread
From: Gleb Natapov @ 2012-09-06  6:21 UTC (permalink / raw)
  To: Amos Kong; +Cc: Anthony Liguori, Kevin O'Connor, seabios, qemu-devel

On Thu, Sep 06, 2012 at 12:15:13PM +0800, Amos Kong wrote:
> Hi all,
> 
> Seabios supports automatically reboot after X second delay on failed
> boot [1],
> I want to add a parameter for qemu, it's used put a boot parameter
> into romfile
> for seabios to set the delay time.
> 
> # qemu ... -boot order=n,menu=on,delay=5 ...
> 
> 
> Comments & suggestions ? Thanks!
> 
It is not cleat what "delay" mean. May be call it "reboot-timeout".

> 
> [1] commit b8fcf46826e77c835da0ad8127a17895bb2e2fca
> Author: Kevin O'Connor <kevin@koconnor.net>
> Date:   Sat May 12 22:12:22 2012 -0400
> 
>     Automatically reboot after 60 second delay on failed boot.
> 
>     If no valid boot devices are found, display the error for 60 seconds
>     (by default) and then reboot.  This enables a periodic retry in case
>     one of the boot devices is still coming online.
> 
>     Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
> 
> 
> 
> -- 
> 			Amos.

--
			Gleb.

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

* [Qemu-devel] [PATCH] add a boot parameter to set reboot timeout
  2012-09-06  4:15 [Qemu-devel] RFC: Add a new boot parameter to set delay time before seabios retry to boot Amos Kong
  2012-09-06  6:21 ` Gleb Natapov
@ 2012-09-06 12:39 ` Amos Kong
  2012-09-06 12:46   ` Gleb Natapov
  2012-09-06 13:36 ` [Qemu-devel] RFC: Add a new boot parameter to set delay time before seabios retry to boot Anthony Liguori
  2012-09-07  3:11 ` [Qemu-devel] [PATCH v2] add a boot parameter to set reboot timeout Amos Kong
  3 siblings, 1 reply; 11+ messages in thread
From: Amos Kong @ 2012-09-06 12:39 UTC (permalink / raw)
  To: qemu-devel; +Cc: aliguori, Amos Kong, gleb

Added an option to let qemu transfer a configuration file to bios,
"etc/boot-fail-wait", which could be specified by command
    -boot reboot-timeout=T
T have a max value of 0xffff, unit is ms.

With this option, guest will wait for a given time if not find
bootabled device, then reboot. This feature need the new seabios's
support.

Signed-off-by: Amos Kong <akong@redhat.com>
---
 hw/fw_cfg.c     |   29 +++++++++++++++++++++++++++++
 qemu-config.c   |    3 +++
 qemu-options.hx |   10 +++++++---
 vl.c            |    3 ++-
 4 files changed, 41 insertions(+), 4 deletions(-)

diff --git a/hw/fw_cfg.c b/hw/fw_cfg.c
index 7b3b576..a017184 100644
--- a/hw/fw_cfg.c
+++ b/hw/fw_cfg.c
@@ -183,6 +183,34 @@ static void fw_cfg_bootsplash(FWCfgState *s)
     }
 }
 
+static void fw_cfg_reboot(FWCfgState *s)
+{
+    int reboot_timeout = -1;
+    char *p;
+    const char *temp;
+
+    /* get user configuration */
+    QemuOptsList *plist = qemu_find_opts("boot-opts");
+    QemuOpts *opts = QTAILQ_FIRST(&plist->head);
+    if (opts != NULL) {
+        temp = qemu_opt_get(opts, "reboot-timeout");
+        if (temp != NULL) {
+            p = (char *)temp;
+            reboot_timeout = strtol(p, (char **)&p, 10);
+        }
+    }
+    if (reboot_timeout >= 0) {
+        /* validate the input */
+        if (reboot_timeout > 0xffff) {
+            error_report("reboot timeout is larger than 65535,"
+                         " force it to 65535.");
+            reboot_timeout = 0xffff;
+        }
+       fw_cfg_add_file(s, "etc/boot-fail-wait", g_memdup(&reboot_timeout, 4),
+                       4);
+    }
+}
+
 static void fw_cfg_write(FWCfgState *s, uint8_t value)
 {
     int arch = !!(s->cur_entry & FW_CFG_ARCH_LOCAL);
@@ -497,6 +525,7 @@ FWCfgState *fw_cfg_init(uint32_t ctl_port, uint32_t data_port,
     fw_cfg_add_i16(s, FW_CFG_MAX_CPUS, (uint16_t)max_cpus);
     fw_cfg_add_i16(s, FW_CFG_BOOT_MENU, (uint16_t)boot_menu);
     fw_cfg_bootsplash(s);
+    fw_cfg_reboot(s);
 
     s->machine_ready.notify = fw_cfg_machine_ready;
     qemu_add_machine_init_done_notifier(&s->machine_ready);
diff --git a/qemu-config.c b/qemu-config.c
index c05ffbc..b9f9e0f 100644
--- a/qemu-config.c
+++ b/qemu-config.c
@@ -638,6 +638,9 @@ QemuOptsList qemu_boot_opts = {
         }, {
             .name = "splash-time",
             .type = QEMU_OPT_STRING,
+        }, {
+            .name = "reboot-timeout",
+            .type = QEMU_OPT_STRING,
         },
         { /*End of list */ }
     },
diff --git a/qemu-options.hx b/qemu-options.hx
index 3c411c4..d50505b 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -339,13 +339,14 @@ ETEXI
 
 DEF("boot", HAS_ARG, QEMU_OPTION_boot,
     "-boot [order=drives][,once=drives][,menu=on|off]\n"
-    "      [,splash=sp_name][,splash-time=sp_time]\n"
+    "      [,splash=sp_name][,splash-time=sp_time][,reboot-timeout=rb_time]\n"
     "                'drives': floppy (a), hard disk (c), CD-ROM (d), network (n)\n"
     "                'sp_name': the file's name that would be passed to bios as logo picture, if menu=on\n"
-    "                'sp_time': the period that splash picture last if menu=on, unit is ms\n",
+    "                'sp_time': the period that splash picture last if menu=on, unit is ms\n"
+    "                'rb_timeout': the timeout before guest reboot when boot failed, unit is ms\n",
     QEMU_ARCH_ALL)
 STEXI
-@item -boot [order=@var{drives}][,once=@var{drives}][,menu=on|off][,splash=@var{sp_name}][,splash-time=@var{sp_time}]
+@item -boot [order=@var{drives}][,once=@var{drives}][,menu=on|off][,splash=@var{sp_name}][,splash-time=@var{sp_time}][,reboot-timeout=@var{rb_timeout}]
 @findex -boot
 Specify boot order @var{drives} as a string of drive letters. Valid
 drive letters depend on the target achitecture. The x86 PC uses: a, b
@@ -364,6 +365,9 @@ limitation: The splash file could be a jpeg file or a BMP file in 24 BPP
 format(true color). The resolution should be supported by the SVGA mode, so
 the recommended is 320x240, 640x480, 800x640.
 
+A timeout could be passed to bios, guest will pause for @var{rb_timeout} ms
+when boot failed, then reboot.
+
 @example
 # try to boot from network first, then from hard disk
 qemu-system-i386 -boot order=nc
diff --git a/vl.c b/vl.c
index 7c577fa..1bd9931 100644
--- a/vl.c
+++ b/vl.c
@@ -2622,7 +2622,8 @@ int main(int argc, char **argv, char **envp)
                 {
                     static const char * const params[] = {
                         "order", "once", "menu",
-                        "splash", "splash-time", NULL
+                        "splash", "splash-time",
+                        "reboot-timeout", NULL
                     };
                     char buf[sizeof(boot_devices)];
                     char *standard_boot_devices;
-- 
1.7.1

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

* Re: [Qemu-devel] [PATCH] add a boot parameter to set reboot timeout
  2012-09-06 12:39 ` [Qemu-devel] [PATCH] add a boot parameter to set reboot timeout Amos Kong
@ 2012-09-06 12:46   ` Gleb Natapov
  2012-09-07  2:41     ` Amos Kong
  0 siblings, 1 reply; 11+ messages in thread
From: Gleb Natapov @ 2012-09-06 12:46 UTC (permalink / raw)
  To: Amos Kong; +Cc: aliguori, qemu-devel

On Thu, Sep 06, 2012 at 08:39:24PM +0800, Amos Kong wrote:
> Added an option to let qemu transfer a configuration file to bios,
> "etc/boot-fail-wait", which could be specified by command
>     -boot reboot-timeout=T
> T have a max value of 0xffff, unit is ms.
> 
> With this option, guest will wait for a given time if not find
> bootabled device, then reboot. This feature need the new seabios's
> support.
> 
IMO default should be no reboot just like before Seabios change.

> Signed-off-by: Amos Kong <akong@redhat.com>
> ---
>  hw/fw_cfg.c     |   29 +++++++++++++++++++++++++++++
>  qemu-config.c   |    3 +++
>  qemu-options.hx |   10 +++++++---
>  vl.c            |    3 ++-
>  4 files changed, 41 insertions(+), 4 deletions(-)
> 
> diff --git a/hw/fw_cfg.c b/hw/fw_cfg.c
> index 7b3b576..a017184 100644
> --- a/hw/fw_cfg.c
> +++ b/hw/fw_cfg.c
> @@ -183,6 +183,34 @@ static void fw_cfg_bootsplash(FWCfgState *s)
>      }
>  }
>  
> +static void fw_cfg_reboot(FWCfgState *s)
> +{
> +    int reboot_timeout = -1;
> +    char *p;
> +    const char *temp;
> +
> +    /* get user configuration */
> +    QemuOptsList *plist = qemu_find_opts("boot-opts");
> +    QemuOpts *opts = QTAILQ_FIRST(&plist->head);
> +    if (opts != NULL) {
> +        temp = qemu_opt_get(opts, "reboot-timeout");
> +        if (temp != NULL) {
> +            p = (char *)temp;
> +            reboot_timeout = strtol(p, (char **)&p, 10);
> +        }
> +    }
> +    if (reboot_timeout >= 0) {
> +        /* validate the input */
> +        if (reboot_timeout > 0xffff) {
> +            error_report("reboot timeout is larger than 65535,"
> +                         " force it to 65535.");
> +            reboot_timeout = 0xffff;
> +        }
> +       fw_cfg_add_file(s, "etc/boot-fail-wait", g_memdup(&reboot_timeout, 4),
> +                       4);
> +    }
> +}
> +
>  static void fw_cfg_write(FWCfgState *s, uint8_t value)
>  {
>      int arch = !!(s->cur_entry & FW_CFG_ARCH_LOCAL);
> @@ -497,6 +525,7 @@ FWCfgState *fw_cfg_init(uint32_t ctl_port, uint32_t data_port,
>      fw_cfg_add_i16(s, FW_CFG_MAX_CPUS, (uint16_t)max_cpus);
>      fw_cfg_add_i16(s, FW_CFG_BOOT_MENU, (uint16_t)boot_menu);
>      fw_cfg_bootsplash(s);
> +    fw_cfg_reboot(s);
>  
>      s->machine_ready.notify = fw_cfg_machine_ready;
>      qemu_add_machine_init_done_notifier(&s->machine_ready);
> diff --git a/qemu-config.c b/qemu-config.c
> index c05ffbc..b9f9e0f 100644
> --- a/qemu-config.c
> +++ b/qemu-config.c
> @@ -638,6 +638,9 @@ QemuOptsList qemu_boot_opts = {
>          }, {
>              .name = "splash-time",
>              .type = QEMU_OPT_STRING,
> +        }, {
> +            .name = "reboot-timeout",
> +            .type = QEMU_OPT_STRING,
>          },
>          { /*End of list */ }
>      },
> diff --git a/qemu-options.hx b/qemu-options.hx
> index 3c411c4..d50505b 100644
> --- a/qemu-options.hx
> +++ b/qemu-options.hx
> @@ -339,13 +339,14 @@ ETEXI
>  
>  DEF("boot", HAS_ARG, QEMU_OPTION_boot,
>      "-boot [order=drives][,once=drives][,menu=on|off]\n"
> -    "      [,splash=sp_name][,splash-time=sp_time]\n"
> +    "      [,splash=sp_name][,splash-time=sp_time][,reboot-timeout=rb_time]\n"
>      "                'drives': floppy (a), hard disk (c), CD-ROM (d), network (n)\n"
>      "                'sp_name': the file's name that would be passed to bios as logo picture, if menu=on\n"
> -    "                'sp_time': the period that splash picture last if menu=on, unit is ms\n",
> +    "                'sp_time': the period that splash picture last if menu=on, unit is ms\n"
> +    "                'rb_timeout': the timeout before guest reboot when boot failed, unit is ms\n",
>      QEMU_ARCH_ALL)
>  STEXI
> -@item -boot [order=@var{drives}][,once=@var{drives}][,menu=on|off][,splash=@var{sp_name}][,splash-time=@var{sp_time}]
> +@item -boot [order=@var{drives}][,once=@var{drives}][,menu=on|off][,splash=@var{sp_name}][,splash-time=@var{sp_time}][,reboot-timeout=@var{rb_timeout}]
>  @findex -boot
>  Specify boot order @var{drives} as a string of drive letters. Valid
>  drive letters depend on the target achitecture. The x86 PC uses: a, b
> @@ -364,6 +365,9 @@ limitation: The splash file could be a jpeg file or a BMP file in 24 BPP
>  format(true color). The resolution should be supported by the SVGA mode, so
>  the recommended is 320x240, 640x480, 800x640.
>  
> +A timeout could be passed to bios, guest will pause for @var{rb_timeout} ms
> +when boot failed, then reboot.
> +
>  @example
>  # try to boot from network first, then from hard disk
>  qemu-system-i386 -boot order=nc
> diff --git a/vl.c b/vl.c
> index 7c577fa..1bd9931 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -2622,7 +2622,8 @@ int main(int argc, char **argv, char **envp)
>                  {
>                      static const char * const params[] = {
>                          "order", "once", "menu",
> -                        "splash", "splash-time", NULL
> +                        "splash", "splash-time",
> +                        "reboot-timeout", NULL
>                      };
>                      char buf[sizeof(boot_devices)];
>                      char *standard_boot_devices;
> -- 
> 1.7.1

--
			Gleb.

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

* Re: [Qemu-devel] RFC: Add a new boot parameter to set delay time before seabios retry to boot
  2012-09-06  4:15 [Qemu-devel] RFC: Add a new boot parameter to set delay time before seabios retry to boot Amos Kong
  2012-09-06  6:21 ` Gleb Natapov
  2012-09-06 12:39 ` [Qemu-devel] [PATCH] add a boot parameter to set reboot timeout Amos Kong
@ 2012-09-06 13:36 ` Anthony Liguori
  2012-09-06 21:25   ` [Qemu-devel] [SeaBIOS] " Steve Goodrich
  2012-09-07  1:10   ` [Qemu-devel] " Kevin O'Connor
  2012-09-07  3:11 ` [Qemu-devel] [PATCH v2] add a boot parameter to set reboot timeout Amos Kong
  3 siblings, 2 replies; 11+ messages in thread
From: Anthony Liguori @ 2012-09-06 13:36 UTC (permalink / raw)
  To: Amos Kong; +Cc: Kevin O'Connor, seabios, qemu-devel, Gleb Natapov

Amos Kong <akong@redhat.com> writes:

> Hi all,
>
> Seabios supports automatically reboot after X second delay on failed 
> boot [1],
> I want to add a parameter for qemu, it's used put a boot parameter into 
> romfile
> for seabios to set the delay time.
>
> # qemu ... -boot order=n,menu=on,delay=5 ...
>
>
> Comments & suggestions ? Thanks!

Why use a file and not just a key/value?

Regards,

Anthony Liguori

>
>
> [1] commit b8fcf46826e77c835da0ad8127a17895bb2e2fca
> Author: Kevin O'Connor <kevin@koconnor.net>
> Date:   Sat May 12 22:12:22 2012 -0400
>
>      Automatically reboot after 60 second delay on failed boot.
>
>      If no valid boot devices are found, display the error for 60 seconds
>      (by default) and then reboot.  This enables a periodic retry in case
>      one of the boot devices is still coming online.
>
>      Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
>
>
>
> -- 
> 			Amos.

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

* Re: [Qemu-devel] [SeaBIOS] RFC: Add a new boot parameter to set delay time before seabios retry to boot
  2012-09-06 13:36 ` [Qemu-devel] RFC: Add a new boot parameter to set delay time before seabios retry to boot Anthony Liguori
@ 2012-09-06 21:25   ` Steve Goodrich
  2012-09-07  1:10   ` [Qemu-devel] " Kevin O'Connor
  1 sibling, 0 replies; 11+ messages in thread
From: Steve Goodrich @ 2012-09-06 21:25 UTC (permalink / raw)
  To: Anthony Liguori; +Cc: seabios, Amos Kong, qemu-devel

I'm just guessing, but perhaps because a file can be changed without rebuilding SeaBIOS.

----- Original Message -----
From: "Anthony Liguori" <aliguori@us.ibm.com>
To: "Amos Kong" <akong@redhat.com>
Cc: seabios@seabios.org, qemu-devel@nongnu.org
Sent: Thursday, September 6, 2012 7:36:24 AM
Subject: Re: [SeaBIOS] [Qemu-devel] RFC: Add a new boot parameter to set	delay time before seabios retry to boot

Amos Kong <akong@redhat.com> writes:

> Hi all,
>
> Seabios supports automatically reboot after X second delay on failed 
> boot [1],
> I want to add a parameter for qemu, it's used put a boot parameter into 
> romfile
> for seabios to set the delay time.
>
> # qemu ... -boot order=n,menu=on,delay=5 ...
>
>
> Comments & suggestions ? Thanks!

Why use a file and not just a key/value?

Regards,

Anthony Liguori

>
>
> [1] commit b8fcf46826e77c835da0ad8127a17895bb2e2fca
> Author: Kevin O'Connor <kevin@koconnor.net>
> Date:   Sat May 12 22:12:22 2012 -0400
>
>      Automatically reboot after 60 second delay on failed boot.
>
>      If no valid boot devices are found, display the error for 60 seconds
>      (by default) and then reboot.  This enables a periodic retry in case
>      one of the boot devices is still coming online.
>
>      Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
>
>
>
> -- 
> 			Amos.


_______________________________________________
SeaBIOS mailing list
SeaBIOS@seabios.org
http://www.seabios.org/mailman/listinfo/seabios

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

* Re: [Qemu-devel] RFC: Add a new boot parameter to set delay time before seabios retry to boot
  2012-09-06 13:36 ` [Qemu-devel] RFC: Add a new boot parameter to set delay time before seabios retry to boot Anthony Liguori
  2012-09-06 21:25   ` [Qemu-devel] [SeaBIOS] " Steve Goodrich
@ 2012-09-07  1:10   ` Kevin O'Connor
  1 sibling, 0 replies; 11+ messages in thread
From: Kevin O'Connor @ 2012-09-07  1:10 UTC (permalink / raw)
  To: Anthony Liguori; +Cc: Amos Kong, seabios, qemu-devel, Gleb Natapov

On Thu, Sep 06, 2012 at 08:36:24AM -0500, Anthony Liguori wrote:
> Amos Kong <akong@redhat.com> writes:
> 
> > Hi all,
> >
> > Seabios supports automatically reboot after X second delay on failed 
> > boot [1],
> > I want to add a parameter for qemu, it's used put a boot parameter into 
> > romfile
> > for seabios to set the delay time.
> >
> > # qemu ... -boot order=n,menu=on,delay=5 ...
> >
> >
> > Comments & suggestions ? Thanks!
> 
> Why use a file and not just a key/value?

SeaBIOS already accepts a number of run-time config settings (such as
the reboot delay) via helper functions.  For example:

    u32 retrytime = romfile_loadint("etc/boot-fail-wait", 60*1000);

On QEMU, the above will pull the value from the fwcfg "file"
interface.  The "file" interface is used because SeaBIOS needs a
reliable way of obtaining a name, value size, and value.  It in no way
requires that there be a real file on the user's host machine.

-Kevin

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

* Re: [Qemu-devel] [PATCH] add a boot parameter to set reboot timeout
  2012-09-06 12:46   ` Gleb Natapov
@ 2012-09-07  2:41     ` Amos Kong
  0 siblings, 0 replies; 11+ messages in thread
From: Amos Kong @ 2012-09-07  2:41 UTC (permalink / raw)
  To: qemu-devel, seabios, Kevin O'Connor

On 06/09/12 20:46, Gleb Natapov wrote:
> On Thu, Sep 06, 2012 at 08:39:24PM +0800, Amos Kong wrote:
>> Added an option to let qemu transfer a configuration file to bios,
>> "etc/boot-fail-wait", which could be specified by command
>>      -boot reboot-timeout=T
>> T have a max value of 0xffff, unit is ms.
>>
>> With this option, guest will wait for a given time if not find
>> bootabled device, then reboot. This feature need the new seabios's
>> support.
>>
> IMO default should be no reboot just like before Seabios change.

Seabios reboots in 60s by default.

And I agree with you, will pass a '-1' to seabios by default,
then the default behavior of qemu is no-reboot.

Thanks, Amos

>> Signed-off-by: Amos Kong <akong@redhat.com>
>> ---
>>   hw/fw_cfg.c     |   29 +++++++++++++++++++++++++++++
>>   qemu-config.c   |    3 +++
>>   qemu-options.hx |   10 +++++++---
>>   vl.c            |    3 ++-
>>   4 files changed, 41 insertions(+), 4 deletions(-)
>>
>> diff --git a/hw/fw_cfg.c b/hw/fw_cfg.c
>> index 7b3b576..a017184 100644
>> --- a/hw/fw_cfg.c
>> +++ b/hw/fw_cfg.c
>> @@ -183,6 +183,34 @@ static void fw_cfg_bootsplash(FWCfgState *s)
>>       }
>>   }
>>
>> +static void fw_cfg_reboot(FWCfgState *s)
>> +{
>> +    int reboot_timeout = -1;
>> +    char *p;
>> +    const char *temp;
>> +
>> +    /* get user configuration */
>> +    QemuOptsList *plist = qemu_find_opts("boot-opts");
>> +    QemuOpts *opts = QTAILQ_FIRST(&plist->head);
>> +    if (opts != NULL) {
>> +        temp = qemu_opt_get(opts, "reboot-timeout");
>> +        if (temp != NULL) {
>> +            p = (char *)temp;
>> +            reboot_timeout = strtol(p, (char **)&p, 10);
>> +        }
>> +    }
>> +    if (reboot_timeout >= 0) {
>> +        /* validate the input */
>> +        if (reboot_timeout > 0xffff) {
>> +            error_report("reboot timeout is larger than 65535,"
>> +                         " force it to 65535.");
>> +            reboot_timeout = 0xffff;
>> +        }
>> +       fw_cfg_add_file(s, "etc/boot-fail-wait", g_memdup(&reboot_timeout, 4),
>> +                       4);
>> +    }
>> +}
>> +
>>   static void fw_cfg_write(FWCfgState *s, uint8_t value)
>>   {
>>       int arch = !!(s->cur_entry & FW_CFG_ARCH_LOCAL);
>> @@ -497,6 +525,7 @@ FWCfgState *fw_cfg_init(uint32_t ctl_port, uint32_t data_port,
>>       fw_cfg_add_i16(s, FW_CFG_MAX_CPUS, (uint16_t)max_cpus);
>>       fw_cfg_add_i16(s, FW_CFG_BOOT_MENU, (uint16_t)boot_menu);
>>       fw_cfg_bootsplash(s);
>> +    fw_cfg_reboot(s);
>>
>>       s->machine_ready.notify = fw_cfg_machine_ready;
>>       qemu_add_machine_init_done_notifier(&s->machine_ready);
>> diff --git a/qemu-config.c b/qemu-config.c
>> index c05ffbc..b9f9e0f 100644
>> --- a/qemu-config.c
>> +++ b/qemu-config.c
>> @@ -638,6 +638,9 @@ QemuOptsList qemu_boot_opts = {
>>           }, {
>>               .name = "splash-time",
>>               .type = QEMU_OPT_STRING,
>> +        }, {
>> +            .name = "reboot-timeout",
>> +            .type = QEMU_OPT_STRING,
>>           },
>>           { /*End of list */ }
>>       },
>> diff --git a/qemu-options.hx b/qemu-options.hx
>> index 3c411c4..d50505b 100644
>> --- a/qemu-options.hx
>> +++ b/qemu-options.hx
>> @@ -339,13 +339,14 @@ ETEXI
>>
>>   DEF("boot", HAS_ARG, QEMU_OPTION_boot,
>>       "-boot [order=drives][,once=drives][,menu=on|off]\n"
>> -    "      [,splash=sp_name][,splash-time=sp_time]\n"
>> +    "      [,splash=sp_name][,splash-time=sp_time][,reboot-timeout=rb_time]\n"
>>       "                'drives': floppy (a), hard disk (c), CD-ROM (d), network (n)\n"
>>       "                'sp_name': the file's name that would be passed to bios as logo picture, if menu=on\n"
>> -    "                'sp_time': the period that splash picture last if menu=on, unit is ms\n",
>> +    "                'sp_time': the period that splash picture last if menu=on, unit is ms\n"
>> +    "                'rb_timeout': the timeout before guest reboot when boot failed, unit is ms\n",
>>       QEMU_ARCH_ALL)
>>   STEXI
>> -@item -boot [order=@var{drives}][,once=@var{drives}][,menu=on|off][,splash=@var{sp_name}][,splash-time=@var{sp_time}]
>> +@item -boot [order=@var{drives}][,once=@var{drives}][,menu=on|off][,splash=@var{sp_name}][,splash-time=@var{sp_time}][,reboot-timeout=@var{rb_timeout}]
>>   @findex -boot
>>   Specify boot order @var{drives} as a string of drive letters. Valid
>>   drive letters depend on the target achitecture. The x86 PC uses: a, b
>> @@ -364,6 +365,9 @@ limitation: The splash file could be a jpeg file or a BMP file in 24 BPP
>>   format(true color). The resolution should be supported by the SVGA mode, so
>>   the recommended is 320x240, 640x480, 800x640.
>>
>> +A timeout could be passed to bios, guest will pause for @var{rb_timeout} ms
>> +when boot failed, then reboot.
>> +
>>   @example
>>   # try to boot from network first, then from hard disk
>>   qemu-system-i386 -boot order=nc
>> diff --git a/vl.c b/vl.c
>> index 7c577fa..1bd9931 100644
>> --- a/vl.c
>> +++ b/vl.c
>> @@ -2622,7 +2622,8 @@ int main(int argc, char **argv, char **envp)
>>                   {
>>                       static const char * const params[] = {
>>                           "order", "once", "menu",
>> -                        "splash", "splash-time", NULL
>> +                        "splash", "splash-time",
>> +                        "reboot-timeout", NULL
>>                       };
>>                       char buf[sizeof(boot_devices)];
>>                       char *standard_boot_devices;
>> --
>> 1.7.1
>
> --
> 			Gleb.
>

-- 
			Amos.

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

* [Qemu-devel] [PATCH v2] add a boot parameter to set reboot timeout
  2012-09-06  4:15 [Qemu-devel] RFC: Add a new boot parameter to set delay time before seabios retry to boot Amos Kong
                   ` (2 preceding siblings ...)
  2012-09-06 13:36 ` [Qemu-devel] RFC: Add a new boot parameter to set delay time before seabios retry to boot Anthony Liguori
@ 2012-09-07  3:11 ` Amos Kong
  2012-09-20  3:15   ` Amos Kong
  3 siblings, 1 reply; 11+ messages in thread
From: Amos Kong @ 2012-09-07  3:11 UTC (permalink / raw)
  To: qemu-devel; +Cc: aliguori, seabios, Amos Kong, gleb, kevin

Added an option to let qemu transfer a configuration file to bios,
"etc/boot-fail-wait", which could be specified by command
    -boot reboot-timeout=T
T have a max value of 0xffff, unit is ms.

With this option, guest will wait for a given time if not find
bootabled device, then reboot. If reboot-timeout is '-1', guest
will not reboot, qemu passes '-1' to bios by default.

This feature need the new seabios's support.

Seabios pulls the value from the fwcfg "file" interface, this
interface is used because SeaBIOS needs a reliable way of
obtaining a name, value size, and value. It in no way requires
that there be a real file on the user's host machine.

Signed-off-by: Amos Kong <akong@redhat.com>
---
v2: qemu passes '-1' to bios, guest will not reboot

---
 hw/fw_cfg.c     |   25 +++++++++++++++++++++++++
 qemu-config.c   |    3 +++
 qemu-options.hx |   12 +++++++++---
 vl.c            |    3 ++-
 4 files changed, 39 insertions(+), 4 deletions(-)

diff --git a/hw/fw_cfg.c b/hw/fw_cfg.c
index 7b3b576..dcde1a9 100644
--- a/hw/fw_cfg.c
+++ b/hw/fw_cfg.c
@@ -183,6 +183,30 @@ static void fw_cfg_bootsplash(FWCfgState *s)
     }
 }
 
+static void fw_cfg_reboot(FWCfgState *s)
+{
+    int reboot_timeout = -1;
+    char *p;
+    const char *temp;
+
+    /* get user configuration */
+    QemuOptsList *plist = qemu_find_opts("boot-opts");
+    QemuOpts *opts = QTAILQ_FIRST(&plist->head);
+    if (opts != NULL) {
+        temp = qemu_opt_get(opts, "reboot-timeout");
+        if (temp != NULL) {
+            p = (char *)temp;
+            reboot_timeout = strtol(p, (char **)&p, 10);
+        }
+    }
+    /* validate the input */
+    if (reboot_timeout > 0xffff) {
+        error_report("reboot timeout is larger than 65535, force it to 65535.");
+        reboot_timeout = 0xffff;
+    }
+    fw_cfg_add_file(s, "etc/boot-fail-wait", g_memdup(&reboot_timeout, 4), 4);
+}
+
 static void fw_cfg_write(FWCfgState *s, uint8_t value)
 {
     int arch = !!(s->cur_entry & FW_CFG_ARCH_LOCAL);
@@ -497,6 +521,7 @@ FWCfgState *fw_cfg_init(uint32_t ctl_port, uint32_t data_port,
     fw_cfg_add_i16(s, FW_CFG_MAX_CPUS, (uint16_t)max_cpus);
     fw_cfg_add_i16(s, FW_CFG_BOOT_MENU, (uint16_t)boot_menu);
     fw_cfg_bootsplash(s);
+    fw_cfg_reboot(s);
 
     s->machine_ready.notify = fw_cfg_machine_ready;
     qemu_add_machine_init_done_notifier(&s->machine_ready);
diff --git a/qemu-config.c b/qemu-config.c
index c05ffbc..b9f9e0f 100644
--- a/qemu-config.c
+++ b/qemu-config.c
@@ -638,6 +638,9 @@ QemuOptsList qemu_boot_opts = {
         }, {
             .name = "splash-time",
             .type = QEMU_OPT_STRING,
+        }, {
+            .name = "reboot-timeout",
+            .type = QEMU_OPT_STRING,
         },
         { /*End of list */ }
     },
diff --git a/qemu-options.hx b/qemu-options.hx
index 3c411c4..0249a60 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -339,13 +339,14 @@ ETEXI
 
 DEF("boot", HAS_ARG, QEMU_OPTION_boot,
     "-boot [order=drives][,once=drives][,menu=on|off]\n"
-    "      [,splash=sp_name][,splash-time=sp_time]\n"
+    "      [,splash=sp_name][,splash-time=sp_time][,reboot-timeout=rb_time]\n"
     "                'drives': floppy (a), hard disk (c), CD-ROM (d), network (n)\n"
     "                'sp_name': the file's name that would be passed to bios as logo picture, if menu=on\n"
-    "                'sp_time': the period that splash picture last if menu=on, unit is ms\n",
+    "                'sp_time': the period that splash picture last if menu=on, unit is ms\n"
+    "                'rb_timeout': the timeout before guest reboot when boot failed, unit is ms\n",
     QEMU_ARCH_ALL)
 STEXI
-@item -boot [order=@var{drives}][,once=@var{drives}][,menu=on|off][,splash=@var{sp_name}][,splash-time=@var{sp_time}]
+@item -boot [order=@var{drives}][,once=@var{drives}][,menu=on|off][,splash=@var{sp_name}][,splash-time=@var{sp_time}][,reboot-timeout=@var{rb_timeout}]
 @findex -boot
 Specify boot order @var{drives} as a string of drive letters. Valid
 drive letters depend on the target achitecture. The x86 PC uses: a, b
@@ -364,6 +365,11 @@ limitation: The splash file could be a jpeg file or a BMP file in 24 BPP
 format(true color). The resolution should be supported by the SVGA mode, so
 the recommended is 320x240, 640x480, 800x640.
 
+A timeout could be passed to bios, guest will pause for @var{rb_timeout} ms
+when boot failed, then reboot. If @var{rb_timeout} is '-1', guest will not
+reboot, qemu passes '-1' to bios by default. Currently Seabios for X86
+system support it.
+
 @example
 # try to boot from network first, then from hard disk
 qemu-system-i386 -boot order=nc
diff --git a/vl.c b/vl.c
index 7c577fa..1bd9931 100644
--- a/vl.c
+++ b/vl.c
@@ -2622,7 +2622,8 @@ int main(int argc, char **argv, char **envp)
                 {
                     static const char * const params[] = {
                         "order", "once", "menu",
-                        "splash", "splash-time", NULL
+                        "splash", "splash-time",
+                        "reboot-timeout", NULL
                     };
                     char buf[sizeof(boot_devices)];
                     char *standard_boot_devices;
-- 
1.7.1

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

* Re: [Qemu-devel] [PATCH v2] add a boot parameter to set reboot timeout
  2012-09-07  3:11 ` [Qemu-devel] [PATCH v2] add a boot parameter to set reboot timeout Amos Kong
@ 2012-09-20  3:15   ` Amos Kong
  2012-09-20  6:18     ` Gleb Natapov
  0 siblings, 1 reply; 11+ messages in thread
From: Amos Kong @ 2012-09-20  3:15 UTC (permalink / raw)
  To: Amos Kong; +Cc: aliguori, seabios, qemu-devel, gleb, kevin

On 07/09/12 11:11, Amos Kong wrote:
> Added an option to let qemu transfer a configuration file to bios,
> "etc/boot-fail-wait", which could be specified by command
>      -boot reboot-timeout=T
> T have a max value of 0xffff, unit is ms.
>
> With this option, guest will wait for a given time if not find
> bootabled device, then reboot. If reboot-timeout is '-1', guest
> will not reboot, qemu passes '-1' to bios by default.
>
> This feature need the new seabios's support.
>
> Seabios pulls the value from the fwcfg "file" interface, this
> interface is used because SeaBIOS needs a reliable way of
> obtaining a name, value size, and value. It in no way requires
> that there be a real file on the user's host machine.
>
> Signed-off-by: Amos Kong <akong@redhat.com>
> ---
> v2: qemu passes '-1' to bios, guest will not reboot


Gleb, Anthony, any comments?

> ---
>   hw/fw_cfg.c     |   25 +++++++++++++++++++++++++
>   qemu-config.c   |    3 +++
>   qemu-options.hx |   12 +++++++++---
>   vl.c            |    3 ++-
>   4 files changed, 39 insertions(+), 4 deletions(-)
>
> diff --git a/hw/fw_cfg.c b/hw/fw_cfg.c
> index 7b3b576..dcde1a9 100644
> --- a/hw/fw_cfg.c
> +++ b/hw/fw_cfg.c
> @@ -183,6 +183,30 @@ static void fw_cfg_bootsplash(FWCfgState *s)
>       }
>   }
>
> +static void fw_cfg_reboot(FWCfgState *s)
> +{
> +    int reboot_timeout = -1;
> +    char *p;
> +    const char *temp;
> +
> +    /* get user configuration */
> +    QemuOptsList *plist = qemu_find_opts("boot-opts");
> +    QemuOpts *opts = QTAILQ_FIRST(&plist->head);
> +    if (opts != NULL) {
> +        temp = qemu_opt_get(opts, "reboot-timeout");
> +        if (temp != NULL) {
> +            p = (char *)temp;
> +            reboot_timeout = strtol(p, (char **)&p, 10);
> +        }
> +    }
> +    /* validate the input */
> +    if (reboot_timeout > 0xffff) {
> +        error_report("reboot timeout is larger than 65535, force it to 65535.");
> +        reboot_timeout = 0xffff;
> +    }
> +    fw_cfg_add_file(s, "etc/boot-fail-wait", g_memdup(&reboot_timeout, 4), 4);
> +}
> +
>   static void fw_cfg_write(FWCfgState *s, uint8_t value)
>   {
>       int arch = !!(s->cur_entry & FW_CFG_ARCH_LOCAL);
> @@ -497,6 +521,7 @@ FWCfgState *fw_cfg_init(uint32_t ctl_port, uint32_t data_port,
>       fw_cfg_add_i16(s, FW_CFG_MAX_CPUS, (uint16_t)max_cpus);
>       fw_cfg_add_i16(s, FW_CFG_BOOT_MENU, (uint16_t)boot_menu);
>       fw_cfg_bootsplash(s);
> +    fw_cfg_reboot(s);
>
>       s->machine_ready.notify = fw_cfg_machine_ready;
>       qemu_add_machine_init_done_notifier(&s->machine_ready);
> diff --git a/qemu-config.c b/qemu-config.c
> index c05ffbc..b9f9e0f 100644
> --- a/qemu-config.c
> +++ b/qemu-config.c
> @@ -638,6 +638,9 @@ QemuOptsList qemu_boot_opts = {
>           }, {
>               .name = "splash-time",
>               .type = QEMU_OPT_STRING,
> +        }, {
> +            .name = "reboot-timeout",
> +            .type = QEMU_OPT_STRING,
>           },
>           { /*End of list */ }
>       },
> diff --git a/qemu-options.hx b/qemu-options.hx
> index 3c411c4..0249a60 100644
> --- a/qemu-options.hx
> +++ b/qemu-options.hx
> @@ -339,13 +339,14 @@ ETEXI
>
>   DEF("boot", HAS_ARG, QEMU_OPTION_boot,
>       "-boot [order=drives][,once=drives][,menu=on|off]\n"
> -    "      [,splash=sp_name][,splash-time=sp_time]\n"
> +    "      [,splash=sp_name][,splash-time=sp_time][,reboot-timeout=rb_time]\n"
>       "                'drives': floppy (a), hard disk (c), CD-ROM (d), network (n)\n"
>       "                'sp_name': the file's name that would be passed to bios as logo picture, if menu=on\n"
> -    "                'sp_time': the period that splash picture last if menu=on, unit is ms\n",
> +    "                'sp_time': the period that splash picture last if menu=on, unit is ms\n"
> +    "                'rb_timeout': the timeout before guest reboot when boot failed, unit is ms\n",
>       QEMU_ARCH_ALL)
>   STEXI
> -@item -boot [order=@var{drives}][,once=@var{drives}][,menu=on|off][,splash=@var{sp_name}][,splash-time=@var{sp_time}]
> +@item -boot [order=@var{drives}][,once=@var{drives}][,menu=on|off][,splash=@var{sp_name}][,splash-time=@var{sp_time}][,reboot-timeout=@var{rb_timeout}]
>   @findex -boot
>   Specify boot order @var{drives} as a string of drive letters. Valid
>   drive letters depend on the target achitecture. The x86 PC uses: a, b
> @@ -364,6 +365,11 @@ limitation: The splash file could be a jpeg file or a BMP file in 24 BPP
>   format(true color). The resolution should be supported by the SVGA mode, so
>   the recommended is 320x240, 640x480, 800x640.
>
> +A timeout could be passed to bios, guest will pause for @var{rb_timeout} ms
> +when boot failed, then reboot. If @var{rb_timeout} is '-1', guest will not
> +reboot, qemu passes '-1' to bios by default. Currently Seabios for X86
> +system support it.
> +
>   @example
>   # try to boot from network first, then from hard disk
>   qemu-system-i386 -boot order=nc
> diff --git a/vl.c b/vl.c
> index 7c577fa..1bd9931 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -2622,7 +2622,8 @@ int main(int argc, char **argv, char **envp)
>                   {
>                       static const char * const params[] = {
>                           "order", "once", "menu",
> -                        "splash", "splash-time", NULL
> +                        "splash", "splash-time",
> +                        "reboot-timeout", NULL
>                       };
>                       char buf[sizeof(boot_devices)];
>                       char *standard_boot_devices;
>

-- 
			Amos.

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

* Re: [Qemu-devel] [PATCH v2] add a boot parameter to set reboot timeout
  2012-09-20  3:15   ` Amos Kong
@ 2012-09-20  6:18     ` Gleb Natapov
  0 siblings, 0 replies; 11+ messages in thread
From: Gleb Natapov @ 2012-09-20  6:18 UTC (permalink / raw)
  To: Amos Kong; +Cc: aliguori, seabios, qemu-devel, kevin

On Thu, Sep 20, 2012 at 11:15:26AM +0800, Amos Kong wrote:
> On 07/09/12 11:11, Amos Kong wrote:
> >Added an option to let qemu transfer a configuration file to bios,
> >"etc/boot-fail-wait", which could be specified by command
> >     -boot reboot-timeout=T
> >T have a max value of 0xffff, unit is ms.
> >
> >With this option, guest will wait for a given time if not find
> >bootabled device, then reboot. If reboot-timeout is '-1', guest
> >will not reboot, qemu passes '-1' to bios by default.
> >
> >This feature need the new seabios's support.
> >
> >Seabios pulls the value from the fwcfg "file" interface, this
> >interface is used because SeaBIOS needs a reliable way of
> >obtaining a name, value size, and value. It in no way requires
> >that there be a real file on the user's host machine.
> >
> >Signed-off-by: Amos Kong <akong@redhat.com>
> >---
> >v2: qemu passes '-1' to bios, guest will not reboot
> 
> 
> Gleb, Anthony, any comments?
> 
Not from me. Looks good.

> >---
> >  hw/fw_cfg.c     |   25 +++++++++++++++++++++++++
> >  qemu-config.c   |    3 +++
> >  qemu-options.hx |   12 +++++++++---
> >  vl.c            |    3 ++-
> >  4 files changed, 39 insertions(+), 4 deletions(-)
> >
> >diff --git a/hw/fw_cfg.c b/hw/fw_cfg.c
> >index 7b3b576..dcde1a9 100644
> >--- a/hw/fw_cfg.c
> >+++ b/hw/fw_cfg.c
> >@@ -183,6 +183,30 @@ static void fw_cfg_bootsplash(FWCfgState *s)
> >      }
> >  }
> >
> >+static void fw_cfg_reboot(FWCfgState *s)
> >+{
> >+    int reboot_timeout = -1;
> >+    char *p;
> >+    const char *temp;
> >+
> >+    /* get user configuration */
> >+    QemuOptsList *plist = qemu_find_opts("boot-opts");
> >+    QemuOpts *opts = QTAILQ_FIRST(&plist->head);
> >+    if (opts != NULL) {
> >+        temp = qemu_opt_get(opts, "reboot-timeout");
> >+        if (temp != NULL) {
> >+            p = (char *)temp;
> >+            reboot_timeout = strtol(p, (char **)&p, 10);
> >+        }
> >+    }
> >+    /* validate the input */
> >+    if (reboot_timeout > 0xffff) {
> >+        error_report("reboot timeout is larger than 65535, force it to 65535.");
> >+        reboot_timeout = 0xffff;
> >+    }
> >+    fw_cfg_add_file(s, "etc/boot-fail-wait", g_memdup(&reboot_timeout, 4), 4);
> >+}
> >+
> >  static void fw_cfg_write(FWCfgState *s, uint8_t value)
> >  {
> >      int arch = !!(s->cur_entry & FW_CFG_ARCH_LOCAL);
> >@@ -497,6 +521,7 @@ FWCfgState *fw_cfg_init(uint32_t ctl_port, uint32_t data_port,
> >      fw_cfg_add_i16(s, FW_CFG_MAX_CPUS, (uint16_t)max_cpus);
> >      fw_cfg_add_i16(s, FW_CFG_BOOT_MENU, (uint16_t)boot_menu);
> >      fw_cfg_bootsplash(s);
> >+    fw_cfg_reboot(s);
> >
> >      s->machine_ready.notify = fw_cfg_machine_ready;
> >      qemu_add_machine_init_done_notifier(&s->machine_ready);
> >diff --git a/qemu-config.c b/qemu-config.c
> >index c05ffbc..b9f9e0f 100644
> >--- a/qemu-config.c
> >+++ b/qemu-config.c
> >@@ -638,6 +638,9 @@ QemuOptsList qemu_boot_opts = {
> >          }, {
> >              .name = "splash-time",
> >              .type = QEMU_OPT_STRING,
> >+        }, {
> >+            .name = "reboot-timeout",
> >+            .type = QEMU_OPT_STRING,
> >          },
> >          { /*End of list */ }
> >      },
> >diff --git a/qemu-options.hx b/qemu-options.hx
> >index 3c411c4..0249a60 100644
> >--- a/qemu-options.hx
> >+++ b/qemu-options.hx
> >@@ -339,13 +339,14 @@ ETEXI
> >
> >  DEF("boot", HAS_ARG, QEMU_OPTION_boot,
> >      "-boot [order=drives][,once=drives][,menu=on|off]\n"
> >-    "      [,splash=sp_name][,splash-time=sp_time]\n"
> >+    "      [,splash=sp_name][,splash-time=sp_time][,reboot-timeout=rb_time]\n"
> >      "                'drives': floppy (a), hard disk (c), CD-ROM (d), network (n)\n"
> >      "                'sp_name': the file's name that would be passed to bios as logo picture, if menu=on\n"
> >-    "                'sp_time': the period that splash picture last if menu=on, unit is ms\n",
> >+    "                'sp_time': the period that splash picture last if menu=on, unit is ms\n"
> >+    "                'rb_timeout': the timeout before guest reboot when boot failed, unit is ms\n",
> >      QEMU_ARCH_ALL)
> >  STEXI
> >-@item -boot [order=@var{drives}][,once=@var{drives}][,menu=on|off][,splash=@var{sp_name}][,splash-time=@var{sp_time}]
> >+@item -boot [order=@var{drives}][,once=@var{drives}][,menu=on|off][,splash=@var{sp_name}][,splash-time=@var{sp_time}][,reboot-timeout=@var{rb_timeout}]
> >  @findex -boot
> >  Specify boot order @var{drives} as a string of drive letters. Valid
> >  drive letters depend on the target achitecture. The x86 PC uses: a, b
> >@@ -364,6 +365,11 @@ limitation: The splash file could be a jpeg file or a BMP file in 24 BPP
> >  format(true color). The resolution should be supported by the SVGA mode, so
> >  the recommended is 320x240, 640x480, 800x640.
> >
> >+A timeout could be passed to bios, guest will pause for @var{rb_timeout} ms
> >+when boot failed, then reboot. If @var{rb_timeout} is '-1', guest will not
> >+reboot, qemu passes '-1' to bios by default. Currently Seabios for X86
> >+system support it.
> >+
> >  @example
> >  # try to boot from network first, then from hard disk
> >  qemu-system-i386 -boot order=nc
> >diff --git a/vl.c b/vl.c
> >index 7c577fa..1bd9931 100644
> >--- a/vl.c
> >+++ b/vl.c
> >@@ -2622,7 +2622,8 @@ int main(int argc, char **argv, char **envp)
> >                  {
> >                      static const char * const params[] = {
> >                          "order", "once", "menu",
> >-                        "splash", "splash-time", NULL
> >+                        "splash", "splash-time",
> >+                        "reboot-timeout", NULL
> >                      };
> >                      char buf[sizeof(boot_devices)];
> >                      char *standard_boot_devices;
> >
> 
> -- 
> 			Amos.

--
			Gleb.

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

end of thread, other threads:[~2012-09-20  6:18 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-09-06  4:15 [Qemu-devel] RFC: Add a new boot parameter to set delay time before seabios retry to boot Amos Kong
2012-09-06  6:21 ` Gleb Natapov
2012-09-06 12:39 ` [Qemu-devel] [PATCH] add a boot parameter to set reboot timeout Amos Kong
2012-09-06 12:46   ` Gleb Natapov
2012-09-07  2:41     ` Amos Kong
2012-09-06 13:36 ` [Qemu-devel] RFC: Add a new boot parameter to set delay time before seabios retry to boot Anthony Liguori
2012-09-06 21:25   ` [Qemu-devel] [SeaBIOS] " Steve Goodrich
2012-09-07  1:10   ` [Qemu-devel] " Kevin O'Connor
2012-09-07  3:11 ` [Qemu-devel] [PATCH v2] add a boot parameter to set reboot timeout Amos Kong
2012-09-20  3:15   ` Amos Kong
2012-09-20  6:18     ` Gleb Natapov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).