public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v3 00/11] Add support for booting multiple cores
@ 2015-02-18  9:46 Akshay Saraswat
  2015-02-18  9:46 ` [U-Boot] [PATCH v3 01/11] Exynos542x: Config: Add various configs Akshay Saraswat
                   ` (10 more replies)
  0 siblings, 11 replies; 16+ messages in thread
From: Akshay Saraswat @ 2015-02-18  9:46 UTC (permalink / raw)
  To: u-boot

This patch series introduces changes for booting secondary CPUs
on Exynos5420 and Exynos5800.

Changes since v2:
	- Patch 7 & 8 : Replaced #ifdef and #ifndef -> if(proid_is_soc()).
	- Patch 11 : Removed #ifdef from enum definition.

Changes since v1:
	- Added Reviewed-by & Tested-by in the acked patches.
	- Removed unnecessary CONFIGS and macros.
	- Changed names of few macros for better understanding in patch 2.
	- Added MPIDR bit assignment info comment in power_down_core in patch 2.
	- Changed to SPDX header in sec_boot.S in patch 5.
	- Fixed compilation error for snow build in patch 11.

Akshay Saraswat (10):
  Exynos542x: Config: Add various configs
  Exynos542x: CPU: Power down all secondary cores
  Exynos542x: Add workaround for ARM errata 798870
  Exynos542x: Add workaround for ARM errata 799270
  Exynos542x: Add workaround for exynos iROM errata
  Exynos542x: Change ambiguous function name set_l2cache
  Exynos542x: cache: Disable clean/evict push to external
  Exynos542x: add L2 control register configuration
  Exynos542x: Fix secondary core booting for thumb
  Exynos542x: Make A7s boot with thumb-mode U-Boot on warm reset

Doug Anderson (1):
  Exynos: Fix L2 cache timings on Exynos5420 and Exynos5800

 arch/arm/cpu/armv7/exynos/Makefile        |   2 +
 arch/arm/cpu/armv7/exynos/common_setup.h  |  63 ++++++++++++
 arch/arm/cpu/armv7/exynos/exynos5_setup.h |   3 +
 arch/arm/cpu/armv7/exynos/lowlevel_init.c | 166 ++++++++++++++++++++++++++++++
 arch/arm/cpu/armv7/exynos/sec_boot.S      | 128 +++++++++++++++++++++++
 arch/arm/cpu/armv7/exynos/soc.c           |  35 -------
 arch/arm/include/asm/arch-exynos/cpu.h    |   5 +
 arch/arm/include/asm/arch-exynos/system.h |  88 ++++++++++++++++
 include/configs/exynos5420-common.h       |  16 +++
 9 files changed, 471 insertions(+), 35 deletions(-)
 create mode 100644 arch/arm/cpu/armv7/exynos/sec_boot.S

-- 
1.9.1

^ permalink raw reply	[flat|nested] 16+ messages in thread
* [U-Boot] [PATCH v3 03/11] Exynos542x: Add workaround for ARM errata 798870
@ 2015-02-18 12:17 Akshay Saraswat
  0 siblings, 0 replies; 16+ messages in thread
From: Akshay Saraswat @ 2015-02-18 12:17 UTC (permalink / raw)
  To: u-boot

Hello,

