[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] fw_cfg: add bootdevice-ignore-suffixes property
From: |
Mark Cave-Ayland |
Subject: |
[Qemu-devel] [PATCH] fw_cfg: add bootdevice-ignore-suffixes property |
Date: |
Wed, 8 Aug 2018 20:19:51 +0100 |
For the older machines (such as Mac and SPARC) the DT nodes representing
bootdevices for disk nodes are irregular for mainly historical reasons.
Since the majority of bootdevice nodes for these machines either do not have a
separate disk node or require different (custom) names then it is much easier
to disable all suffixes for a particular machine by setting the ignore_suffixes
parameter to get_boot_devices_list() to true, and customise the disk nodes as
required.
Here we add a new bootdevice-ignore-suffixes property to the FW_CFG device to
allow the generation of disk suffixes to be controlled on a per-machine basis.
Signed-off-by: Mark Cave-Ayland <address@hidden>
---
hw/nvram/fw_cfg.c | 9 ++++++++-
include/hw/nvram/fw_cfg.h | 1 +
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c
index b23e7f64a8..52488b999f 100644
--- a/hw/nvram/fw_cfg.c
+++ b/hw/nvram/fw_cfg.c
@@ -861,7 +861,8 @@ static void fw_cfg_machine_reset(void *opaque)
void *ptr;
size_t len;
FWCfgState *s = opaque;
- char *bootindex = get_boot_devices_list(&len, false);
+ char *bootindex = get_boot_devices_list(&len,
+ s->bootdevice_ignore_suffixes);
ptr = fw_cfg_modify_file(s, "bootorder", (uint8_t *)bootindex, len);
g_free(ptr);
@@ -990,12 +991,18 @@ FWCfgState *fw_cfg_find(void)
return FW_CFG(object_resolve_path_type("", TYPE_FW_CFG, NULL));
}
+static Property fw_cfg_properties[] = {
+ DEFINE_PROP_BOOL("bootdevice-ignore-suffixes", FWCfgState,
+ bootdevice_ignore_suffixes, false),
+ DEFINE_PROP_END_OF_LIST(),
+};
static void fw_cfg_class_init(ObjectClass *klass, void *data)
{
DeviceClass *dc = DEVICE_CLASS(klass);
dc->reset = fw_cfg_reset;
+ dc->props = fw_cfg_properties;
dc->vmsd = &vmstate_fw_cfg;
}
diff --git a/include/hw/nvram/fw_cfg.h b/include/hw/nvram/fw_cfg.h
index b2259cc4a3..848c83aef4 100644
--- a/include/hw/nvram/fw_cfg.h
+++ b/include/hw/nvram/fw_cfg.h
@@ -58,6 +58,7 @@ struct FWCfgState {
uint16_t cur_entry;
uint32_t cur_offset;
Notifier machine_ready;
+ bool bootdevice_ignore_suffixes;
int fw_cfg_order_override;
--
2.11.0
- [Qemu-devel] [PATCH] fw_cfg: add bootdevice-ignore-suffixes property,
Mark Cave-Ayland <=