[PATCH] system: drop the -old-param option

Peter Maydell posted 1 patch 1 month ago
Failed in applying to current master (apply log)
Maintainers: Peter Maydell <peter.maydell@linaro.org>, Paolo Bonzini <pbonzini@redhat.com>
docs/about/deprecated.rst       | 13 ------
docs/about/removed-features.rst | 12 +++++
include/system/system.h         |  1 -
hw/arm/boot.c                   | 81 +--------------------------------
system/globals.c                |  1 -
system/vl.c                     |  4 --
qemu-options.hx                 |  7 ---
7 files changed, 13 insertions(+), 106 deletions(-)
[PATCH] system: drop the -old-param option
Posted by Peter Maydell 1 month ago
We deprecated the command line option -old-param for the 10.0
release, which allows us to drop it in 10.2.  This option was used to
boot Arm targets with a very old boot protocol using the
'param_struct' ABI.  We only ever needed this on a handful of board
types which have all now been removed from QEMU.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 docs/about/deprecated.rst       | 13 ------
 docs/about/removed-features.rst | 12 +++++
 include/system/system.h         |  1 -
 hw/arm/boot.c                   | 81 +--------------------------------
 system/globals.c                |  1 -
 system/vl.c                     |  4 --
 qemu-options.hx                 |  7 ---
 7 files changed, 13 insertions(+), 106 deletions(-)

diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index d50645a0711..58bce715f9c 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -68,19 +68,6 @@ configurations (e.g. -smp drawers=1,books=1,clusters=1 for x86 PC machine) is
 marked deprecated since 9.0, users have to ensure that all the topology members
 described with -smp are supported by the target machine.
 
-``-old-param`` option for booting Arm kernels via param_struct (since 10.0)
-'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
-
-The ``-old-param`` command line option is specific to Arm targets:
-it is used when directly booting a guest kernel to pass it the
-command line and other information via the old ``param_struct`` ABI,
-rather than the newer ATAGS or DTB mechanisms. This option was only
-ever needed to support ancient kernels on some old board types
-like the ``akita`` or ``terrier``; it has been deprecated in the
-kernel since 2001. None of the board types QEMU supports need
-``param_struct`` support, so this option has been deprecated and will
-be removed in a future QEMU version.
-
 User-mode emulator command line arguments
 -----------------------------------------
 
diff --git a/docs/about/removed-features.rst b/docs/about/removed-features.rst
index d7c2113fc3e..b1b3d1b1b3f 100644
--- a/docs/about/removed-features.rst
+++ b/docs/about/removed-features.rst
@@ -560,6 +560,18 @@ the options along with the machine models they were intended for.
 
 Use ``-run-with user=..`` instead.
 
+``-old-param`` option for booting Arm kernels via param_struct (since 10.0)
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+The ``-old-param`` command line option was specific to Arm targets:
+it was used when directly booting a guest kernel to pass it the
+command line and other information via the old ``param_struct`` ABI,
+rather than the newer ATAGS or DTB mechanisms. This option was only
+ever needed to support ancient kernels on some old board types
+like the ``akita`` or ``terrier``; it has been deprecated in the
+kernel since 2001. None of the board types QEMU supports need
+``param_struct`` support, so this option has been removed.
+
 
 User-mode emulator command line arguments
 -----------------------------------------
diff --git a/include/system/system.h b/include/system/system.h
index a7effe7dfd8..03a2d0e9005 100644
--- a/include/system/system.h
+++ b/include/system/system.h
@@ -42,7 +42,6 @@ extern int graphic_height;
 extern int graphic_depth;
 extern int display_opengl;
 extern const char *keyboard_layout;
-extern int old_param;
 extern uint8_t *boot_splash_filedata;
 extern bool enable_cpu_pm;
 extern QEMUClockType rtc_clock;
diff --git a/hw/arm/boot.c b/hw/arm/boot.c
index d391cd01bb1..525b31e1659 100644
--- a/hw/arm/boot.c
+++ b/hw/arm/boot.c
@@ -336,81 +336,6 @@ static void set_kernel_args(const struct arm_boot_info *info, AddressSpace *as)
     WRITE_WORD(p, 0);
 }
 
-static void set_kernel_args_old(const struct arm_boot_info *info,
-                                AddressSpace *as)
-{
-    hwaddr p;
-    const char *s;
-    int initrd_size = info->initrd_size;
-    hwaddr base = info->loader_start;
-
-    /* see linux/include/asm-arm/setup.h */
-    p = base + KERNEL_ARGS_ADDR;
-    /* page_size */
-    WRITE_WORD(p, 4096);
-    /* nr_pages */
-    WRITE_WORD(p, info->ram_size / 4096);
-    /* ramdisk_size */
-    WRITE_WORD(p, 0);
-#define FLAG_READONLY 1
-#define FLAG_RDLOAD   4
-#define FLAG_RDPROMPT 8
-    /* flags */
-    WRITE_WORD(p, FLAG_READONLY | FLAG_RDLOAD | FLAG_RDPROMPT);
-    /* rootdev */
-    WRITE_WORD(p, (31 << 8) | 0); /* /dev/mtdblock0 */
-    /* video_num_cols */
-    WRITE_WORD(p, 0);
-    /* video_num_rows */
-    WRITE_WORD(p, 0);
-    /* video_x */
-    WRITE_WORD(p, 0);
-    /* video_y */
-    WRITE_WORD(p, 0);
-    /* memc_control_reg */
-    WRITE_WORD(p, 0);
-    /* unsigned char sounddefault */
-    /* unsigned char adfsdrives */
-    /* unsigned char bytes_per_char_h */
-    /* unsigned char bytes_per_char_v */
-    WRITE_WORD(p, 0);
-    /* pages_in_bank[4] */
-    WRITE_WORD(p, 0);
-    WRITE_WORD(p, 0);
-    WRITE_WORD(p, 0);
-    WRITE_WORD(p, 0);
-    /* pages_in_vram */
-    WRITE_WORD(p, 0);
-    /* initrd_start */
-    if (initrd_size) {
-        WRITE_WORD(p, info->initrd_start);
-    } else {
-        WRITE_WORD(p, 0);
-    }
-    /* initrd_size */
-    WRITE_WORD(p, initrd_size);
-    /* rd_start */
-    WRITE_WORD(p, 0);
-    /* system_rev */
-    WRITE_WORD(p, 0);
-    /* system_serial_low */
-    WRITE_WORD(p, 0);
-    /* system_serial_high */
-    WRITE_WORD(p, 0);
-    /* mem_fclk_21285 */
-    WRITE_WORD(p, 0);
-    /* zero unused fields */
-    while (p < base + KERNEL_ARGS_ADDR + 256 + 1024) {
-        WRITE_WORD(p, 0);
-    }
-    s = info->kernel_cmdline;
-    if (s) {
-        address_space_write(as, p, MEMTXATTRS_UNSPECIFIED, s, strlen(s) + 1);
-    } else {
-        WRITE_WORD(p, 0);
-    }
-}
-
 static int fdt_add_memory_node(void *fdt, uint32_t acells, hwaddr mem_base,
                                uint32_t scells, hwaddr mem_len,
                                int numa_node_id)
