Patchwork Add nvram to default boot device list

login
register
mail settings
Submitter Avik Sil
Date Oct. 11, 2012, 2:04 a.m.
Message ID <1349921082-980-1-git-send-email-aviksil@linux.vnet.ibm.com>
Download mbox | patch
Permalink /patch/190780/
State New
Headers show

Comments

Avik Sil - Oct. 11, 2012, 2:04 a.m.
This patch adds nvram specified boot device into qemu default
boot_devices list. This helps firmware to boot from nvram specified
boot device if no -boot option is specified.

Suggested by: Alexander Graf <agraf@suse.de>

Signed-off-by: Avik Sil <aviksil@linux.vnet.ibm.com>
---
 vl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Alexander Graf - Oct. 11, 2012, 12:48 p.m.
On 11.10.2012, at 04:04, Avik Sil wrote:

> This patch adds nvram specified boot device into qemu default
> boot_devices list. This helps firmware to boot from nvram specified
> boot device if no -boot option is specified.

Did you check that no other user of the boot device list gets confused by this? Also, this new 'x' bit needs to be documented. Plus, we need a SLOF update to make use of it.


Alex

> 
> Suggested by: Alexander Graf <agraf@suse.de>
> 
> Signed-off-by: Avik Sil <aviksil@linux.vnet.ibm.com>
> ---
> vl.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/vl.c b/vl.c
> index 48049ef..8adc40b 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -2349,7 +2349,7 @@ int main(int argc, char **argv, char **envp)
>     const char *icount_option = NULL;
>     const char *initrd_filename;
>     const char *kernel_filename, *kernel_cmdline;
> -    char boot_devices[33] = "cad"; /* default to HD->floppy->CD-ROM */
> +    char boot_devices[33] = "xcad"; /* default to NVRAM->HD->floppy->CD-ROM */
>     DisplayState *ds;
>     DisplayChangeListener *dcl;
>     int cyls, heads, secs, translation;
> -- 
> 1.7.11.4
>
David Gibson - Oct. 11, 2012, 10:59 p.m.
On Thu, Oct 11, 2012 at 07:34:42AM +0530, Avik Sil wrote:
> This patch adds nvram specified boot device into qemu default
> boot_devices list. This helps firmware to boot from nvram specified
> boot device if no -boot option is specified.

I really don't think this is a good idea, it extends an already
deprecated mechanism in a fuzzy way and requires careful checking to
see if it could break anything.  On all platforms the boot sequence
should be:
	if bootindex is specified:
		boot according to bootindex
	else if -boot is specified:
		boot according to -boot sequence
	else:
		use platform firmware default sequence

The last will of course vary by platform, and could depend on platform
details like the contents of NVRAM.  Your original idea of making it
clear to the guest when -boot has been specified (as opposed to when
it contains its default value) was the right one, and this "x" in
-boot is going the wrong direction.
Alexander Graf - Oct. 12, 2012, 12:03 a.m.
On 12.10.2012, at 00:59, David Gibson wrote:

> On Thu, Oct 11, 2012 at 07:34:42AM +0530, Avik Sil wrote:
>> This patch adds nvram specified boot device into qemu default
>> boot_devices list. This helps firmware to boot from nvram specified
>> boot device if no -boot option is specified.
> 
> I really don't think this is a good idea, it extends an already
> deprecated mechanism in a fuzzy way and requires careful checking to
> see if it could break anything.  On all platforms the boot sequence
> should be:
> 	if bootindex is specified:
> 		boot according to bootindex
> 	else if -boot is specified:
> 		boot according to -boot sequence
> 	else:
> 		use platform firmware default sequence
> 
> The last will of course vary by platform, and could depend on platform
> details like the contents of NVRAM.  Your original idea of making it
> clear to the guest when -boot has been specified (as opposed to when
> it contains its default value) was the right one, and this "x" in
> -boot is going the wrong direction.

Given that this is a fundamental direction for a bunch of machines, how about we talk about it on the weekly QEMU call?


Alex
David Gibson - Oct. 12, 2012, 12:28 a.m.
On Fri, Oct 12, 2012 at 02:03:00AM +0200, Alexander Graf wrote:
> 
> On 12.10.2012, at 00:59, David Gibson wrote:
> 
> > On Thu, Oct 11, 2012 at 07:34:42AM +0530, Avik Sil wrote:
> >> This patch adds nvram specified boot device into qemu default
> >> boot_devices list. This helps firmware to boot from nvram specified
> >> boot device if no -boot option is specified.
> > 
> > I really don't think this is a good idea, it extends an already
> > deprecated mechanism in a fuzzy way and requires careful checking to
> > see if it could break anything.  On all platforms the boot sequence
> > should be:
> > 	if bootindex is specified:
> > 		boot according to bootindex
> > 	else if -boot is specified:
> > 		boot according to -boot sequence
> > 	else:
> > 		use platform firmware default sequence
> > 
> > The last will of course vary by platform, and could depend on platform
> > details like the contents of NVRAM.  Your original idea of making it
> > clear to the guest when -boot has been specified (as opposed to when
> > it contains its default value) was the right one, and this "x" in
> > -boot is going the wrong direction.
> 
> Given that this is a fundamental direction for a bunch of machines,
> how about we talk about it on the weekly QEMU call?

Uh, is this a call I know about?
Alexander Graf - Oct. 12, 2012, 12:29 a.m.
On 12.10.2012, at 02:28, David Gibson wrote:

> On Fri, Oct 12, 2012 at 02:03:00AM +0200, Alexander Graf wrote:
>> 
>> On 12.10.2012, at 00:59, David Gibson wrote:
>> 
>>> On Thu, Oct 11, 2012 at 07:34:42AM +0530, Avik Sil wrote:
>>>> This patch adds nvram specified boot device into qemu default
>>>> boot_devices list. This helps firmware to boot from nvram specified
>>>> boot device if no -boot option is specified.
>>> 
>>> I really don't think this is a good idea, it extends an already
>>> deprecated mechanism in a fuzzy way and requires careful checking to
>>> see if it could break anything.  On all platforms the boot sequence
>>> should be:
>>> 	if bootindex is specified:
>>> 		boot according to bootindex
>>> 	else if -boot is specified:
>>> 		boot according to -boot sequence
>>> 	else:
>>> 		use platform firmware default sequence
>>> 
>>> The last will of course vary by platform, and could depend on platform
>>> details like the contents of NVRAM.  Your original idea of making it
>>> clear to the guest when -boot has been specified (as opposed to when
>>> it contains its default value) was the right one, and this "x" in
>>> -boot is going the wrong direction.
>> 
>> Given that this is a fundamental direction for a bunch of machines,
>> how about we talk about it on the weekly QEMU call?
> 
> Uh, is this a call I know about?

I would hope so. Chris / Juan, who is in charge of the phone numbers these days?


Alex
Chris Wright - Oct. 12, 2012, 3:02 a.m.
* Alexander Graf (agraf@suse.de) wrote:
> On 12.10.2012, at 02:28, David Gibson wrote:
> > On Fri, Oct 12, 2012 at 02:03:00AM +0200, Alexander Graf wrote:
> >> On 12.10.2012, at 00:59, David Gibson wrote:
> >>> On Thu, Oct 11, 2012 at 07:34:42AM +0530, Avik Sil wrote:
> >>>> This patch adds nvram specified boot device into qemu default
> >>>> boot_devices list. This helps firmware to boot from nvram specified
> >>>> boot device if no -boot option is specified.
> >>> 
> >>> I really don't think this is a good idea, it extends an already
> >>> deprecated mechanism in a fuzzy way and requires careful checking to
> >>> see if it could break anything.  On all platforms the boot sequence
> >>> should be:
> >>> 	if bootindex is specified:
> >>> 		boot according to bootindex
> >>> 	else if -boot is specified:
> >>> 		boot according to -boot sequence
> >>> 	else:
> >>> 		use platform firmware default sequence
> >>> 
> >>> The last will of course vary by platform, and could depend on platform
> >>> details like the contents of NVRAM.  Your original idea of making it
> >>> clear to the guest when -boot has been specified (as opposed to when
> >>> it contains its default value) was the right one, and this "x" in
> >>> -boot is going the wrong direction.
> >> 
> >> Given that this is a fundamental direction for a bunch of machines,
> >> how about we talk about it on the weekly QEMU call?
> > 
> > Uh, is this a call I know about?
> 
> I would hope so. Chris / Juan, who is in charge of the phone numbers these days?

