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

Re: [Xen-devel] [PATCH v1 02/21] ArmVirtualizationPkg: add GICv3 detection to VirtFdtDxe



On 01/23/15 16:02, Ard Biesheuvel wrote:
> This adds support for detecting the presence of a GICv3 interrupt
> controller from the device tree, and recording its distributor
> base address in a PCD.
> 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
> ---
>  .../ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.c      | 19 
> +++++++++++++++++++
>  1 file changed, 19 insertions(+)
> 
> diff --git a/ArmPlatformPkg/ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.c 
> b/ArmPlatformPkg/ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.c
> index 4e4f608923d3..8953f78f5fe4 100644
> --- a/ArmPlatformPkg/ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.c
> +++ b/ArmPlatformPkg/ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.c
> @@ -46,6 +46,7 @@ typedef enum {
>    PropertyTypeTimer,
>    PropertyTypePsci,
>    PropertyTypeFwCfg,
> +  PropertyTypeGicV3,
>  } PROPERTY_TYPE;
>  
>  typedef struct {
> @@ -62,6 +63,7 @@ STATIC CONST PROPERTY CompatibleProperties[] = {
>    { PropertyTypeTimer,   "arm,armv8-timer"     },
>    { PropertyTypePsci,    "arm,psci-0.2"        },
>    { PropertyTypeFwCfg,   "qemu,fw-cfg-mmio"    },
> +  { PropertyTypeGicV3,   "arm,gic-v3"          },
>    { PropertyTypeUnknown, ""                    }
>  };
>  
> @@ -256,6 +258,23 @@ InitializeVirtFdtDxe (
>        DEBUG ((EFI_D_INFO, "Found GIC @ 0x%Lx/0x%Lx\n", DistBase, CpuBase));
>        break;
>  
> +    case PropertyTypeGicV3:
> +      //
> +      // The GIC v3 DT binding describes a series of at least 3 physical base
> +      // addresses, but we are only interested in the first one, which is the
> +      // distributor interface. (We use the system register CPU interface, 
> not
> +      // the MMIO one)
> +      //
> +      ASSERT (Len >= 16);
> +
> +      DistBase = fdt64_to_cpu (((UINT64 *)RegProp)[0]);
> +      ASSERT (DistBase < MAX_UINT32);
> +
> +      PcdSet32 (PcdGicDistributorBase, (UINT32)DistBase);
> +
> +      DEBUG ((EFI_D_INFO, "Found GIC v3 distributor @ 0x%Lx\n", DistBase));
> +      break;
> +
>      case PropertyTypeRtc:
>        ASSERT (Len == 16);
>  
> 

Acked-by: Laszlo Ersek <lersek@xxxxxxxxxx>

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.