>On Wed, 18 Feb 2015 15:16:27 +0530
>Akshay Saraswat <akshay.s@samsung.com> wrote:
>
>> This patch adds workaround for ARM errata 798870 which says
>> "If back-to-back speculative cache line fills (fill A and fill B) are
>> issued from the L1 data cache of a CPU to the L2 cache, the second
>> request (fill B) is then cancelled, and the second request would have
>> detected a hazard against a recent write or eviction (write B) to the
>> same cache line as fill B then the L2 logic might deadlock."
>> 
>> Signed-off-by: Kimoon Kim <kimoon.kim@samsung.com>
>> Signed-off-by: Akshay Saraswat <akshay.s@samsung.com>
>> Reviewed-by: Simon Glass <sjg@chromium.org>
>> Tested-by: Simon Glass <sjg@chromium.org>
>> ---
>> Changes since v2:
>> 	- No change.
>> 
>> Changes since v1:
>> 	- Added Reviewed-by & Tested-by.
>> 	- Added space before */ on line # 40.
>> 
>>  arch/arm/cpu/armv7/exynos/lowlevel_init.c | 22 ++++++++++++++++++++++
>>  1 file changed, 22 insertions(+)
>> 
>> diff --git a/arch/arm/cpu/armv7/exynos/lowlevel_init.c b/arch/arm/cpu/armv7/exynos/lowlevel_init.c
>> index e36f2fa..7335a1e 100644
>> --- a/arch/arm/cpu/armv7/exynos/lowlevel_init.c
>> +++ b/arch/arm/cpu/armv7/exynos/lowlevel_init.c
>> @@ -46,6 +46,28 @@ enum {
>>  
>>  #ifdef CONFIG_EXYNOS5420
>>  /*
>> + * Set L2ACTLR[7] to reissue any memory transaction in the L2 that has been
>> + * stalled for 1024 cycles to verify that its hazard condition still exists.
>> + */
>
>Having the ARM errata number mentioned in the comment here would make
>the purpose of this code much more clear to anyone looking at it later
>in the future.
>
>Also isn't this a general purpose Cortex-A15 r2pX workaround,
>also potentially useful for the other non-Exynos SoCs too?

Yes, you are right.
I'll mention errata number and will move it to armv7/cpu.c.

>
>> +void set_l2cache(void)
>> +{
>> +	uint32_t val;
>> +
>> +	/* Read MIDR for Primary Part Number */
>> +	mrc_midr(val);
>> +	val = (val >> 4);
>> +	val &= 0xf;
>> +
>> +	/* L2ACTLR[7]: Enable hazard detect timeout for A15 */
>> +	if (val == 0xf) {
>> +		mrc_l2_aux_ctlr(val);
>> +		val |= (1 << 7);
>> +		mcr_l2_aux_ctlr(val);
>> +		mrc_l2_ctlr(val);
>> +	}
>> +}
>> +
>> +/*
>>   * Pointer to this function is stored in iRam which is used
>>   * for jump and power down of a specific core.
>>   */
>
>
>
>-- 
>Best regards,
>Siarhei Siamashka

Regards,
Akshay Saraswat

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2015-02-18 12:17 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-18  9:46 [U-Boot] [PATCH v3 00/11] Add support for booting multiple cores Akshay Saraswat
2015-02-18  9:46 ` [U-Boot] [PATCH v3 01/11] Exynos542x: Config: Add various configs Akshay Saraswat
2015-02-18  9:46 ` [U-Boot] [PATCH v3 02/11] Exynos542x: CPU: Power down all secondary cores Akshay Saraswat
2015-02-18 11:14   ` Lukasz Majewski
2015-02-18  9:46 ` [U-Boot] [PATCH v3 03/11] Exynos542x: Add workaround for ARM errata 798870 Akshay Saraswat
2015-02-18 10:59   ` Siarhei Siamashka
2015-02-18  9:46 ` [U-Boot] [PATCH v3 04/11] Exynos542x: Add workaround for ARM errata 799270 Akshay Saraswat
2015-02-18 11:12   ` Siarhei Siamashka
2015-02-18  9:46 ` [U-Boot] [PATCH v3 05/11] Exynos542x: Add workaround for exynos iROM errata Akshay Saraswat
2015-02-18  9:46 ` [U-Boot] [PATCH v3 06/11] Exynos542x: Change ambiguous function name set_l2cache Akshay Saraswat
2015-02-18  9:46 ` [U-Boot] [PATCH v3 07/11] Exynos542x: cache: Disable clean/evict push to external Akshay Saraswat
2015-02-18  9:46 ` [U-Boot] [PATCH v3 08/11] Exynos542x: add L2 control register configuration Akshay Saraswat
2015-02-18  9:46 ` [U-Boot] [PATCH v3 09/11] Exynos542x: Fix secondary core booting for thumb Akshay Saraswat
2015-02-18  9:46 ` [U-Boot] [PATCH v3 10/11] Exynos542x: Make A7s boot with thumb-mode U-Boot on warm reset Akshay Saraswat
2015-02-18  9:46 ` [U-Boot] [PATCH v3 11/11] Exynos: Fix L2 cache timings on Exynos5420 and Exynos5800 Akshay Saraswat
  -- strict thread matches above, loose matches on Subject: below --
2015-02-18 12:17 [U-Boot] [PATCH v3 03/11] Exynos542x: Add workaround for ARM errata 798870 Akshay Saraswat

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox