Commit a57e6e49 authored by Alexei Fedorov's avatar Alexei Fedorov Committed by TrustedFirmware Code Review
Browse files

Merge "refactor(gicv3): add helper function to get the limit of SPI INTID" into integration

parents dd0592c9 1e9428ea
......@@ -91,6 +91,25 @@ void gicv3_rdistif_base_addrs_probe(uintptr_t *rdistif_base_addrs,
} while ((typer_val & TYPER_LAST_BIT) == 0U);
}
/*******************************************************************************
* Helper function to get the maximum SPI INTID + 1.
******************************************************************************/
unsigned int gicv3_get_spi_limit(uintptr_t gicd_base)
{
unsigned int spi_limit;
unsigned int typer_reg = gicd_read_typer(gicd_base);
/* (maximum SPI INTID + 1) is equal to 32 * (GICD_TYPER.ITLinesNumber+1) */
spi_limit = ((typer_reg & TYPER_IT_LINES_NO_MASK) + 1U) << 5;
/* Filter out special INTIDs 1020-1023 */
if (spi_limit > (MAX_SPI_ID + 1U)) {
return MAX_SPI_ID + 1U;
}
return spi_limit;
}
/*******************************************************************************
* Helper function to configure the default attributes of (E)SPIs.
******************************************************************************/
......
......@@ -233,6 +233,7 @@ void gicr_set_icfgr(uintptr_t base, unsigned int id, unsigned int cfg);
/*******************************************************************************
* Private GICv3 helper function prototypes
******************************************************************************/
unsigned int gicv3_get_spi_limit(uintptr_t gicd_base);
void gicv3_spis_config_defaults(uintptr_t gicd_base);
void gicv3_ppi_sgi_config_defaults(uintptr_t gicr_base);
unsigned int gicv3_secure_ppi_sgi_config_props(uintptr_t gicr_base,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment