[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [PATCH 1/2] Make default boot order machine specific
From: |
Alexander Graf |
Subject: |
Re: [Qemu-ppc] [PATCH 1/2] Make default boot order machine specific |
Date: |
Wed, 24 Oct 2012 00:47:34 +0200 |
On 24.10.2012, at 00:43, David Gibson wrote:
> On Tue, Oct 23, 2012 at 12:20:08PM +0200, Alexander Graf wrote:
>>
>> On 23.10.2012, at 12:09, Avik Sil wrote:
>>
>>> 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/nseries.c | 2 ++
>>> hw/pc_piix.c | 13 ++++++++++++-
>>> hw/ppc_newworld.c | 1 +
>>> hw/ppc_oldworld.c | 1 +
>>> hw/ppc_prep.c | 1 +
>>> hw/sun4m.c | 10 ++++++++++
>>> hw/sun4u.c | 3 +++
>>
>> That feels like too much magic for my taste. Can't we have some
>> default macro (or even the explicit "cad" thing) that we push to
>> _every_ machine description out there? The next patch to implement
>> boot= for pseries would then remove this default value for the
>> pseries machine.
>
> I'm not 100% clear on what you mean here. Do you just mean:
> #define DEFAULT_BOOT_ORDER "boot=cad"
> and then we use
> .default_machine_opts = DEFAULT_BOOT_ORDER,
>
> or something else?
I mean that this patch only patches 7 files. Check this out:
dekai:qemu alex$ grep -R register_machine hw
hw/alpha_dp264.c: qemu_register_machine(&clipper_machine);
hw/an5206.c: qemu_register_machine(&an5206_machine);
hw/axis_dev88.c: qemu_register_machine(&axisdev88_machine);
hw/boards.h:int qemu_register_machine(QEMUMachine *m);
hw/collie.c: qemu_register_machine(&collie_machine);
hw/dummy_m68k.c: qemu_register_machine(&dummy_m68k_machine);
hw/exynos4_boards.c:
qemu_register_machine(&exynos4_machines[EXYNOS4_BOARD_NURI]);
hw/exynos4_boards.c:
qemu_register_machine(&exynos4_machines[EXYNOS4_BOARD_SMDKC210]);
hw/gumstix.c: qemu_register_machine(&connex_machine);
hw/gumstix.c: qemu_register_machine(&verdex_machine);
hw/highbank.c: qemu_register_machine(&highbank_machine);
hw/integratorcp.c: qemu_register_machine(&integratorcp_machine);
hw/leon3.c: qemu_register_machine(&leon3_generic_machine);
hw/lm32_boards.c: qemu_register_machine(&lm32_uclinux_machine);
hw/lm32_boards.c: qemu_register_machine(&lm32_evr_machine);
hw/mainstone.c: qemu_register_machine(&mainstone2_machine);
hw/mcf5208.c: qemu_register_machine(&mcf5208evb_machine);
hw/milkymist.c: qemu_register_machine(&milkymist_machine);
hw/mips_fulong2e.c: qemu_register_machine(&mips_fulong2e_machine);
hw/mips_jazz.c: qemu_register_machine(&mips_magnum_machine);
hw/mips_jazz.c: qemu_register_machine(&mips_pica61_machine);
hw/mips_malta.c: qemu_register_machine(&mips_malta_machine);
hw/mips_mipssim.c: qemu_register_machine(&mips_mipssim_machine);
hw/mips_r4k.c: qemu_register_machine(&mips_machine);
hw/musicpal.c: qemu_register_machine(&musicpal_machine);
hw/nseries.c: qemu_register_machine(&n800_machine);
hw/nseries.c: qemu_register_machine(&n810_machine);
hw/omap_sx1.c: qemu_register_machine(&sx1_machine_v2);
hw/omap_sx1.c: qemu_register_machine(&sx1_machine_v1);
hw/palm.c: qemu_register_machine(&palmte_machine);
hw/pc_piix.c: qemu_register_machine(&pc_machine_v1_1);
hw/pc_piix.c: qemu_register_machine(&pc_machine_v1_0);
hw/pc_piix.c: qemu_register_machine(&pc_machine_v0_15);
hw/pc_piix.c: qemu_register_machine(&pc_machine_v0_14);
hw/pc_piix.c: qemu_register_machine(&pc_machine_v0_13);
hw/pc_piix.c: qemu_register_machine(&pc_machine_v0_12);
hw/pc_piix.c: qemu_register_machine(&pc_machine_v0_11);
hw/pc_piix.c: qemu_register_machine(&pc_machine_v0_10);
hw/pc_piix.c: qemu_register_machine(&isapc_machine);
hw/pc_piix.c: qemu_register_machine(&xenfv_machine);
hw/petalogix_ml605_mmu.c: qemu_register_machine(&petalogix_ml605_machine);
hw/petalogix_s3adsp1800_mmu.c:
qemu_register_machine(&petalogix_s3adsp1800_machine);
hw/ppc405_boards.c: qemu_register_machine(&ref405ep_machine);
hw/ppc405_boards.c: qemu_register_machine(&taihu_machine);
hw/ppc440_bamboo.c: qemu_register_machine(&bamboo_machine);
hw/ppc_newworld.c: qemu_register_machine(&core99_machine);
hw/ppc_oldworld.c: qemu_register_machine(&heathrow_machine);
hw/ppc_prep.c: qemu_register_machine(&prep_machine);
hw/ppce500_mpc8544ds.c: qemu_register_machine(&mpc8544ds_machine);
hw/r2d.c: qemu_register_machine(&r2d_machine);
hw/realview.c: qemu_register_machine(&realview_eb_machine);
hw/realview.c: qemu_register_machine(&realview_eb_mpcore_machine);
hw/realview.c: qemu_register_machine(&realview_pb_a8_machine);
hw/realview.c: qemu_register_machine(&realview_pbx_a9_machine);
hw/s390-virtio.c: qemu_register_machine(&s390_machine);
hw/shix.c: qemu_register_machine(&shix_machine);
hw/spapr.c: qemu_register_machine(&spapr_machine);
hw/spitz.c: qemu_register_machine(&akitapda_machine);
hw/spitz.c: qemu_register_machine(&spitzpda_machine);
hw/spitz.c: qemu_register_machine(&borzoipda_machine);
hw/spitz.c: qemu_register_machine(&terrierpda_machine);
hw/stellaris.c: qemu_register_machine(&lm3s811evb_machine);
hw/stellaris.c: qemu_register_machine(&lm3s6965evb_machine);
hw/sun4m.c: qemu_register_machine(&ss5_machine);
hw/sun4m.c: qemu_register_machine(&ss10_machine);
hw/sun4m.c: qemu_register_machine(&ss600mp_machine);
hw/sun4m.c: qemu_register_machine(&ss20_machine);
hw/sun4m.c: qemu_register_machine(&voyager_machine);
hw/sun4m.c: qemu_register_machine(&ss_lx_machine);
hw/sun4m.c: qemu_register_machine(&ss4_machine);
hw/sun4m.c: qemu_register_machine(&scls_machine);
hw/sun4m.c: qemu_register_machine(&sbook_machine);
hw/sun4m.c: qemu_register_machine(&ss1000_machine);
hw/sun4m.c: qemu_register_machine(&ss2000_machine);
hw/sun4m.c: qemu_register_machine(&ss2_machine);
hw/sun4u.c: qemu_register_machine(&sun4u_machine);
hw/sun4u.c: qemu_register_machine(&sun4v_machine);
hw/sun4u.c: qemu_register_machine(&niagara_machine);
hw/tosa.c: qemu_register_machine(&tosapda_machine);
hw/versatilepb.c: qemu_register_machine(&versatilepb_machine);
hw/versatilepb.c: qemu_register_machine(&versatileab_machine);
hw/vexpress.c: qemu_register_machine(&vexpress_a9_machine);
hw/vexpress.c: qemu_register_machine(&vexpress_a15_machine);
hw/virtex_ml507.c: qemu_register_machine(&virtex_machine);
hw/xen_machine_pv.c: qemu_register_machine(&xenpv_machine);
hw/xilinx_zynq.c: qemu_register_machine(&zynq_machine);
hw/xtensa_lx60.c: qemu_register_machine(&xtensa_lx60_machine);
hw/xtensa_lx60.c: qemu_register_machine(&xtensa_lx200_machine);
hw/xtensa_sim.c: qemu_register_machine(&xtensa_sim_machine);
hw/z2.c: qemu_register_machine(&z2_machine);
Looks like a lot more files to me :).
>
>> The way the patch works right now, the "make machine specific" patch
>> indirectly also changes the behavior for a bunch of machines.
>
> A bunch? I thought the only machine whose behaviour changed was
> pseries.
It changes the behavior of all machines that are not patched, because they will
fall back to no boot order now.
Alex
> I agree that moving the behaviour change into a separate
> patch would be a better idea, but if there are machines other than
> pseries with changed behaviour by this patch, then that's a plain old
> bug, rather than a mere question of patch elegance.
>
> --
> David Gibson | I'll have my music baroque, and my code
> david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_
> _other_
> | _way_ _around_!
> http://www.ozlabs.org/~dgibson
>
[Qemu-ppc] [PATCH 2/2] pseries: set boot-device property only if boot order specified, Avik Sil, 2012/10/23