diff --git a/arch/arm/src/armv7-a/Kconfig b/arch/arm/src/armv7-a/Kconfig index 489b90d16d..b71a94bdf3 100644 --- a/arch/arm/src/armv7-a/Kconfig +++ b/arch/arm/src/armv7-a/Kconfig @@ -73,6 +73,41 @@ config PL310_ADDRESS_FILTERING bool "PL310 Address Filtering by Line" default n +config PL310_TRCR + bool "PL310 TRCR set by usr" + default n + +if PL310_TRCR +config PL310_TRCR_TSETLAT + int "PL310 TRCR setup latency" + default 1 + +config PL310_TRCR_TRDLAT + bool "PL310 TRCR read access latency" + default 1 + +config PL310_TRCR_WRLAT + bool "PL310 TRCR write access latency" + default 1 +endif # PL310_TRCR + +config PL310_DRCR + bool "PL310 DRCR set by usr" + default n + +if PL310_DRCR +config PL310_DRCR_TSETLAT + int "PL310 DRCR setup latency" + default 1 + +config PL310_DRCR_TRDLAT + bool "PL310 DRCR read access latency" + default 1 + +config PL310_DRCR_WRLAT + bool "PL310 DRCR write access latency" + default 1 +endif # PL310_DRCR endif # ARMV7A_L2CC_PL310 choice diff --git a/arch/arm/src/armv7-a/arm_l2cc_pl310.c b/arch/arm/src/armv7-a/arm_l2cc_pl310.c index 4338d7dab3..1ca0cbbf95 100644 --- a/arch/arm/src/armv7-a/arm_l2cc_pl310.c +++ b/arch/arm/src/armv7-a/arm_l2cc_pl310.c @@ -357,7 +357,7 @@ void arm_l2ccinitialize(void) defined(CONFIG_PL310_TRCR_TWRLAT) /* Configure Tag RAM control */ - regval = ((CONFIG_PL310_TRCR_TSETLAT - 1) << L2CC_TRCR_TSETLAT_SHIFT) + regval = ((CONFIG_PL310_TRCR_TSETLAT - 1) << L2CC_TRCR_TSETLAT_SHIFT) | ((CONFIG_PL310_TRCR_TRDLAT - 1) << L2CC_TRCR_TRDLAT_SHIFT) | ((CONFIG_PL310_TRCR_TWRLAT - 1) << L2CC_TRCR_TWRLAT_SHIFT); putreg32(regval, L2CC_TRCR); diff --git a/arch/arm/src/armv7-r/Kconfig b/arch/arm/src/armv7-r/Kconfig index 81b9bd29bf..322b1ae4d2 100644 --- a/arch/arm/src/armv7-r/Kconfig +++ b/arch/arm/src/armv7-r/Kconfig @@ -80,6 +80,41 @@ config PL310_ADDRESS_FILTERING bool "PL310 Address Filtering by Line" default n +config PL310_TRCR + bool "PL310 TRCR set by usr" + default n + +if PL310_TRCR +config PL310_TRCR_TSETLAT + int "PL310 TRCR setup latency" + default 1 + +config PL310_TRCR_TRDLAT + bool "PL310 TRCR read access latency" + default 1 + +config PL310_TRCR_WRLAT + bool "PL310 TRCR write access latency" + default 1 +endif # PL310_TRCR + +config PL310_DRCR + bool "PL310 DRCR set by usr" + default n + +if PL310_DRCR +config PL310_DRCR_TSETLAT + int "PL310 DRCR setup latency" + default 1 + +config PL310_DRCR_TRDLAT + bool "PL310 DRCR read access latency" + default 1 + +config PL310_DRCR_WRLAT + bool "PL310 DRCR write access latency" + default 1 +endif # PL310_DRCR endif # ARMV7R_L2CC_PL310 choice diff --git a/arch/arm/src/armv7-r/arm_l2cc_pl310.c b/arch/arm/src/armv7-r/arm_l2cc_pl310.c index 885166e91e..3b0a7f2387 100644 --- a/arch/arm/src/armv7-r/arm_l2cc_pl310.c +++ b/arch/arm/src/armv7-r/arm_l2cc_pl310.c @@ -357,7 +357,7 @@ void arm_l2ccinitialize(void) defined(CONFIG_PL310_TRCR_TWRLAT) /* Configure Tag RAM control */ - regval = ((CONFIG_PL310_TRCR_TSETLAT - 1) << L2CC_TRCR_TSETLAT_SHIFT) + regval = ((CONFIG_PL310_TRCR_TSETLAT - 1) << L2CC_TRCR_TSETLAT_SHIFT) | ((CONFIG_PL310_TRCR_TRDLAT - 1) << L2CC_TRCR_TRDLAT_SHIFT) | ((CONFIG_PL310_TRCR_TWRLAT - 1) << L2CC_TRCR_TWRLAT_SHIFT); putreg32(regval, L2CC_TRCR);