Message ID | 20250127123113.2947620-1-peter.maydell@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | qemu-options: Deprecate -old-param command line option | expand |
Ping for code review, please? thanks -- PMM On Mon, 27 Jan 2025 at 12:31, Peter Maydell <peter.maydell@linaro.org> wrote: > > 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> > --- > docs/about/deprecated.rst | 13 +++++++++++++ > system/vl.c | 1 + > 2 files changed, 14 insertions(+) > > diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst > index 29de49351d1..a4c7d642236 100644 > --- a/docs/about/deprecated.rst > +++ b/docs/about/deprecated.rst > @@ -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 > 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/system/vl.c b/system/vl.c > index c5678267182..32ee1ce7041 100644 > --- a/system/vl.c > +++ b/system/vl.c > @@ -3438,6 +3438,7 @@ void qemu_init(int argc, char **argv) > nb_prom_envs++; > break; > case QEMU_OPTION_old_param: > + warn_report("-old-param is deprecated"); > old_param = 1; > break; > case QEMU_OPTION_rtc: > --
On Mon, Jan 27, 2025 at 12:31:13PM +0000, Peter Maydell wrote: > 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> > --- > docs/about/deprecated.rst | 13 +++++++++++++ > system/vl.c | 1 + > 2 files changed, 14 insertions(+) I think it is reasonable to remove this extreme special case given the history around it Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> > > diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst > index 29de49351d1..a4c7d642236 100644 > --- a/docs/about/deprecated.rst > +++ b/docs/about/deprecated.rst > @@ -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 > 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/system/vl.c b/system/vl.c > index c5678267182..32ee1ce7041 100644 > --- a/system/vl.c > +++ b/system/vl.c > @@ -3438,6 +3438,7 @@ void qemu_init(int argc, char **argv) > nb_prom_envs++; > break; > case QEMU_OPTION_old_param: > + warn_report("-old-param is deprecated"); > old_param = 1; > break; > case QEMU_OPTION_rtc: > -- > 2.34.1 > > With regards, Daniel
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst index 29de49351d1..a4c7d642236 100644 --- a/docs/about/deprecated.rst +++ b/docs/about/deprecated.rst @@ -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 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/system/vl.c b/system/vl.c index c5678267182..32ee1ce7041 100644 --- a/system/vl.c +++ b/system/vl.c @@ -3438,6 +3438,7 @@ void qemu_init(int argc, char **argv) nb_prom_envs++; break; case QEMU_OPTION_old_param: + warn_report("-old-param is deprecated"); old_param = 1; break; case QEMU_OPTION_rtc:
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> --- docs/about/deprecated.rst | 13 +++++++++++++ system/vl.c | 1 + 2 files changed, 14 insertions(+)