[SeaBIOS] [Qemu-devel] [PATCH v5 for-2.3 21/28] hw/pci: inform bios if the system has more than one pci bridge

Michael S. Tsirkin mst at redhat.com
Tue Mar 10 17:36:10 CET 2015


On Tue, Mar 10, 2015 at 05:32:07PM +0200, Marcel Apfelbaum wrote:
> From: Marcel Apfelbaum <marcel.a at redhat.com>
> 
> The bios looks for 'etc/extra-pci-roots' to decide if
> is going to scan further buses after bus 0 tree.
> 
> Signed-off-by: Marcel Apfelbaum <marcel at redhat.com>

Again it's not the right thing to do for extra root
complexes, only works for PXB.

> ---
>  hw/i386/pc.c | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> index ae3ef0a..71d2f5b 100644
> --- a/hw/i386/pc.c
> +++ b/hw/i386/pc.c
> @@ -1072,9 +1072,22 @@ typedef struct PcGuestInfoState {
>  static
>  void pc_guest_info_machine_done(Notifier *notifier, void *data)
>  {
> +    PCIHostState *host;
> +    int hosts = 0;
>      PcGuestInfoState *guest_info_state = container_of(notifier,
>                                                        PcGuestInfoState,
>                                                        machine_done);
> +    HOST_BRIDGE_FOREACH(host) {
> +        hosts++;
> +    }
> +
> +    if (hosts && guest_info_state->info.fw_cfg) {
> +        uint64_t *val = g_malloc(sizeof(*val));
> +        *val = cpu_to_le64(hosts - 1);
> +        fw_cfg_add_file(guest_info_state->info.fw_cfg,
> +                        "etc/extra-pci-roots", val, sizeof(*val));
> +    }
> +
>      acpi_setup(&guest_info_state->info);
>  }
>  
> -- 
> 2.1.0



More information about the SeaBIOS mailing list