Thanks Jeremy. On 2 November 2015 at 20:54, Jeremy Linton <jeremy.lin...@arm.com> wrote: > The JunoR1 has a GICv2m which is a GICv2 with a little piece of hardware > that has some memory mapped locations that can trigger traditional SPI > interrupts. This allows some basic PCIe MSI capabilities. > > Setup the SPI range that is mapped by the MSI window. This range is described > in the JunoR1 SoC TRM, table 3-3. Under Interrupt ID 244-351 is described as > "GICv2m PCI Express MSI". In the future when these tables are generated > programmatically the information may be found in the MSI_TYPER register as > well. > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Jeremy Linton <jeremy.lin...@arm.com> Reviewed-by: Ryan Harkin <ryan.har...@linaro.org>
> --- > ArmPlatformPkg/ArmJunoPkg/AcpiTables/Madt.aslc | 4 +++- > ArmPlatformPkg/ArmJunoPkg/Include/ArmPlatform.h | 5 +++++ > 2 files changed, 8 insertions(+), 1 deletion(-) > > diff --git a/ArmPlatformPkg/ArmJunoPkg/AcpiTables/Madt.aslc > b/ArmPlatformPkg/ArmJunoPkg/AcpiTables/Madt.aslc > index d63a19b..f7e4e52 100644 > --- a/ArmPlatformPkg/ArmJunoPkg/AcpiTables/Madt.aslc > +++ b/ArmPlatformPkg/ArmJunoPkg/AcpiTables/Madt.aslc > @@ -117,9 +117,11 @@ > EFI_ACPI_5_1_GICC_STRUCTURE_INIT( // A57-1 > 1, 5, GET_MPID(0, 1), EFI_ACPI_5_0_GIC_ENABLED, 38, FixedPcdGet32 > (PcdGicInterruptInterfaceBase), > 0x2C06F000, 0x2C04F000, 25, 0 /* GicRBase */), > + > }, > EFI_ACPI_5_0_GIC_DISTRIBUTOR_INIT(0, FixedPcdGet32 > (PcdGicDistributorBase), 0), > - EFI_ACPI_6_0_GIC_MSI_FRAME_INIT(0, ARM_JUNO_GIV2M_MSI_BASE, 0, 0, 0) > + // Format: EFI_ACPI_6_0_GIC_MSI_FRAME_INIT(GicMsiFrameId, > PhysicalBaseAddress, Flags, SPICount, SPIBase) > + EFI_ACPI_6_0_GIC_MSI_FRAME_INIT(0, ARM_JUNO_GIV2M_MSI_BASE, 0, > ARM_JUNO_GIV2M_MSI_SPI_COUNT, ARM_JUNO_GIV2M_MSI_SPI_BASE) > }; > #endif > > diff --git a/ArmPlatformPkg/ArmJunoPkg/Include/ArmPlatform.h > b/ArmPlatformPkg/ArmJunoPkg/Include/ArmPlatform.h > index 9928c5a..d01d136 100644 > --- a/ArmPlatformPkg/ArmJunoPkg/Include/ArmPlatform.h > +++ b/ArmPlatformPkg/ArmJunoPkg/Include/ArmPlatform.h > @@ -40,9 +40,14 @@ > #define ARM_JUNO_PERIPHERALS_BASE 0x20000000 > #define ARM_JUNO_PERIPHERALS_SZ 0x0E000000 > > +// PCIe MSI address window > #define ARM_JUNO_GIV2M_MSI_BASE 0x2c1c0000 > #define ARM_JUNO_GIV2M_MSI_SZ SIZE_256KB > > +// PCIe MSI to SPI mapping range > +#define ARM_JUNO_GIV2M_MSI_SPI_BASE 224 > +#define ARM_JUNO_GIV2M_MSI_SPI_COUNT 127 //TRM says last SPI is > 351, 351-224=127 > + > // On-Chip non-secure SRAM > #define ARM_JUNO_NON_SECURE_SRAM_BASE 0x2E000000 > #define ARM_JUNO_NON_SECURE_SRAM_SZ SIZE_16MB > -- > 2.4.3 > > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel