qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Thomas Huth <thuth@redhat.com>
To: David Gibson <david@gibson.dropbear.id.au>
Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"qemu-ppc@nongnu.org" <qemu-ppc@nongnu.org>,
	Bharata B Rao <bharata.rao@gmail.com>,
	Artyom Tarasenko <atar4qemu@gmail.com>
Subject: Re: [Qemu-devel] [Qemu-ppc] [PATCH 0/5] nvram: Refactor OpenBIOS NVRAM code to support -prom-env on pseries, too
Date: Wed, 26 Oct 2016 08:35:58 +0200	[thread overview]
Message-ID: <ee84eb46-afef-be3f-48a6-6ebb0a89b3e5@redhat.com> (raw)
In-Reply-To: <20161026000347.GK11052@umbus.fritz.box>

[-- Attachment #1: Type: text/plain, Size: 6093 bytes --]

On 26.10.2016 02:03, David Gibson wrote:
> On Tue, Oct 25, 2016 at 02:22:08PM +0200, Thomas Huth wrote:
>> On 24.10.2016 14:04, David Gibson wrote:
>>> On Mon, Oct 24, 2016 at 12:36:05PM +0200, Thomas Huth wrote:
>>>> On 24.10.2016 12:22, Bharata B Rao wrote:
>>>>>
>>>>> On Wed, Oct 19, 2016 at 7:46 AM, David Gibson
>>>>> <david@gibson.dropbear.id.au <mailto:david@gibson.dropbear.id.au>> wrote:
>>>>>
>>>>>     On Tue, Oct 18, 2016 at 10:46:39PM +0200, Thomas Huth wrote:
>>>>>     > The OpenBIOS NVRAM set-up is based on the layout defined in the CHRP
>>>>>     > (Common Hardware Reference Platform) specification. This is the same
>>>>>     > layout that is also used by the PAPR specification and thus by the
>>>>>     SLOF
>>>>>     > firmware of the pseries machine. By refactoring the NVRAM code from
>>>>>     > mac_nvram.c, we can use the same functions for setting up the NVRAM
>>>>>     > for both, OpenBIOS and SLOF. This way we can support the "-prom-env"
>>>>>     > parameter of QEMU for SLOF, too, which is very useful to influence
>>>>>     > the firmware boot process.
>>>>>     >
>>>>>     > Thomas Huth (5):
>>>>>     >   nvram: Introduce helper functions for CHRP "system" and "free space"
>>>>>     >     partitions
>>>>>     >   sparc: Use the new common NVRAM functions for system and free space
>>>>>     >     partition
>>>>>     >   spapr_nvram: Pre-initialize the NVRAM to support the -prom-env
>>>>>     >     parameter
>>>>>     >   nvram: Move the remaining CHRP NVRAM related code to chrp_nvram.[ch]
>>>>>     >   nvram: Rename openbios_firmware_abi.h into sun_nvram.h
>>>>>     >
>>>>>     >  hw/nvram/Makefile.objs                             |  1 +
>>>>>     >  hw/nvram/chrp_nvram.c                              | 85
>>>>>     ++++++++++++++++++++++
>>>>>     >  hw/nvram/mac_nvram.c                               | 49 +++----------
>>>>>     >  hw/nvram/spapr_nvram.c                             |  6 ++
>>>>>     >  hw/sparc/sun4m.c                                   | 35 ++-------
>>>>>     >  hw/sparc64/sun4u.c                                 | 35 ++-------
>>>>>     >  include/hw/nvram/chrp_nvram.h                      | 54
>>>>>     ++++++++++++++
>>>>>     >  .../nvram/{openbios_firmware_abi.h => sun_nvram.h} | 47 +-----------
>>>>>     >  tests/postcopy-test.c                              |  8 +-
>>>>>     >  9 files changed, 179 insertions(+), 141 deletions(-)
>>>>>     >  create mode 100644 hw/nvram/chrp_nvram.c
>>>>>     >  create mode 100644 include/hw/nvram/chrp_nvram.h
>>>>>     >  rename include/hw/nvram/{openbios_firmware_abi.h => sun_nvram.h}
>>>>>     (50%)
>>>>>
>>>>>     Series,
>>>>>
>>>>>     Reviewed-by: David Gibson <david@gibson.dropbear.id.au
>>>>>     <mailto:david@gibson.dropbear.id.au>>
>>>>>
>>>>>     I've put it into ppc-for-2.8 tentatively.  However I'd like to get an
>>>>>     Acked-by from Mark for the Sparc bits before I send my next pull
>>>>>     request.
>>>>>
>>>>>
>>>>> I observe an early boot failure in SLOF with a commit from this patchset
>>>>> on ppc-for-2.8 branch.
>>>>>
>>>>> 4e1257ed41bce16baa8a010 - spapr_nvram: Pre-initialize the NVRAM to
>>>>> support the -prom-env parameter
>>>>>
>>>>> SLOF **********************************************************************
>>>>> QEMU Starting
>>>>>  Build Date = Oct 19 2016 09:58:38
>>>>>  FW Version = git-efd65f49929d7db7
>>>>>  Press "s" to enter Open Firmware.
>>>>>
>>>>> Populating /vdevice methods
>>>>> Populating /vdevice/vty@71000000
>>>>> Populating /vdevice/nvram@71000001
>>>>> Populating /vdevice/v-scsi@71000002
>>>>>        SCSI: Looking for devices
>>>>>           8200000000000000 CD-ROM   : "QEMU     QEMU CD-ROM      2.5+"
>>>>> Populating /pci@800000020000000
>>>>>                      00 1000 (D) : 1033 0194    serial bus [ usb-xhci ]
>>>>>                      00 0800 (D) : 1af4 1001    virtio [ block ]
>>>>>                      00 0000 (D) : 1af4 1000    virtio [ net ]
>>>>> Scanning USB
>>>>>   XHCI: Initializing
>>>>> Using default console: /vdevice/vty@71000000
>>>>>     
>>>>>   Welcome to Open Firmware
>>>>>
>>>>>   Copyright (c) 2004, 2011 IBM Corporation All rights reserved.
>>>>>   This program and the accompanying materials are made available
>>>>>   under the terms of the BSD License available at
>>>>>   http://www.opensource.org/licenses/bsd-license.php
>>>>>
>>>>>
>>>>> Trying to load:  from: /pci@800000020000000/scsi@1 ...   Successfully loaded
>>>>> error: out of memory.
>>>>> out of memory
>>>>> Aborted. Press any key to exit.
>>>>
>>>> Yuck. Confirmed. Sorry for the inconvenience. Seems like SLOF does not
>>>> create the properties in the /options device tree node anymore in this case.
>>>>
>>>> David, could you please unqueue the "spapr_nvram: Pre-initialize the
>>>> NVRAM to support the -prom-env parameter" patch from the ppc-for-2.8
>>>> branch until I figure out a fix for this problem? Thanks!
>>>
>>> Done.
>>
>> FYI, SLOF patch to fix this issue is on the way:
>> https://patchwork.ozlabs.org/patch/686426/
> 
> Ok.  So it was a matter of this change exposing a bug in SLOF, rather
> than being buggy of itself?

Yes. SLOF should always keep the /options device tree node populated and
up to date, no matter whether a variable is available in the NVRAM
partition or not. (Well, not sure, but it could maybe also have exposed
a bug in grub2 since that simply does not seem to work if the variable
"real-mode?" is not there ... but grub2 seems to work fine if it's
there, no matter if I use -prom-env "real-mode?=false" or -prom-env
"real-mode?=true" ...)

Anyway, I think it might also be better to change this QEMU patch here a
little bit, so that the NVRAM only gets pre-initialized if the user
specified a "-prom-env" parameter. That means, for the normal use-case,
the behavior will stay the same, and we do not have to pull in another
SLOF update to fix this issue. I'll rework my patch and post a new
version when it's ready.

 Thomas



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

  reply	other threads:[~2016-10-26  6:36 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-18 20:46 [Qemu-devel] [PATCH 0/5] nvram: Refactor OpenBIOS NVRAM code to support -prom-env on pseries, too Thomas Huth
2016-10-18 20:46 ` [Qemu-devel] [PATCH 1/5] nvram: Introduce helper functions for CHRP "system" and "free space" partitions Thomas Huth
2016-10-18 20:46 ` [Qemu-devel] [PATCH 2/5] sparc: Use the new common NVRAM functions for system and free space partition Thomas Huth
2016-10-18 20:46 ` [Qemu-devel] [PATCH 3/5] spapr_nvram: Pre-initialize the NVRAM to support the -prom-env parameter Thomas Huth
2016-10-18 20:46 ` [Qemu-devel] [PATCH 4/5] nvram: Move the remaining CHRP NVRAM related code to chrp_nvram.[ch] Thomas Huth
2016-10-18 20:46 ` [Qemu-devel] [PATCH 5/5] nvram: Rename openbios_firmware_abi.h into sun_nvram.h Thomas Huth
2016-10-19  2:16 ` [Qemu-devel] [PATCH 0/5] nvram: Refactor OpenBIOS NVRAM code to support -prom-env on pseries, too David Gibson
2016-10-24 10:22   ` Bharata B Rao
2016-10-24 10:36     ` Thomas Huth
2016-10-24 12:04       ` David Gibson
2016-10-25 12:22         ` [Qemu-devel] [Qemu-ppc] " Thomas Huth
2016-10-26  0:03           ` David Gibson
2016-10-26  6:35             ` Thomas Huth [this message]
2016-10-23 15:19 ` [Qemu-devel] " Mark Cave-Ayland

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ee84eb46-afef-be3f-48a6-6ebb0a89b3e5@redhat.com \
    --to=thuth@redhat.com \
    --cc=atar4qemu@gmail.com \
    --cc=bharata.rao@gmail.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).