[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RESEND RFC 2/6] device_tree: introduce load_device_tre
From: |
Thomas Huth |
Subject: |
Re: [Qemu-devel] [RESEND RFC 2/6] device_tree: introduce load_device_tree_from_sysfs |
Date: |
Thu, 26 Nov 2015 11:57:20 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 |
On 19/11/15 16:22, Eric Auger wrote:
> This function returns the host device tree blob from sysfs
> (/sys/firmware/devicetree/base).
>
> This has a runtime dependency on the dtc binary. This functionality
> is useful for platform device passthrough where the host device tree
> needs to be parsed to feed information into the guest device tree.
>
> Signed-off-by: Eric Auger <address@hidden>
> ---
> device_tree.c | 40 ++++++++++++++++++++++++++++++++++++++++
> include/sysemu/device_tree.h | 1 +
> 2 files changed, 41 insertions(+)
>
> diff --git a/device_tree.c b/device_tree.c
> index a9f5f8e..58a5329 100644
> --- a/device_tree.c
> +++ b/device_tree.c
> @@ -117,6 +117,46 @@ fail:
> return NULL;
> }
>
> +/**
> + * load_device_tree_from_sysfs
> + *
> + * extract the dt blob from host sysfs
> + * this has a runtime dependency on the dtc binary
> + */
> +void *load_device_tree_from_sysfs(void)
> +{
> + char cmd[] = "dtc -I fs -O dtb /sys/firmware/devicetree/base";
> + FILE *pipe;
> + void *fdt;
> + int ret, actual_dt_size;
> +
> + pipe = popen(cmd, "r");
> + if (!pipe) {
> + error_report("%s: Error when executing dtc", __func__);
> + return NULL;
> + }
The Device Tree Compiler binary is normally only installed on
developer's machines, so I somewhat doubt that it is a good idea to rely
on the availability of that binary in QEMU? Maybe you should rather
extend libfdt to support such a feature?
Thomas
- [Qemu-devel] [RESEND RFC 0/6] AMD XGBE KVM platform passthrough, Eric Auger, 2015/11/19
- [Qemu-devel] [RESEND RFC 2/6] device_tree: introduce load_device_tree_from_sysfs, Eric Auger, 2015/11/19
- [Qemu-devel] [RESEND RFC 3/6] device_tree: introduce qemu_fdt_node_path, Eric Auger, 2015/11/19
- [Qemu-devel] [RESEND RFC 4/6] device_tree: introduce qemu_fdt_getprop_optional, Eric Auger, 2015/11/19
- [Qemu-devel] [RESEND RFC 5/6] hw/arm/sysbus-fdt: helpers for clock node generation, Eric Auger, 2015/11/19
- [Qemu-devel] [RESEND RFC 1/6] hw/vfio/platform: amd-xgbe device, Eric Auger, 2015/11/19
- [Qemu-devel] [RESEND RFC 6/6] hw/arm/sysbus-fdt: enable amd-xgbe dynamic instantiation, Eric Auger, 2015/11/19