mirror of
https://github.com/qemu/qemu.git
synced 2026-02-04 05:35:39 +00:00
system: drop the -old-param option
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: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Message-id: 20250828162700.3308812-1-peter.maydell@linaro.org
This commit is contained in:
@@ -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.
|
||||
|
||||
QEMU Machine Protocol (QMP) commands
|
||||
------------------------------------
|
||||
|
||||
|
||||
@@ -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 (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.
|
||||
|
||||
|
||||
User-mode emulator command line arguments
|
||||
-----------------------------------------
|
||||
|
||||
@@ -337,81 +337,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)
|
||||
@@ -802,11 +727,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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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" \
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user