Added David to the invite which contains the call details (very
unfriendly time for .au I'm afraid, 14:00 UTC).
Avik Sil - Oct. 12, 2012, 7:12 a.m.
On 10/12/2012 04:29 AM, David Gibson wrote:
> On Thu, Oct 11, 2012 at 07:34:42AM +0530, Avik Sil wrote:
>> This patch adds nvram specified boot device into qemu default
>> boot_devices list. This helps firmware to boot from nvram specified
>> boot device if no -boot option is specified.
> 
> I really don't think this is a good idea, it extends an already
> deprecated mechanism in a fuzzy way and requires careful checking to
> see if it could break anything.  On all platforms the boot sequence
> should be:
> 	if bootindex is specified:
> 		boot according to bootindex
> 	else if -boot is specified:
> 		boot according to -boot sequence
> 	else:
> 		use platform firmware default sequence
> 
> The last will of course vary by platform, and could depend on platform
> details like the contents of NVRAM.  Your original idea of making it
> clear to the guest when -boot has been specified (as opposed to when
> it contains its default value) was the right one, and this "x" in
> -boot is going the wrong direction.
> 
I'm fine with the original approach. The patch is there in qemu-ppc m-l [1].

Regards,
Avik

[1] http://lists.nongnu.org/archive/html/qemu-ppc/2012-10/msg00081.html
Avik Sil - Oct. 16, 2012, 3:44 a.m.
On 10/12/2012 05:33 AM, Alexander Graf wrote:
> 
> On 12.10.2012, at 00:59, David Gibson wrote:
> 
>> On Thu, Oct 11, 2012 at 07:34:42AM +0530, Avik Sil wrote:
>>> This patch adds nvram specified boot device into qemu default
>>> boot_devices list. This helps firmware to boot from nvram specified
>>> boot device if no -boot option is specified.
>>
>> I really don't think this is a good idea, it extends an already
>> deprecated mechanism in a fuzzy way and requires careful checking to
>> see if it could break anything.  On all platforms the boot sequence
>> should be:
>> 	if bootindex is specified:
>> 		boot according to bootindex
>> 	else if -boot is specified:
>> 		boot according to -boot sequence
>> 	else:
>> 		use platform firmware default sequence
>>
>> The last will of course vary by platform, and could depend on platform
>> details like the contents of NVRAM.  Your original idea of making it
>> clear to the guest when -boot has been specified (as opposed to when
>> it contains its default value) was the right one, and this "x" in
>> -boot is going the wrong direction.
> 
> Given that this is a fundamental direction for a bunch of machines, how about we talk about it on the weekly QEMU call?
> 
Was there any discussion on this in the last QEMU call?

Regards,
Avik
Alexander Graf - Oct. 16, 2012, 8:04 a.m.
On 16.10.2012, at 05:44, Avik Sil <aviksil@linux.vnet.ibm.com> wrote:

> On 10/12/2012 05:33 AM, Alexander Graf wrote:
>> 
>> On 12.10.2012, at 00:59, David Gibson wrote:
>> 
>>> On Thu, Oct 11, 2012 at 07:34:42AM +0530, Avik Sil wrote:
>>>> This patch adds nvram specified boot device into qemu default
>>>> boot_devices list. This helps firmware to boot from nvram specified
>>>> boot device if no -boot option is specified.
>>> 
>>> I really don't think this is a good idea, it extends an already
>>> deprecated mechanism in a fuzzy way and requires careful checking to
>>> see if it could break anything.  On all platforms the boot sequence
>>> should be:
>>>    if bootindex is specified:
>>>        boot according to bootindex
>>>    else if -boot is specified:
>>>        boot according to -boot sequence
>>>    else:
>>>        use platform firmware default sequence
>>> 
>>> The last will of course vary by platform, and could depend on platform
>>> details like the contents of NVRAM.  Your original idea of making it
>>> clear to the guest when -boot has been specified (as opposed to when
>>> it contains its default value) was the right one, and this "x" in
>>> -boot is going the wrong direction.
>> 
>> Given that this is a fundamental direction for a bunch of machines, how about we talk about it on the weekly QEMU call?
>> 
> Was there any discussion on this in the last QEMU call?

The call is today :)

Alex

