qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [for-2.11 PATCH 19/26] spapr: populate PHB DRC entries


From: Michael Roth
Subject: Re: [Qemu-devel] [for-2.11 PATCH 19/26] spapr: populate PHB DRC entries for root DT node
Date: Tue, 25 Jul 2017 15:51:21 -0500
User-agent: alot/0.5.1

Quoting Greg Kurz (2017-07-25 13:02:03)
> From: Nathan Fontenot <address@hidden>
> 
> This add entries to the root OF node to advertise our PHBs as being
> DR-capable in accordance with PAPR specification.
> 
> Signed-off-by: Nathan Fontenot <address@hidden>
> Signed-off-by: Michael Roth <address@hidden>
> Reviewed-by: David Gibson <address@hidden>
> Signed-off-by: Greg Kurz <address@hidden>
> ---
> Changes since RFC:
> - rebased against ppc-for-2.10
> - use error_report
> ---
>  hw/ppc/spapr.c |   10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index 5950c009ab7e..632040f35ecc 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -1151,6 +1151,16 @@ static void *spapr_build_fdt(sPAPRMachineState *spapr,
>          exit(1);
>      }
> 
> +    if (smc->dr_phb_enabled) {
> +        int offset = fdt_path_offset(fdt, "/");
> +        ret = spapr_drc_populate_dt(fdt, offset, NULL,
> +                                    SPAPR_DR_CONNECTOR_TYPE_PHB);

This might actually clobber LMB/MEM entries added earlier since they both
try to create the /ibm,drc* entries in / from scratch.
  
If that's the case, we can arrange the code something like:
  
  uint32_t root_drc_types = 0;
  
  if (smc->dr_lmb_enabled) {
      root_drc_types |= SPAPR_DR_CONNECTOR_TYPE_LMB;
  }
  
  if (smc->dr_phb_enabled) {
      root_drc_types |= SPAPR_DR_CONNECTOR_TYPE_PHB;
  }
  
  ...
  
  if (root_drc_types) {
    int offset = fdt_path_offset(fdt, "/");
    ret = spapr_drc_populate_dt(fdt, offset, NULL, root_drc_types);
  }


> +        if (ret < 0) {
> +            error_report("Couldn't set up PHB DR device tree properties");
> +            exit(1);
> +        }
> +    }
> +
>      return fdt;
>  }
> 
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]