diff mbox

hw/arm/vexpress: Forbid specifying flash contents in two ways at once

Message ID 1402419834-25982-1-git-send-email-peter.maydell@linaro.org
State Superseded
Headers show

Commit Message

Peter Maydell June 10, 2014, 5:03 p.m. UTC
Detect attempts by the user to specify the contents fo the first flash
device via both -bios and -drive if=pflash... simultaneously and
print a helpful error message.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
This rules out a nonsensical combination and matches what we're
going to do with the 'virt' machine.

 hw/arm/vexpress.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

Comments

Peter Crosthwaite June 13, 2014, 11:15 p.m. UTC | #1
On Wed, Jun 11, 2014 at 3:03 AM, Peter Maydell <peter.maydell@linaro.org> wrote:
> Detect attempts by the user to specify the contents fo the first flash

"for" or "of"

> device via both -bios and -drive if=pflash... simultaneously and
> print a helpful error message.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Otherwise:

Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>

> ---
> This rules out a nonsensical combination and matches what we're
> going to do with the 'virt' machine.
>
>  hw/arm/vexpress.c | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/hw/arm/vexpress.c b/hw/arm/vexpress.c
> index f311595..3d83e6c 100644
> --- a/hw/arm/vexpress.c
> +++ b/hw/arm/vexpress.c
> @@ -533,7 +533,15 @@ static void vexpress_common_init(VEDBoardInfo *daughterboard,
>       * If a bios file was provided, attempt to map it into memory
>       */
>      if (bios_name) {
> -        const char *fn = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
> +        const char *fn;
> +
> +        if (drive_get(IF_PFLASH, 0, 0)) {
> +            error_report("The contents of the first flash device may be "
> +                         "specified with -bios or with -drive if=pflash... "
> +                         "but you cannot use both options at once");
> +            exit(1);
> +        }
> +        fn = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
>          if (!fn || load_image_targphys(fn, map[VE_NORFLASH0],
>                                         VEXPRESS_FLASH_SIZE) < 0) {
>              error_report("Could not load ROM image '%s'", bios_name);
> --
> 1.9.2
>
>
diff mbox

Patch

diff --git a/hw/arm/vexpress.c b/hw/arm/vexpress.c
index f311595..3d83e6c 100644
--- a/hw/arm/vexpress.c
+++ b/hw/arm/vexpress.c
@@ -533,7 +533,15 @@  static void vexpress_common_init(VEDBoardInfo *daughterboard,
      * If a bios file was provided, attempt to map it into memory
      */
     if (bios_name) {
-        const char *fn = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
+        const char *fn;
+
+        if (drive_get(IF_PFLASH, 0, 0)) {
+            error_report("The contents of the first flash device may be "
+                         "specified with -bios or with -drive if=pflash... "
+                         "but you cannot use both options at once");
+            exit(1);
+        }
+        fn = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
         if (!fn || load_image_targphys(fn, map[VE_NORFLASH0],
                                        VEXPRESS_FLASH_SIZE) < 0) {
             error_report("Could not load ROM image '%s'", bios_name);