> 
> Regards,
> Avik
>
Andreas Färber - Oct. 16, 2012, 8:37 a.m.
Am 16.10.2012 10:04, schrieb Alexander Graf:
> 
> 
> On 16.10.2012, at 05:44, Avik Sil <aviksil@linux.vnet.ibm.com> wrote:
> 
>> On 10/12/2012 05:33 AM, Alexander Graf wrote:
>>>
>>> On 12.10.2012, at 00:59, David Gibson wrote:
>>>
>>>> On Thu, Oct 11, 2012 at 07:34:42AM +0530, Avik Sil wrote:
>>>>> This patch adds nvram specified boot device into qemu default
>>>>> boot_devices list. This helps firmware to boot from nvram specified
>>>>> boot device if no -boot option is specified.
>>>>
>>>> I really don't think this is a good idea, it extends an already
>>>> deprecated mechanism in a fuzzy way and requires careful checking to
>>>> see if it could break anything.  On all platforms the boot sequence
>>>> should be:
>>>>    if bootindex is specified:
>>>>        boot according to bootindex
>>>>    else if -boot is specified:
>>>>        boot according to -boot sequence
>>>>    else:
>>>>        use platform firmware default sequence
>>>>
>>>> The last will of course vary by platform, and could depend on platform
>>>> details like the contents of NVRAM.  Your original idea of making it
>>>> clear to the guest when -boot has been specified (as opposed to when
>>>> it contains its default value) was the right one, and this "x" in
>>>> -boot is going the wrong direction.
>>>
>>> Given that this is a fundamental direction for a bunch of machines, how about we talk about it on the weekly QEMU call?
>>>
>> Was there any discussion on this in the last QEMU call?
> 
> The call is today :)

...and the topic is not officially on the agenda yet. :)

Andreas
Avik Sil - Oct. 16, 2012, 11:45 a.m.
On 10/12/2012 08:32 AM, Chris Wright wrote:
> * Alexander Graf (agraf@suse.de) wrote:
>> On 12.10.2012, at 02:28, David Gibson wrote:
>>> On Fri, Oct 12, 2012 at 02:03:00AM +0200, Alexander Graf wrote:
>>>> On 12.10.2012, at 00:59, David Gibson wrote:
>>>>> On Thu, Oct 11, 2012 at 07:34:42AM +0530, Avik Sil wrote:
>>>>>> This patch adds nvram specified boot device into qemu default
>>>>>> boot_devices list. This helps firmware to boot from nvram specified
>>>>>> boot device if no -boot option is specified.
>>>>>
>>>>> I really don't think this is a good idea, it extends an already
>>>>> deprecated mechanism in a fuzzy way and requires careful checking to
>>>>> see if it could break anything.  On all platforms the boot sequence
>>>>> should be:
>>>>> 	if bootindex is specified:
>>>>> 		boot according to bootindex
>>>>> 	else if -boot is specified:
>>>>> 		boot according to -boot sequence
>>>>> 	else:
>>>>> 		use platform firmware default sequence
>>>>>
>>>>> The last will of course vary by platform, and could depend on platform
>>>>> details like the contents of NVRAM.  Your original idea of making it
>>>>> clear to the guest when -boot has been specified (as opposed to when
>>>>> it contains its default value) was the right one, and this "x" in
>>>>> -boot is going the wrong direction.
>>>>
>>>> Given that this is a fundamental direction for a bunch of machines,
>>>> how about we talk about it on the weekly QEMU call?
>>>
>>> Uh, is this a call I know about?
>>
>> I would hope so. Chris / Juan, who is in charge of the phone numbers these days?
> 
> Added David to the invite which contains the call details (very
> unfriendly time for .au I'm afraid, 14:00 UTC).
> 
Is it OK if I proxy David as it's unfriendly time for him? Also can this
topic be included in today's call?

Regards,
Avik

Patch

diff --git a/vl.c b/vl.c
index 48049ef..8adc40b 100644
--- a/vl.c
+++ b/vl.c
@@ -2349,7 +2349,7 @@  int main(int argc, char **argv, char **envp)
     const char *icount_option = NULL;
     const char *initrd_filename;
     const char *kernel_filename, *kernel_cmdline;
-    char boot_devices[33] = "cad"; /* default to HD->floppy->CD-ROM */
+    char boot_devices[33] = "xcad"; /* default to NVRAM->HD->floppy->CD-ROM */
     DisplayState *ds;
     DisplayChangeListener *dcl;
     int cyls, heads, secs, translation;