All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.