@@ -760,11 +685,7 @@ static void do_cpu_reset(void *opaque)
                 cpu_set_pc(cs, info->loader_start);
 
                 if (!have_dtb(info)) {
-                    if (old_param) {
-                        set_kernel_args_old(info, as);
-                    } else {
-                        set_kernel_args(info, as);
-                    }
+                    set_kernel_args(info, as);
                 }
             } else if (info->secondary_cpu_reset_hook) {
                 info->secondary_cpu_reset_hook(cpu, info);
diff --git a/system/globals.c b/system/globals.c
index 9640c9511e9..98f9876d5d4 100644
--- a/system/globals.c
+++ b/system/globals.c
@@ -52,7 +52,6 @@ bool vga_interface_created;
 Chardev *parallel_hds[MAX_PARALLEL_PORTS];
 QEMUOptionRom option_rom[MAX_OPTION_ROMS];
 int nb_option_roms;
-int old_param;
 const char *qemu_name;
 unsigned int nb_prom_envs;
 const char *prom_envs[MAX_PROM_ENVS];
diff --git a/system/vl.c b/system/vl.c
index 3b7057e6c66..00f36947257 100644
--- a/system/vl.c
+++ b/system/vl.c
@@ -3524,10 +3524,6 @@ void qemu_init(int argc, char **argv)
                 prom_envs[nb_prom_envs] = optarg;
                 nb_prom_envs++;
                 break;
-            case QEMU_OPTION_old_param:
-                warn_report("-old-param is deprecated");
-                old_param = 1;
-                break;
             case QEMU_OPTION_rtc:
                 opts = qemu_opts_parse_noisily(qemu_find_opts("rtc"), optarg,
                                                false);
diff --git a/qemu-options.hx b/qemu-options.hx
index ab23f14d217..aa44b0e34ae 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -5347,13 +5347,6 @@ SRST
         specified, the former is passed to semihosting as it always
         takes precedence.
 ERST
-DEF("old-param", 0, QEMU_OPTION_old_param,
-    "-old-param      old param mode\n", QEMU_ARCH_ARM)
-SRST
-``-old-param``
-    Old param mode (ARM only).
-ERST
-
 DEF("sandbox", HAS_ARG, QEMU_OPTION_sandbox, \
     "-sandbox on[,obsolete=allow|deny][,elevateprivileges=allow|deny|children]\n" \
     "          [,spawn=allow|deny][,resourcecontrol=allow|deny]\n" \
-- 
2.43.0
Re: [PATCH] system: drop the -old-param option
Posted by Philippe Mathieu-Daudé 3 weeks, 5 days ago
On 28/8/25 18:27, Peter Maydell wrote:
> We deprecated the command line option -old-param for the 10.0
> release, which allows us to drop it in 10.2.  This option was used to
> boot Arm targets with a very old boot protocol using the
> 'param_struct' ABI.  We only ever needed this on a handful of board
> types which have all now been removed from QEMU.
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
>   docs/about/deprecated.rst       | 13 ------
>   docs/about/removed-features.rst | 12 +++++
>   include/system/system.h         |  1 -
>   hw/arm/boot.c                   | 81 +--------------------------------
>   system/globals.c                |  1 -
>   system/vl.c                     |  4 --
>   qemu-options.hx                 |  7 ---
>   7 files changed, 13 insertions(+), 106 deletions(-)

FYI this patch doesn't apply anymore.
Re: [PATCH] system: drop the -old-param option
Posted by Peter Maydell 3 weeks, 5 days ago
On Tue, 2 Sept 2025 at 11:54, Philippe Mathieu-Daudé <philmd@linaro.org> wrote:
>
> On 28/8/25 18:27, Peter Maydell wrote:
> > We deprecated the command line option -old-param for the 10.0
> > release, which allows us to drop it in 10.2.  This option was used to
> > boot Arm targets with a very old boot protocol using the
> > 'param_struct' ABI.  We only ever needed this on a handful of board
> > types which have all now been removed from QEMU.
> >
> > Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> > ---
> >   docs/about/deprecated.rst       | 13 ------
> >   docs/about/removed-features.rst | 12 +++++
> >   include/system/system.h         |  1 -
> >   hw/arm/boot.c                   | 81 +--------------------------------
> >   system/globals.c                |  1 -
> >   system/vl.c                     |  4 --
> >   qemu-options.hx                 |  7 ---
> >   7 files changed, 13 insertions(+), 106 deletions(-)
>
> FYI this patch doesn't apply anymore.

I think I wrote it on top of
https://patchwork.ozlabs.org/project/qemu-devel/patch/20250828162012.3307647-1-peter.maydell@linaro.org/
("linux-user: Drop deprecated -p option") -- the conflict
is only in the deprecated-features.rst docs. I'll fix this
up when I apply it to target-arm.next if the linux-user
patch hasn't hit upstream first.

-- PMM
Re: [PATCH] system: drop the -old-param option
Posted by Philippe Mathieu-Daudé 1 month ago
On 28/8/25 18:27, Peter Maydell wrote:
> We deprecated the command line option -old-param for the 10.0
> release, which allows us to drop it in 10.2.  This option was used to
> boot Arm targets with a very old boot protocol using the
> 'param_struct' ABI.  We only ever needed this on a handful of board
> types which have all now been removed from QEMU.
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
>   docs/about/deprecated.rst       | 13 ------
>   docs/about/removed-features.rst | 12 +++++
>   include/system/system.h         |  1 -
>   hw/arm/boot.c                   | 81 +--------------------------------
>   system/globals.c                |  1 -
>   system/vl.c                     |  4 --
>   qemu-options.hx                 |  7 ---
>   7 files changed, 13 insertions(+), 106 deletions(-)


> diff --git a/docs/about/removed-features.rst b/docs/about/removed-features.rst
> index d7c2113fc3e..b1b3d1b1b3f 100644
> --- a/docs/about/removed-features.rst
> +++ b/docs/about/removed-features.rst
> @@ -560,6 +560,18 @@ the options along with the machine models they were intended for.
>   
>   Use ``-run-with user=..`` instead.
>   
> +``-old-param`` option for booting Arm kernels via param_struct (since 10.0)

s/since 10.0/removed in 10.2/

> +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
> +
> +The ``-old-param`` command line option was specific to Arm targets:
> +it was used when directly booting a guest kernel to pass it the
> +command line and other information via the old ``param_struct`` ABI,
> +rather than the newer ATAGS or DTB mechanisms. This option was only
> +ever needed to support ancient kernels on some old board types
> +like the ``akita`` or ``terrier``; it has been deprecated in the
> +kernel since 2001. None of the board types QEMU supports need
> +``param_struct`` support, so this option has been removed.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>


Re: [PATCH] system: drop the -old-param option
Posted by Richard Henderson 1 month ago
On 8/29/25 02:27, Peter Maydell wrote:
> We deprecated the command line option -old-param for the 10.0
> release, which allows us to drop it in 10.2.  This option was used to
> boot Arm targets with a very old boot protocol using the
> 'param_struct' ABI.  We only ever needed this on a handful of board
> types which have all now been removed from QEMU.
> 
> Signed-off-by: Peter Maydell<peter.maydell@linaro.org>
> ---
>   docs/about/deprecated.rst       | 13 ------
>   docs/about/removed-features.rst | 12 +++++
>   include/system/system.h         |  1 -
>   hw/arm/boot.c                   | 81 +--------------------------------
>   system/globals.c                |  1 -
>   system/vl.c                     |  4 --
>   qemu-options.hx                 |  7 ---
>   7 files changed, 13 insertions(+), 106 deletions(-)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>


r~
Re: [PATCH] system: drop the -old-param option
Posted by Manos Pitsidianakis 1 month ago
On Thu, 28 Aug 2025 19:27, Peter Maydell <peter.maydell@linaro.org> wrote:
>We deprecated the command line option -old-param for the 10.0
>release, which allows us to drop it in 10.2.  This option was used to
>boot Arm targets with a very old boot protocol using the
>'param_struct' ABI.  We only ever needed this on a handful of board
>types which have all now been removed from QEMU.
>
>Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
>---

Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>

> docs/about/deprecated.rst       | 13 ------
> docs/about/removed-features.rst | 12 +++++
> include/system/system.h         |  1 -
> hw/arm/boot.c                   | 81 +--------------------------------
> system/globals.c                |  1 -
> system/vl.c                     |  4 --
> qemu-options.hx                 |  7 ---
> 7 files changed, 13 insertions(+), 106 deletions(-)
>
>diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
>index d50645a0711..58bce715f9c 100644
>--- a/docs/about/deprecated.rst
>+++ b/docs/about/deprecated.rst
>@@ -68,19 +68,6 @@ configurations (e.g. -smp drawers=1,books=1,clusters=1 for x86 PC machine) is
> marked deprecated since 9.0, users have to ensure that all the topology members
> described with -smp are supported by the target machine.
> 
>-``-old-param`` option for booting Arm kernels via param_struct (since 10.0)
>-'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
>-
>-The ``-old-param`` command line option is specific to Arm targets:
>-it is used when directly booting a guest kernel to pass it the
>-command line and other information via the old ``param_struct`` ABI,
>-rather than the newer ATAGS or DTB mechanisms. This option was only
>-ever needed to support ancient kernels on some old board types
>-like the ``akita`` or ``terrier``; it has been deprecated in the
>-kernel since 2001. None of the board types QEMU supports need
>-``param_struct`` support, so this option has been deprecated and will
>-be removed in a future QEMU version.
>-
> User-mode emulator command line arguments
> -----------------------------------------
> 
>diff --git a/docs/about/removed-features.rst b/docs/about/removed-features.rst
>index d7c2113fc3e..b1b3d1b1b3f 100644
>--- a/docs/about/removed-features.rst
>+++ b/docs/about/removed-features.rst
>@@ -560,6 +560,18 @@ the options along with the machine models they were intended for.
> 
> Use ``-run-with user=..`` instead.
> 
>+``-old-param`` option for booting Arm kernels via param_struct (since 10.0)
>+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
>+
>+The ``-old-param`` command line option was specific to Arm targets:
>+it was used when directly booting a guest kernel to pass it the
>+command line and other information via the old ``param_struct`` ABI,
>+rather than the newer ATAGS or DTB mechanisms. This option was only
>+ever needed to support ancient kernels on some old board types
>+like the ``akita`` or ``terrier``; it has been deprecated in the
>+kernel since 2001. None of the board types QEMU supports need
>+``param_struct`` support, so this option has been removed.
>+
> 
> User-mode emulator command line arguments
> -----------------------------------------
>diff --git a/include/system/system.h b/include/system/system.h
>index a7effe7dfd8..03a2d0e9005 100644
>--- a/include/system/system.h
>+++ b/include/system/system.h
>@@ -42,7 +42,6 @@ extern int graphic_height;
> extern int graphic_depth;
> extern int display_opengl;
> extern const char *keyboard_layout;
>-extern int old_param;
> extern uint8_t *boot_splash_filedata;
> extern bool enable_cpu_pm;
> extern QEMUClockType rtc_clock;
>diff --git a/hw/arm/boot.c b/hw/arm/boot.c
>index d391cd01bb1..525b31e1659 100644
>--- a/hw/arm/boot.c
>+++ b/hw/arm/boot.c
>@@ -336,81 +336,6 @@ static void set_kernel_args(const struct arm_boot_info *info, AddressSpace *as)
>     WRITE_WORD(p, 0);
> }
> 
>-static void set_kernel_args_old(const struct arm_boot_info *info,
>-                                AddressSpace *as)
>-{
>-    hwaddr p;
>-    const char *s;
>-    int initrd_size = info->initrd_size;
>-    hwaddr base = info->loader_start;
>-
>-    /* see linux/include/asm-arm/setup.h */
>-    p = base + KERNEL_ARGS_ADDR;
>-    /* page_size */
>-    WRITE_WORD(p, 4096);
>-    /* nr_pages */
>-    WRITE_WORD(p, info->ram_size / 4096);
>-    /* ramdisk_size */
>-    WRITE_WORD(p, 0);
>-#define FLAG_READONLY 1
>-#define FLAG_RDLOAD   4
>-#define FLAG_RDPROMPT 8
>-    /* flags */
>-    WRITE_WORD(p, FLAG_READONLY | FLAG_RDLOAD | FLAG_RDPROMPT);
>-    /* rootdev */
>-    WRITE_WORD(p, (31 << 8) | 0); /* /dev/mtdblock0 */
>-    /* video_num_cols */
>-    WRITE_WORD(p, 0);
>-    /* video_num_rows */
>-    WRITE_WORD(p, 0);
>-    /* video_x */
>-    WRITE_WORD(p, 0);
>-    /* video_y */
>-    WRITE_WORD(p, 0);
>-    /* memc_control_reg */
>-    WRITE_WORD(p, 0);
>-    /* unsigned char sounddefault */
>-    /* unsigned char adfsdrives */
>-    /* unsigned char bytes_per_char_h */
>-    /* unsigned char bytes_per_char_v */
>-    WRITE_WORD(p, 0);
>-    /* pages_in_bank[4] */
>-    WRITE_WORD(p, 0);
>-    WRITE_WORD(p, 0);
>-    WRITE_WORD(p, 0);
>-    WRITE_WORD(p, 0);
>-    /* pages_in_vram */
>-    WRITE_WORD(p, 0);
>-    /* initrd_start */
>-    if (initrd_size) {
>-        WRITE_WORD(p, info->initrd_start);
>-    } else {
>-        WRITE_WORD(p, 0);
>-    }
>-    /* initrd_size */
>-    WRITE_WORD(p, initrd_size);
>-    /* rd_start */
>-    WRITE_WORD(p, 0);
>-    /* system_rev */
>-    WRITE_WORD(p, 0);
>-    /* system_serial_low */
>-    WRITE_WORD(p, 0);
>-    /* system_serial_high */
>-    WRITE_WORD(p, 0);
>-    /* mem_fclk_21285 */
>-    WRITE_WORD(p, 0);
>-    /* zero unused fields */
>-    while (p < base + KERNEL_ARGS_ADDR + 256 + 1024) {
>-        WRITE_WORD(p, 0);
>-    }
>-    s = info->kernel_cmdline;
>-    if (s) {
>-        address_space_write(as, p, MEMTXATTRS_UNSPECIFIED, s, strlen(s) + 1);
>-    } else {
>-        WRITE_WORD(p, 0);
>-    }
>-}
>-
> static int fdt_add_memory_node(void *fdt, uint32_t acells, hwaddr mem_base,
>                                uint32_t scells, hwaddr mem_len,
>                                int numa_node_id)
>@@ -760,11 +685,7 @@ static void do_cpu_reset(void *opaque)
>                 cpu_set_pc(cs, info->loader_start);
> 
>                 if (!have_dtb(info)) {
>-                    if (old_param) {
>-                        set_kernel_args_old(info, as);
>-                    } else {
>-                        set_kernel_args(info, as);
>-                    }
>+                    set_kernel_args(info, as);
>                 }
>             } else if (info->secondary_cpu_reset_hook) {
>                 info->secondary_cpu_reset_hook(cpu, info);
>diff --git a/system/globals.c b/system/globals.c
>index 9640c9511e9..98f9876d5d4 100644
>--- a/system/globals.c
>+++ b/system/globals.c
>@@ -52,7 +52,6 @@ bool vga_interface_created;
> Chardev *parallel_hds[MAX_PARALLEL_PORTS];
> QEMUOptionRom option_rom[MAX_OPTION_ROMS];
> int nb_option_roms;
>-int old_param;
> const char *qemu_name;
> unsigned int nb_prom_envs;
> const char *prom_envs[MAX_PROM_ENVS];
>diff --git a/system/vl.c b/system/vl.c
>index 3b7057e6c66..00f36947257 100644
>--- a/system/vl.c
>+++ b/system/vl.c
>@@ -3524,10 +3524,6 @@ void qemu_init(int argc, char **argv)
>                 prom_envs[nb_prom_envs] = optarg;
>                 nb_prom_envs++;
>                 break;
>-            case QEMU_OPTION_old_param:
>-                warn_report("-old-param is deprecated");
>-                old_param = 1;
>-                break;
>             case QEMU_OPTION_rtc:
>                 opts = qemu_opts_parse_noisily(qemu_find_opts("rtc"), optarg,
>                                                false);
>diff --git a/qemu-options.hx b/qemu-options.hx
>index ab23f14d217..aa44b0e34ae 100644
>--- a/qemu-options.hx
>+++ b/qemu-options.hx
>@@ -5347,13 +5347,6 @@ SRST
>         specified, the former is passed to semihosting as it always
>         takes precedence.
> ERST
>-DEF("old-param", 0, QEMU_OPTION_old_param,
>-    "-old-param      old param mode\n", QEMU_ARCH_ARM)
>-SRST
>-``-old-param``
>-    Old param mode (ARM only).
>-ERST
>-
> DEF("sandbox", HAS_ARG, QEMU_OPTION_sandbox, \
>     "-sandbox on[,obsolete=allow|deny][,elevateprivileges=allow|deny|children]\n" \
>     "          [,spawn=allow|deny][,resourcecontrol=allow|deny]\n" \
>-- 
>2.43.0
>
>
Re: [PATCH] system: drop the -old-param option
Posted by Thomas Huth 1 month ago
On 28/08/2025 18.27, Peter Maydell wrote:
> We deprecated the command line option -old-param for the 10.0
> release, which allows us to drop it in 10.2.  This option was used to
> boot Arm targets with a very old boot protocol using the
> 'param_struct' ABI.  We only ever needed this on a handful of board
> types which have all now been removed from QEMU.
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
>   docs/about/deprecated.rst       | 13 ------
>   docs/about/removed-features.rst | 12 +++++
>   include/system/system.h         |  1 -
>   hw/arm/boot.c                   | 81 +--------------------------------
>   system/globals.c                |  1 -
>   system/vl.c                     |  4 --
>   qemu-options.hx                 |  7 ---
>   7 files changed, 13 insertions(+), 106 deletions(-)

Reviewed-by: Thomas Huth <thuth@redhat.com>
Re: [PATCH] system: drop the -old-param option
Posted by Alex Bennée 1 month ago
Peter Maydell <peter.maydell@linaro.org> writes:

> We deprecated the command line option -old-param for the 10.0
> release, which allows us to drop it in 10.2.  This option was used to
> boot Arm targets with a very old boot protocol using the
> 'param_struct' ABI.  We only ever needed this on a handful of board
> types which have all now been removed from QEMU.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro