Re: [Qemu-devel] [qemu-s390x] [PATCH v3 4/8] s390-ccw: interactive boot menu for eckd dasd (menu setup)

2018-01-17 Thread Collin L. Walling

On 01/17/2018 01:11 AM, Thomas Huth wrote:

On 16.01.2018 20:37, Collin L. Walling wrote:

On 01/16/2018 01:23 PM, Thomas Huth wrote:

On 15.01.2018 17:44, Collin L. Walling wrote:

Reads boot menu flag and timeout values from the iplb and
sets the respective fields for the menu.

Signed-off-by: Collin L. Walling 
---

[...]

diff --git a/pc-bios/s390-ccw/iplb.h b/pc-bios/s390-ccw/iplb.h
index fe909d2..da29e6e 100644
--- a/pc-bios/s390-ccw/iplb.h
+++ b/pc-bios/s390-ccw/iplb.h
@@ -81,6 +81,9 @@ extern IplParameterBlock iplb
__attribute__((__aligned__(PAGE_SIZE)));
   #define S390_IPL_TYPE_CCW 0x02
   #define S390_IPL_TYPE_QEMU_SCSI 0xff
   +#define LOADPARM_PROMPT "PROMPT  "
+#define LOADPARM_EMPTY  ""

I've got a question: Is there a (public) specification document
available somewhere for the loadparm field?

Unfortunately there does not seems to be any kind of documentation
regarding loadparm for
KVM on IBM z.  Most of the information available on the IBM Knowledge
Center focuses on
z/VM, which isn't very helpful in this case :(

Ok, too bad :-(


Are there any specific questions that I can help with?

I was just wondering whether there are pre-defined values for this
field, e.g. is "PROMPT" something you came up with, or is this a value
that has been documented in a specification somewhere? ... I'm just
curious: If there is a list of pre-defined values somewhere, what are
the other values that the s390-ccw bios does not support yet?



We're mimicking zipl's behavior.  It currently supports two use cases for
loadparm: setting an explicit boot index (by providing a valid integer),
and showing the boot menu without a timeout (by providing the string
'prompt').



  Thomas




--
- Collin L Walling




Re: [Qemu-devel] [qemu-s390x] [PATCH v3 4/8] s390-ccw: interactive boot menu for eckd dasd (menu setup)

2018-01-16 Thread Thomas Huth
On 16.01.2018 20:37, Collin L. Walling wrote:
> On 01/16/2018 01:23 PM, Thomas Huth wrote:
>> On 15.01.2018 17:44, Collin L. Walling wrote:
>>> Reads boot menu flag and timeout values from the iplb and
>>> sets the respective fields for the menu.
>>>
>>> Signed-off-by: Collin L. Walling 
>>> ---
>> [...]
>>> diff --git a/pc-bios/s390-ccw/iplb.h b/pc-bios/s390-ccw/iplb.h
>>> index fe909d2..da29e6e 100644
>>> --- a/pc-bios/s390-ccw/iplb.h
>>> +++ b/pc-bios/s390-ccw/iplb.h
>>> @@ -81,6 +81,9 @@ extern IplParameterBlock iplb
>>> __attribute__((__aligned__(PAGE_SIZE)));
>>>   #define S390_IPL_TYPE_CCW 0x02
>>>   #define S390_IPL_TYPE_QEMU_SCSI 0xff
>>>   +#define LOADPARM_PROMPT "PROMPT  "
>>> +#define LOADPARM_EMPTY  ""
>> I've got a question: Is there a (public) specification document
>> available somewhere for the loadparm field?
> 
> Unfortunately there does not seems to be any kind of documentation
> regarding loadparm for
> KVM on IBM z.  Most of the information available on the IBM Knowledge
> Center focuses on
> z/VM, which isn't very helpful in this case :(

Ok, too bad :-(

> Are there any specific questions that I can help with?

I was just wondering whether there are pre-defined values for this
field, e.g. is "PROMPT" something you came up with, or is this a value
that has been documented in a specification somewhere? ... I'm just
curious: If there is a list of pre-defined values somewhere, what are
the other values that the s390-ccw bios does not support yet?

 Thomas



Re: [Qemu-devel] [qemu-s390x] [PATCH v3 4/8] s390-ccw: interactive boot menu for eckd dasd (menu setup)

2018-01-16 Thread Collin L. Walling

On 01/16/2018 01:23 PM, Thomas Huth wrote:

On 15.01.2018 17:44, Collin L. Walling wrote:

Reads boot menu flag and timeout values from the iplb and
sets the respective fields for the menu.

Signed-off-by: Collin L. Walling 
---

[...]

diff --git a/pc-bios/s390-ccw/iplb.h b/pc-bios/s390-ccw/iplb.h
index fe909d2..da29e6e 100644
--- a/pc-bios/s390-ccw/iplb.h
+++ b/pc-bios/s390-ccw/iplb.h
@@ -81,6 +81,9 @@ extern IplParameterBlock iplb 
__attribute__((__aligned__(PAGE_SIZE)));
  #define S390_IPL_TYPE_CCW 0x02
  #define S390_IPL_TYPE_QEMU_SCSI 0xff
  
+#define LOADPARM_PROMPT "PROMPT  "

+#define LOADPARM_EMPTY  ""

I've got a question: Is there a (public) specification document
available somewhere for the loadparm field?



Unfortunately there does not seems to be any kind of documentation 
regarding loadparm for
KVM on IBM z.  Most of the information available on the IBM Knowledge 
Center focuses on

z/VM, which isn't very helpful in this case :(

Are there any specific questions that I can help with?




[...]

diff --git a/pc-bios/s390-ccw/menu.h b/pc-bios/s390-ccw/menu.h
new file mode 100644
index 000..04b1db1
--- /dev/null
+++ b/pc-bios/s390-ccw/menu.h
@@ -0,0 +1,23 @@
+/*
+ * QEMU S390 Interactive Boot Menu
+ *
+ * Copyright 2017 IBM Corp.
+ * Author: Collin L. Walling 
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or (at
+ * your option) any later version. See the COPYING file in the top-level
+ * directory.
+ */
+
+#ifndef MENU_H
+#define MENU_H
+
+#include "libc.h"
+
+#define BOOT_MENU_FLAG_BOOT_OPTS 0x80
+#define BOOT_MENU_FLAG_ZIPL_OPTS 0x40
+
+void menu_set_parms(uint8_t boot_menu_flags, uint16_t boot_menu_timeout);
+bool menu_check_flags(uint8_t check_flags);
+
+#endif /* MENU_H */


Reviewed-by: Thomas Huth 



Thanks for the review.

--
- Collin L Walling