[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 1/2] Make default boot order machine specific
From: |
Avik Sil |
Subject: |
[Qemu-devel] [PATCH v2 1/2] Make default boot order machine specific |
Date: |
Thu, 25 Oct 2012 20:08:14 +0530 |
This patch makes default boot order machine specific instead of
set globally. The default boot order can be set per machine in
QEMUMachine default_machine_opts, or by the command line using
-machine <machine_name>,boot=<boot_devices>, or by standard -boot
option. This allows a machine to receive a NULL boot order when
-boot isn't used and take an appropriate action accordingly. This
helps machine boots from the devices as set in guest's non-volatile
memory location in case no boot order is provided by the user.
Signed-off-by: Avik Sil <address@hidden>
---
hw/alpha_dp264.c | 1 +
hw/an5206.c | 1 +
hw/axis_dev88.c | 1 +
hw/boards.h | 2 ++
hw/collie.c | 1 +
hw/dummy_m68k.c | 1 +
hw/exynos4_boards.c | 2 ++
hw/gumstix.c | 2 ++
hw/highbank.c | 1 +
hw/integratorcp.c | 1 +
hw/kzm.c | 1 +
hw/leon3.c | 1 +
hw/lm32_boards.c | 2 ++
hw/mainstone.c | 1 +
hw/mcf5208.c | 1 +
hw/milkymist.c | 1 +
hw/mips_fulong2e.c | 1 +
hw/mips_jazz.c | 2 ++
hw/mips_malta.c | 1 +
hw/mips_mipssim.c | 1 +
hw/mips_r4k.c | 1 +
hw/musicpal.c | 1 +
hw/nseries.c | 2 ++
hw/null-machine.c | 1 +
hw/omap_sx1.c | 2 ++
hw/openrisc_sim.c | 1 +
hw/palm.c | 1 +
hw/pc_piix.c | 13 ++++++++++++-
hw/petalogix_ml605_mmu.c | 1 +
hw/petalogix_s3adsp1800_mmu.c | 1 +
hw/ppc/e500plat.c | 1 +
hw/ppc/mpc8544ds.c | 1 +
hw/ppc405_boards.c | 2 ++
hw/ppc440_bamboo.c | 1 +
hw/ppc_newworld.c | 1 +
hw/ppc_oldworld.c | 1 +
hw/ppc_prep.c | 1 +
hw/puv3.c | 1 +
hw/r2d.c | 1 +
hw/realview.c | 4 ++++
hw/s390-virtio.c | 1 +
hw/shix.c | 1 +
hw/spapr.c | 1 +
hw/spitz.c | 4 ++++
hw/stellaris.c | 2 ++
hw/sun4m.c | 12 ++++++++++++
hw/sun4u.c | 3 +++
hw/tosa.c | 1 +
hw/versatilepb.c | 2 ++
hw/vexpress.c | 2 ++
hw/virtex_ml507.c | 1 +
hw/xen_machine_pv.c | 2 +-
hw/xilinx_zynq.c | 1 +
hw/xtensa_lx60.c | 2 ++
hw/xtensa_sim.c | 1 +
hw/z2.c | 1 +
qemu-config.c | 6 +++++-
vl.c | 13 +++++++++----
58 files changed, 112 insertions(+), 7 deletions(-)
diff --git a/hw/alpha_dp264.c b/hw/alpha_dp264.c
index 76d8ae8..0175f48 100644
--- a/hw/alpha_dp264.c
+++ b/hw/alpha_dp264.c
@@ -171,6 +171,7 @@ static QEMUMachine clipper_machine = {
.init = clipper_init,
.max_cpus = 4,
.is_default = 1,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void clipper_machine_init(void)
diff --git a/hw/an5206.c b/hw/an5206.c
index d887c0e..53ef5ff 100644
--- a/hw/an5206.c
+++ b/hw/an5206.c
@@ -86,6 +86,7 @@ static QEMUMachine an5206_machine = {
.name = "an5206",
.desc = "Arnewsh 5206",
.init = an5206_init,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void an5206_machine_init(void)
diff --git a/hw/axis_dev88.c b/hw/axis_dev88.c
index aa1ac9e..9d43bc6 100644
--- a/hw/axis_dev88.c
+++ b/hw/axis_dev88.c
@@ -355,6 +355,7 @@ static QEMUMachine axisdev88_machine = {
.desc = "AXIS devboard 88",
.init = axisdev88_init,
.is_default = 1,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void axisdev88_machine_init(void)
diff --git a/hw/boards.h b/hw/boards.h
index 813d0e5..31a3ec2 100644
--- a/hw/boards.h
+++ b/hw/boards.h
@@ -5,6 +5,8 @@
#include "qdev.h"
+#define DEFAULT_BOOT_ORDER "boot=cad" /* default to HD->floppy->CD-ROM */
+
typedef struct QEMUMachineInitArgs {
ram_addr_t ram_size;
const char *boot_device;
diff --git a/hw/collie.c b/hw/collie.c
index 695982a..b5e88bf 100644
--- a/hw/collie.c
+++ b/hw/collie.c
@@ -62,6 +62,7 @@ static QEMUMachine collie_machine = {
.name = "collie",
.desc = "Collie PDA (SA-1110)",
.init = collie_init,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void collie_machine_init(void)
diff --git a/hw/dummy_m68k.c b/hw/dummy_m68k.c
index 20f790b..1002772 100644
--- a/hw/dummy_m68k.c
+++ b/hw/dummy_m68k.c
@@ -73,6 +73,7 @@ static QEMUMachine dummy_m68k_machine = {
.name = "dummy",
.desc = "Dummy board",
.init = dummy_m68k_init,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void dummy_m68k_machine_init(void)
diff --git a/hw/exynos4_boards.c b/hw/exynos4_boards.c
index 4951064..f12b2f3 100644
--- a/hw/exynos4_boards.c
+++ b/hw/exynos4_boards.c
@@ -160,12 +160,14 @@ static QEMUMachine
exynos4_machines[EXYNOS4_NUM_OF_BOARDS] = {
.desc = "Samsung NURI board (Exynos4210)",
.init = nuri_init,
.max_cpus = EXYNOS4210_NCPUS,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
},
[EXYNOS4_BOARD_SMDKC210] = {
.name = "smdkc210",
.desc = "Samsung SMDKC210 board (Exynos4210)",
.init = smdkc210_init,
.max_cpus = EXYNOS4210_NCPUS,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
},
};
diff --git a/hw/gumstix.c b/hw/gumstix.c
index 4103a88..15a5a8f 100644
--- a/hw/gumstix.c
+++ b/hw/gumstix.c
@@ -122,12 +122,14 @@ static QEMUMachine connex_machine = {
.name = "connex",
.desc = "Gumstix Connex (PXA255)",
.init = connex_init,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static QEMUMachine verdex_machine = {
.name = "verdex",
.desc = "Gumstix Verdex (PXA270)",
.init = verdex_init,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void gumstix_machine_init(void)
diff --git a/hw/highbank.c b/hw/highbank.c
index afbb005..5286ffe 100644
--- a/hw/highbank.c
+++ b/hw/highbank.c
@@ -328,6 +328,7 @@ static QEMUMachine highbank_machine = {
.init = highbank_init,
.use_scsi = 1,
.max_cpus = 4,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void highbank_machine_init(void)
diff --git a/hw/integratorcp.c b/hw/integratorcp.c
index 77807c3..fc72943 100644
--- a/hw/integratorcp.c
+++ b/hw/integratorcp.c
@@ -512,6 +512,7 @@ static QEMUMachine integratorcp_machine = {
.desc = "ARM Integrator/CP (ARM926EJ-S)",
.init = integratorcp_init,
.is_default = 1,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void integratorcp_machine_init(void)
diff --git a/hw/kzm.c b/hw/kzm.c
index 687daf3..b064a15 100644
--- a/hw/kzm.c
+++ b/hw/kzm.c
@@ -146,6 +146,7 @@ static QEMUMachine kzm_machine = {
.name = "kzm",
.desc = "ARM KZM Emulation Baseboard (ARM1136)",
.init = kzm_init,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void kzm_machine_init(void)
diff --git a/hw/leon3.c b/hw/leon3.c
index 7742738..5416fc7 100644
--- a/hw/leon3.c
+++ b/hw/leon3.c
@@ -213,6 +213,7 @@ static QEMUMachine leon3_generic_machine = {
.desc = "Leon-3 generic",
.init = leon3_generic_hw_init,
.use_scsi = 0,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void leon3_machine_init(void)
diff --git a/hw/lm32_boards.c b/hw/lm32_boards.c
index 772cb8b..e28e45a 100644
--- a/hw/lm32_boards.c
+++ b/hw/lm32_boards.c
@@ -289,6 +289,7 @@ static QEMUMachine lm32_evr_machine = {
.desc = "LatticeMico32 EVR32 eval system",
.init = lm32_evr_init,
.is_default = 1
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static QEMUMachine lm32_uclinux_machine = {
@@ -296,6 +297,7 @@ static QEMUMachine lm32_uclinux_machine = {
.desc = "lm32 platform for uClinux and u-boot by Theobroma Systems",
.init = lm32_uclinux_init,
.is_default = 0
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void lm32_machine_init(void)
diff --git a/hw/mainstone.c b/hw/mainstone.c
index 3266946..0b61a84 100644
--- a/hw/mainstone.c
+++ b/hw/mainstone.c
@@ -186,6 +186,7 @@ static QEMUMachine mainstone2_machine = {
.name = "mainstone",
.desc = "Mainstone II (PXA27x)",
.init = mainstone_init,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void mainstone_machine_init(void)
diff --git a/hw/mcf5208.c b/hw/mcf5208.c
index b1db549..3111389 100644
--- a/hw/mcf5208.c
+++ b/hw/mcf5208.c
@@ -292,6 +292,7 @@ static QEMUMachine mcf5208evb_machine = {
.desc = "MCF5206EVB",
.init = mcf5208evb_init,
.is_default = 1,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void mcf5208evb_machine_init(void)
diff --git a/hw/milkymist.c b/hw/milkymist.c
index 4c8111a..cf045b8 100644
--- a/hw/milkymist.c
+++ b/hw/milkymist.c
@@ -208,6 +208,7 @@ static QEMUMachine milkymist_machine = {
.desc = "Milkymist One",
.init = milkymist_init,
.is_default = 0
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void milkymist_machine_init(void)
diff --git a/hw/mips_fulong2e.c b/hw/mips_fulong2e.c
index 5fcf900..0770874 100644
--- a/hw/mips_fulong2e.c
+++ b/hw/mips_fulong2e.c
@@ -400,6 +400,7 @@ static QEMUMachine mips_fulong2e_machine = {
.name = "fulong2e",
.desc = "Fulong 2e mini pc",
.init = mips_fulong2e_init,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void mips_fulong2e_machine_init(void)
diff --git a/hw/mips_jazz.c b/hw/mips_jazz.c
index 0847427..6454886 100644
--- a/hw/mips_jazz.c
+++ b/hw/mips_jazz.c
@@ -325,6 +325,7 @@ static QEMUMachine mips_magnum_machine = {
.desc = "MIPS Magnum",
.init = mips_magnum_init,
.use_scsi = 1,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static QEMUMachine mips_pica61_machine = {
@@ -332,6 +333,7 @@ static QEMUMachine mips_pica61_machine = {
.desc = "Acer Pica 61",
.init = mips_pica61_init,
.use_scsi = 1,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void mips_jazz_machine_init(void)
diff --git a/hw/mips_malta.c b/hw/mips_malta.c
index 0571d58..e8fb5ae 100644
--- a/hw/mips_malta.c
+++ b/hw/mips_malta.c
@@ -1016,6 +1016,7 @@ static QEMUMachine mips_malta_machine = {
.init = mips_malta_init,
.max_cpus = 16,
.is_default = 1,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void mips_malta_register_types(void)
diff --git a/hw/mips_mipssim.c b/hw/mips_mipssim.c
index a95a3c1..cccc955 100644
--- a/hw/mips_mipssim.c
+++ b/hw/mips_mipssim.c
@@ -228,6 +228,7 @@ static QEMUMachine mips_mipssim_machine = {
.name = "mipssim",
.desc = "MIPS MIPSsim platform",
.init = mips_mipssim_init,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void mips_mipssim_machine_init(void)
diff --git a/hw/mips_r4k.c b/hw/mips_r4k.c
index 325098a..3e695b6 100644
--- a/hw/mips_r4k.c
+++ b/hw/mips_r4k.c
@@ -302,6 +302,7 @@ static QEMUMachine mips_machine = {
.name = "mips",
.desc = "mips r4k platform",
.init = mips_r4k_init,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void mips_machine_init(void)
diff --git a/hw/musicpal.c b/hw/musicpal.c
index beec76b..014cfba 100644
--- a/hw/musicpal.c
+++ b/hw/musicpal.c
@@ -1659,6 +1659,7 @@ static QEMUMachine musicpal_machine = {
.name = "musicpal",
.desc = "Marvell 88w8618 / MusicPal (ARM926EJ-S)",
.init = musicpal_init,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void musicpal_machine_init(void)
diff --git a/hw/nseries.c b/hw/nseries.c
index 7ada90d..79623b2 100644
--- a/hw/nseries.c
+++ b/hw/nseries.c
@@ -1427,12 +1427,14 @@ static QEMUMachine n800_machine = {
.name = "n800",
.desc = "Nokia N800 tablet aka. RX-34 (OMAP2420)",
.init = n800_init,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static QEMUMachine n810_machine = {
.name = "n810",
.desc = "Nokia N810 tablet aka. RX-44 (OMAP2420)",
.init = n810_init,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void nseries_machine_init(void)
diff --git a/hw/null-machine.c b/hw/null-machine.c
index d813c08..094e746 100644
--- a/hw/null-machine.c
+++ b/hw/null-machine.c
@@ -24,6 +24,7 @@ static QEMUMachine machine_none = {
.desc = "empty machine",
.init = machine_none_init,
.max_cpus = 0,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void register_machines(void)
diff --git a/hw/omap_sx1.c b/hw/omap_sx1.c
index eb2bf05..cc6ce02 100644
--- a/hw/omap_sx1.c
+++ b/hw/omap_sx1.c
@@ -237,12 +237,14 @@ static QEMUMachine sx1_machine_v2 = {
.name = "sx1",
.desc = "Siemens SX1 (OMAP310) V2",
.init = sx1_init_v2,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static QEMUMachine sx1_machine_v1 = {
.name = "sx1-v1",
.desc = "Siemens SX1 (OMAP310) V1",
.init = sx1_init_v1,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void sx1_machine_init(void)
diff --git a/hw/openrisc_sim.c b/hw/openrisc_sim.c
index 23c66df..3ea0992 100644
--- a/hw/openrisc_sim.c
+++ b/hw/openrisc_sim.c
@@ -139,6 +139,7 @@ static QEMUMachine openrisc_sim_machine = {
.init = openrisc_sim_init,
.max_cpus = 1,
.is_default = 1,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void openrisc_sim_machine_init(void)
diff --git a/hw/palm.c b/hw/palm.c
index d263051..32c2363 100644
--- a/hw/palm.c
+++ b/hw/palm.c
@@ -280,6 +280,7 @@ static QEMUMachine palmte_machine = {
.name = "cheetah",
.desc = "Palm Tungsten|E aka. Cheetah PDA (OMAP310)",
.init = palmte_init,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void palmte_machine_init(void)
diff --git a/hw/pc_piix.c b/hw/pc_piix.c
index 47ebc1a..594b13e 100644
--- a/hw/pc_piix.c
+++ b/hw/pc_piix.c
@@ -352,6 +352,7 @@ static QEMUMachine pc_machine_v1_3 = {
.init = pc_init_pci,
.max_cpus = 255,
.is_default = 1,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
#define PC_COMPAT_1_2 \
@@ -390,6 +391,7 @@ static QEMUMachine pc_machine_v1_2 = {
PC_COMPAT_1_2,
{ /* end of list */ }
},
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
#define PC_COMPAT_1_1 \
@@ -433,6 +435,7 @@ static QEMUMachine pc_machine_v1_1 = {
PC_COMPAT_1_1,
{ /* end of list */ }
},
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
#define PC_COMPAT_1_0 \
@@ -469,6 +472,7 @@ static QEMUMachine pc_machine_v1_0 = {
{ /* end of list */ }
},
.hw_version = "1.0",
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
#define PC_COMPAT_0_15 \
@@ -484,6 +488,7 @@ static QEMUMachine pc_machine_v0_15 = {
{ /* end of list */ }
},
.hw_version = "0.15",
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
#define PC_COMPAT_0_14 \
@@ -525,6 +530,7 @@ static QEMUMachine pc_machine_v0_14 = {
{ /* end of list */ }
},
.hw_version = "0.14",
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
#define PC_COMPAT_0_13 \
@@ -562,6 +568,7 @@ static QEMUMachine pc_machine_v0_13 = {
{ /* end of list */ }
},
.hw_version = "0.13",
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
#define PC_COMPAT_0_12 \
@@ -595,6 +602,7 @@ static QEMUMachine pc_machine_v0_12 = {
{ /* end of list */ }
},
.hw_version = "0.12",
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
#define PC_COMPAT_0_11 \
@@ -628,6 +636,7 @@ static QEMUMachine pc_machine_v0_11 = {
{ /* end of list */ }
},
.hw_version = "0.11",
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static QEMUMachine pc_machine_v0_10 = {
@@ -661,6 +670,7 @@ static QEMUMachine pc_machine_v0_10 = {
{ /* end of list */ }
},
.hw_version = "0.10",
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static QEMUMachine isapc_machine = {
@@ -676,6 +686,7 @@ static QEMUMachine isapc_machine = {
},
{ /* end of list */ }
},
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
#ifdef CONFIG_XEN
@@ -684,7 +695,7 @@ static QEMUMachine xenfv_machine = {
.desc = "Xen Fully-virtualized PC",
.init = pc_xen_hvm_init,
.max_cpus = HVM_MAX_VCPUS,
- .default_machine_opts = "accel=xen",
+ .default_machine_opts = "accel=xen," DEFAULT_BOOT_ORDER,
};
#endif
diff --git a/hw/petalogix_ml605_mmu.c b/hw/petalogix_ml605_mmu.c
index 3589a4b..5a5e625 100644
--- a/hw/petalogix_ml605_mmu.c
+++ b/hw/petalogix_ml605_mmu.c
@@ -174,6 +174,7 @@ static QEMUMachine petalogix_ml605_machine = {
.desc = "PetaLogix linux refdesign for xilinx ml605 little endian",
.init = petalogix_ml605_init,
.is_default = 0
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void petalogix_ml605_machine_init(void)
diff --git a/hw/petalogix_s3adsp1800_mmu.c b/hw/petalogix_s3adsp1800_mmu.c
index c5fd5e7..52ff3bf 100644
--- a/hw/petalogix_s3adsp1800_mmu.c
+++ b/hw/petalogix_s3adsp1800_mmu.c
@@ -116,6 +116,7 @@ static QEMUMachine petalogix_s3adsp1800_machine = {
.desc = "PetaLogix linux refdesign for xilinx Spartan 3ADSP1800",
.init = petalogix_s3adsp1800_init,
.is_default = 1
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void petalogix_s3adsp1800_machine_init(void)
diff --git a/hw/ppc/e500plat.c b/hw/ppc/e500plat.c
index 4cfb940..b62277d 100644
--- a/hw/ppc/e500plat.c
+++ b/hw/ppc/e500plat.c
@@ -51,6 +51,7 @@ static QEMUMachine e500plat_machine = {
.desc = "generic paravirt e500 platform",
.init = e500plat_init,
.max_cpus = 15,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void e500plat_machine_init(void)
diff --git a/hw/ppc/mpc8544ds.c b/hw/ppc/mpc8544ds.c
index e651661..0b899a2 100644
--- a/hw/ppc/mpc8544ds.c
+++ b/hw/ppc/mpc8544ds.c
@@ -52,6 +52,7 @@ static QEMUMachine ppce500_machine = {
.desc = "mpc8544ds",
.init = mpc8544ds_init,
.max_cpus = 15,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void ppce500_machine_init(void)
diff --git a/hw/ppc405_boards.c b/hw/ppc405_boards.c
index 8dc693f..1fd7513 100644
--- a/hw/ppc405_boards.c
+++ b/hw/ppc405_boards.c
@@ -362,6 +362,7 @@ static QEMUMachine ref405ep_machine = {
.name = "ref405ep",
.desc = "ref405ep",
.init = ref405ep_init,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
/*****************************************************************************/
@@ -649,6 +650,7 @@ static QEMUMachine taihu_machine = {
.name = "taihu",
.desc = "taihu",
.init = taihu_405ep_init,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void ppc405_machine_init(void)
diff --git a/hw/ppc440_bamboo.c b/hw/ppc440_bamboo.c
index a6b1d51..0488b0f 100644
--- a/hw/ppc440_bamboo.c
+++ b/hw/ppc440_bamboo.c
@@ -295,6 +295,7 @@ static QEMUMachine bamboo_machine = {
.name = "bamboo",
.desc = "bamboo",
.init = bamboo_init,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void bamboo_machine_init(void)
diff --git a/hw/ppc_newworld.c b/hw/ppc_newworld.c
index 15f74f9..7bdd964 100644
--- a/hw/ppc_newworld.c
+++ b/hw/ppc_newworld.c
@@ -426,6 +426,7 @@ static QEMUMachine core99_machine = {
#ifdef TARGET_PPC64
.is_default = 1,
#endif
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void core99_machine_init(void)
diff --git a/hw/ppc_oldworld.c b/hw/ppc_oldworld.c
index a4f899d..d15e917 100644
--- a/hw/ppc_oldworld.c
+++ b/hw/ppc_oldworld.c
@@ -341,6 +341,7 @@ static QEMUMachine heathrow_machine = {
#ifndef TARGET_PPC64
.is_default = 1,
#endif
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void heathrow_machine_init(void)
diff --git a/hw/ppc_prep.c b/hw/ppc_prep.c
index 085851a..37865bf 100644
--- a/hw/ppc_prep.c
+++ b/hw/ppc_prep.c
@@ -694,6 +694,7 @@ static QEMUMachine prep_machine = {
.desc = "PowerPC PREP platform",
.init = ppc_prep_init,
.max_cpus = MAX_CPUS,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void prep_machine_init(void)
diff --git a/hw/puv3.c b/hw/puv3.c
index 764799c..4a8326c 100644
--- a/hw/puv3.c
+++ b/hw/puv3.c
@@ -123,6 +123,7 @@ static QEMUMachine puv3_machine = {
.init = puv3_init,
.is_default = 1,
.use_scsi = 0,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void puv3_machine_init(void)
diff --git a/hw/r2d.c b/hw/r2d.c
index 66212e9..a9784ad 100644
--- a/hw/r2d.c
+++ b/hw/r2d.c
@@ -347,6 +347,7 @@ static QEMUMachine r2d_machine = {
.name = "r2d",
.desc = "r2d-plus board",
.init = r2d_init,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void r2d_machine_init(void)
diff --git a/hw/realview.c b/hw/realview.c
index baa92d4..d20d16f 100644
--- a/hw/realview.c
+++ b/hw/realview.c
@@ -395,6 +395,7 @@ static QEMUMachine realview_eb_machine = {
.desc = "ARM RealView Emulation Baseboard (ARM926EJ-S)",
.init = realview_eb_init,
.use_scsi = 1,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static QEMUMachine realview_eb_mpcore_machine = {
@@ -403,12 +404,14 @@ static QEMUMachine realview_eb_mpcore_machine = {
.init = realview_eb_mpcore_init,
.use_scsi = 1,
.max_cpus = 4,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static QEMUMachine realview_pb_a8_machine = {
.name = "realview-pb-a8",
.desc = "ARM RealView Platform Baseboard for Cortex-A8",
.init = realview_pb_a8_init,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static QEMUMachine realview_pbx_a9_machine = {
@@ -417,6 +420,7 @@ static QEMUMachine realview_pbx_a9_machine = {
.init = realview_pbx_a9_init,
.use_scsi = 1,
.max_cpus = 4,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void realview_machine_init(void)
diff --git a/hw/s390-virtio.c b/hw/s390-virtio.c
index 85bd13e..7066c76 100644
--- a/hw/s390-virtio.c
+++ b/hw/s390-virtio.c
@@ -343,6 +343,7 @@ static QEMUMachine s390_machine = {
.use_virtcon = 1,
.max_cpus = 255,
.is_default = 1,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void s390_machine_init(void)
diff --git a/hw/shix.c b/hw/shix.c
index b56dd54..e6b5fcb 100644
--- a/hw/shix.c
+++ b/hw/shix.c
@@ -92,6 +92,7 @@ static QEMUMachine shix_machine = {
.desc = "shix card",
.init = shix_init,
.is_default = 1,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void shix_machine_init(void)
diff --git a/hw/spapr.c b/hw/spapr.c
index 73d75e8..57db710 100644
--- a/hw/spapr.c
+++ b/hw/spapr.c
@@ -915,6 +915,7 @@ static QEMUMachine spapr_machine = {
.max_cpus = MAX_CPUS,
.no_parallel = 1,
.use_scsi = 1,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void spapr_machine_init(void)
diff --git a/hw/spitz.c b/hw/spitz.c
index 944c274..7bf3084 100644
--- a/hw/spitz.c
+++ b/hw/spitz.c
@@ -984,24 +984,28 @@ static QEMUMachine akitapda_machine = {
.name = "akita",
.desc = "Akita PDA (PXA270)",
.init = akita_init,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static QEMUMachine spitzpda_machine = {
.name = "spitz",
.desc = "Spitz PDA (PXA270)",
.init = spitz_init,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static QEMUMachine borzoipda_machine = {
.name = "borzoi",
.desc = "Borzoi PDA (PXA270)",
.init = borzoi_init,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static QEMUMachine terrierpda_machine = {
.name = "terrier",
.desc = "Terrier PDA (PXA270)",
.init = terrier_init,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void spitz_machine_init(void)
diff --git a/hw/stellaris.c b/hw/stellaris.c
index b038f10..6920164 100644
--- a/hw/stellaris.c
+++ b/hw/stellaris.c
@@ -1331,12 +1331,14 @@ static QEMUMachine lm3s811evb_machine = {
.name = "lm3s811evb",
.desc = "Stellaris LM3S811EVB",
.init = lm3s811evb_init,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static QEMUMachine lm3s6965evb_machine = {
.name = "lm3s6965evb",
.desc = "Stellaris LM3S6965EVB",
.init = lm3s6965evb_init,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void stellaris_machine_init(void)
diff --git a/hw/sun4m.c b/hw/sun4m.c
index 02673b2..304752c 100644
--- a/hw/sun4m.c
+++ b/hw/sun4m.c
@@ -1428,6 +1428,7 @@ static QEMUMachine ss5_machine = {
.init = ss5_init,
.use_scsi = 1,
.is_default = 1,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static QEMUMachine ss10_machine = {
@@ -1436,6 +1437,7 @@ static QEMUMachine ss10_machine = {
.init = ss10_init,
.use_scsi = 1,
.max_cpus = 4,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static QEMUMachine ss600mp_machine = {
@@ -1444,6 +1446,7 @@ static QEMUMachine ss600mp_machine = {
.init = ss600mp_init,
.use_scsi = 1,
.max_cpus = 4,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static QEMUMachine ss20_machine = {
@@ -1452,6 +1455,7 @@ static QEMUMachine ss20_machine = {
.init = ss20_init,
.use_scsi = 1,
.max_cpus = 4,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static QEMUMachine voyager_machine = {
@@ -1459,6 +1463,7 @@ static QEMUMachine voyager_machine = {
.desc = "Sun4m platform, SPARCstation Voyager",
.init = vger_init,
.use_scsi = 1,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static QEMUMachine ss_lx_machine = {
@@ -1466,6 +1471,7 @@ static QEMUMachine ss_lx_machine = {
.desc = "Sun4m platform, SPARCstation LX",
.init = ss_lx_init,
.use_scsi = 1,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static QEMUMachine ss4_machine = {
@@ -1473,6 +1479,7 @@ static QEMUMachine ss4_machine = {
.desc = "Sun4m platform, SPARCstation 4",
.init = ss4_init,
.use_scsi = 1,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static QEMUMachine scls_machine = {
@@ -1480,6 +1487,7 @@ static QEMUMachine scls_machine = {
.desc = "Sun4m platform, SPARCClassic",
.init = scls_init,
.use_scsi = 1,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static QEMUMachine sbook_machine = {
@@ -1487,6 +1495,7 @@ static QEMUMachine sbook_machine = {
.desc = "Sun4m platform, SPARCbook",
.init = sbook_init,
.use_scsi = 1,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static const struct sun4d_hwdef sun4d_hwdefs[] = {
@@ -1711,6 +1720,7 @@ static QEMUMachine ss1000_machine = {
.init = ss1000_init,
.use_scsi = 1,
.max_cpus = 8,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static QEMUMachine ss2000_machine = {
@@ -1719,6 +1729,7 @@ static QEMUMachine ss2000_machine = {
.init = ss2000_init,
.use_scsi = 1,
.max_cpus = 20,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static const struct sun4c_hwdef sun4c_hwdefs[] = {
@@ -1897,6 +1908,7 @@ static QEMUMachine ss2_machine = {
.desc = "Sun4c platform, SPARCstation 2",
.init = ss2_init,
.use_scsi = 1,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void sun4m_register_types(void)
diff --git a/hw/sun4u.c b/hw/sun4u.c
index 1621171..1f86e04 100644
--- a/hw/sun4u.c
+++ b/hw/sun4u.c
@@ -978,6 +978,7 @@ static QEMUMachine sun4u_machine = {
.init = sun4u_init,
.max_cpus = 1, // XXX for now
.is_default = 1,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static QEMUMachine sun4v_machine = {
@@ -985,6 +986,7 @@ static QEMUMachine sun4v_machine = {
.desc = "Sun4v platform",
.init = sun4v_init,
.max_cpus = 1, // XXX for now
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static QEMUMachine niagara_machine = {
@@ -992,6 +994,7 @@ static QEMUMachine niagara_machine = {
.desc = "Sun4v platform, Niagara",
.init = niagara_init,
.max_cpus = 1, // XXX for now
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void sun4u_register_types(void)
diff --git a/hw/tosa.c b/hw/tosa.c
index 512278c..836ebc6 100644
--- a/hw/tosa.c
+++ b/hw/tosa.c
@@ -251,6 +251,7 @@ static QEMUMachine tosapda_machine = {
.name = "tosa",
.desc = "Tosa PDA (PXA255)",
.init = tosa_init,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void tosapda_machine_init(void)
diff --git a/hw/versatilepb.c b/hw/versatilepb.c
index f55bd0c..2cf7228 100644
--- a/hw/versatilepb.c
+++ b/hw/versatilepb.c
@@ -381,6 +381,7 @@ static QEMUMachine versatilepb_machine = {
.desc = "ARM Versatile/PB (ARM926EJ-S)",
.init = vpb_init,
.use_scsi = 1,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static QEMUMachine versatileab_machine = {
@@ -388,6 +389,7 @@ static QEMUMachine versatileab_machine = {
.desc = "ARM Versatile/AB (ARM926EJ-S)",
.init = vab_init,
.use_scsi = 1,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void versatile_machine_init(void)
diff --git a/hw/vexpress.c b/hw/vexpress.c
index 3f7cb66..183330b 100644
--- a/hw/vexpress.c
+++ b/hw/vexpress.c
@@ -499,6 +499,7 @@ static QEMUMachine vexpress_a9_machine = {
.init = vexpress_a9_init,
.use_scsi = 1,
.max_cpus = 4,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static QEMUMachine vexpress_a15_machine = {
@@ -507,6 +508,7 @@ static QEMUMachine vexpress_a15_machine = {
.init = vexpress_a15_init,
.use_scsi = 1,
.max_cpus = 4,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void vexpress_machine_init(void)
diff --git a/hw/virtex_ml507.c b/hw/virtex_ml507.c
index 6ab8fee..e470a1f 100644
--- a/hw/virtex_ml507.c
+++ b/hw/virtex_ml507.c
@@ -264,6 +264,7 @@ static QEMUMachine virtex_machine = {
.name = "virtex-ml507",
.desc = "Xilinx Virtex ML507 reference design",
.init = virtex_init,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void virtex_machine_init(void)
diff --git a/hw/xen_machine_pv.c b/hw/xen_machine_pv.c
index 4264703..98f63d1 100644
--- a/hw/xen_machine_pv.c
+++ b/hw/xen_machine_pv.c
@@ -114,7 +114,7 @@ static QEMUMachine xenpv_machine = {
.desc = "Xen Para-virtualized PC",
.init = xen_init_pv,
.max_cpus = 1,
- .default_machine_opts = "accel=xen",
+ .default_machine_opts = "accel=xen," DEFAULT_BOOT_ORDER,
};
static void xenpv_machine_init(void)
diff --git a/hw/xilinx_zynq.c b/hw/xilinx_zynq.c
index c55dafb..599fa00 100644
--- a/hw/xilinx_zynq.c
+++ b/hw/xilinx_zynq.c
@@ -184,6 +184,7 @@ static QEMUMachine zynq_machine = {
.use_scsi = 1,
.max_cpus = 1,
.no_sdcard = 1
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void zynq_machine_init(void)
diff --git a/hw/xtensa_lx60.c b/hw/xtensa_lx60.c
index 5dd2e08..dec24b8 100644
--- a/hw/xtensa_lx60.c
+++ b/hw/xtensa_lx60.c
@@ -310,6 +310,7 @@ static QEMUMachine xtensa_lx60_machine = {
.desc = "lx60 EVB (" XTENSA_DEFAULT_CPU_MODEL ")",
.init = xtensa_lx60_init,
.max_cpus = 4,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static QEMUMachine xtensa_lx200_machine = {
@@ -317,6 +318,7 @@ static QEMUMachine xtensa_lx200_machine = {
.desc = "lx200 EVB (" XTENSA_DEFAULT_CPU_MODEL ")",
.init = xtensa_lx200_init,
.max_cpus = 4,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void xtensa_lx_machines_init(void)
diff --git a/hw/xtensa_sim.c b/hw/xtensa_sim.c
index 2e846d8..5e484b8 100644
--- a/hw/xtensa_sim.c
+++ b/hw/xtensa_sim.c
@@ -117,6 +117,7 @@ static QEMUMachine xtensa_sim_machine = {
.is_default = true,
.init = xtensa_sim_init,
.max_cpus = 4,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void xtensa_sim_machine_init(void)
diff --git a/hw/z2.c b/hw/z2.c
index f62b806..bed5c49 100644
--- a/hw/z2.c
+++ b/hw/z2.c
@@ -373,6 +373,7 @@ static QEMUMachine z2_machine = {
.name = "z2",
.desc = "Zipit Z2 (PXA27x)",
.init = z2_init,
+ .default_machine_opts = DEFAULT_BOOT_ORDER,
};
static void z2_machine_init(void)
diff --git a/qemu-config.c b/qemu-config.c
index cd1ec21..92dfc8e 100644
--- a/qemu-config.c
+++ b/qemu-config.c
@@ -619,7 +619,11 @@ static QemuOptsList qemu_machine_opts = {
.name = "mem-merge",
.type = QEMU_OPT_BOOL,
.help = "enable/disable memory merge support",
- },
+ }, {
+ .name = "boot",
+ .type = QEMU_OPT_STRING,
+ .help = "boot order",
+ },
{ /* End of list */ }
},
};
diff --git a/vl.c b/vl.c
index ee3c43a..6ef2246 100644
--- a/vl.c
+++ b/vl.c
@@ -2369,7 +2369,7 @@ int main(int argc, char **argv, char **envp)
const char *icount_option = NULL;
const char *initrd_filename;
const char *kernel_filename, *kernel_cmdline;
- char boot_devices[33] = "cad"; /* default to HD->floppy->CD-ROM */
+ const char *boot_devices = NULL;
DisplayState *ds;
DisplayChangeListener *dcl;
int cyls, heads, secs, translation;
@@ -2645,7 +2645,7 @@ int main(int argc, char **argv, char **envp)
"splash", "splash-time",
"reboot-timeout", NULL
};
- char buf[sizeof(boot_devices)];
+ char buf[33];
char *standard_boot_devices;
int legacy = 0;
@@ -2662,14 +2662,18 @@ int main(int argc, char **argv, char **envp)
if (legacy ||
get_param_value(buf, sizeof(buf), "order", optarg)) {
validate_bootdevices(buf);
- pstrcpy(boot_devices, sizeof(boot_devices), buf);
+ machine_opts =
qemu_opts_create(qemu_find_opts("machine"),
+ NULL, 0, NULL);
+ qemu_opt_set(machine_opts, "boot", buf);
}
if (!legacy) {
if (get_param_value(buf, sizeof(buf),
"once", optarg)) {
validate_bootdevices(buf);
standard_boot_devices = g_strdup(boot_devices);
- pstrcpy(boot_devices, sizeof(boot_devices), buf);
+ machine_opts =
qemu_opts_create(qemu_find_opts("machine"),
+ NULL, 0, NULL);
+ qemu_opt_set(machine_opts, "boot", buf);
qemu_register_reset(restore_boot_devices,
standard_boot_devices);
}
@@ -3479,6 +3483,7 @@ int main(int argc, char **argv, char **envp)
kernel_filename = qemu_opt_get(machine_opts, "kernel");
initrd_filename = qemu_opt_get(machine_opts, "initrd");
kernel_cmdline = qemu_opt_get(machine_opts, "append");
+ boot_devices = qemu_opt_get(machine_opts, "boot");
} else {
kernel_filename = initrd_filename = kernel_cmdline = NULL;
}
--
1.7.11.4
Re: [Qemu-devel] [PATCH v2 0/2] Qemu boot order patch series, Alexander Graf, 2012/10/25