qemu-options: Deprecate -old-param command line option

The '-old-param' command line option is specific to Arm targets; it
is very briefly documented as "old param mode".  What this option
actually does is change the behaviour when directly booting a guest
kernel, so that command line arguments are passed to the kernel using
the extremely old "param_struct" ABI, rather than the newer ATAGS or
even newer DTB mechanisms.

This support was added back in 2007 to support an old vendor kernel
on the akita/terrier board types:
 https://mail.gnu.org/archive/html/qemu-devel/2007-07/msg00344.html
Even then, it was an out-of-date mechanism from the kernel's
point of view -- the kernel has had a comment since 2001 marking
it as deprecated. As of mid-2024, the kernel only retained
param_struct support for the RiscPC and Footbridge platforms:
 https://lore.kernel.org/linux-arm-kernel/2831c5a6-cfbf-4fe0-b51c-0396e5b0aeb7@app.fastmail.com/

None of the board types QEMU supports need param_struct support;
mark this option as deprecated.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Message-id: 20250127123113.2947620-1-peter.maydell@linaro.org
This commit is contained in:
Peter Maydell 2025-02-07 16:09:20 +00:00
parent 76723b8ed7
commit 751002e74a
2 changed files with 14 additions and 0 deletions

View file

@ -68,6 +68,19 @@ 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 marked deprecated since 9.0, users have to ensure that all the topology members
described with -smp are supported by the target machine. 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 User-mode emulator command line arguments
----------------------------------------- -----------------------------------------

View file

@ -3469,6 +3469,7 @@ void qemu_init(int argc, char **argv)
nb_prom_envs++; nb_prom_envs++;
break; break;
case QEMU_OPTION_old_param: case QEMU_OPTION_old_param:
warn_report("-old-param is deprecated");
old_param = 1; old_param = 1;
break; break;
case QEMU_OPTION_rtc: case QEMU_OPTION_rtc: