public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH V2 0/9] ARM: OMAP3-DRA7: CP15 erratum workarounds and improvements
@ 2015-02-24 22:57 Nishanth Menon
  2015-02-24 22:57 ` [U-Boot] [PATCH V2 1/9] ARM: OMAP: Change set_pl310_ctrl_reg to be generic Nishanth Menon
                   ` (8 more replies)
  0 siblings, 9 replies; 24+ messages in thread
From: Nishanth Menon @ 2015-02-24 22:57 UTC (permalink / raw)
  To: u-boot

Hi,

uggh.. realized that u-boot mailing list does not like too many
recipients.. So, just tom and list this time.. Sorry for the spam

V1: http://comments.gmane.org/gmane.comp.boot-loaders.u-boot/212174

V2 of this series is a culmination of
a) bunch of refactoring to ensure common code in generic logic - cpuid mostly
b) split the arm generic patch (patch #4 out.. to allow independent review)
c) Saw a chance to incorporate OMAP3 into the same framework, and in fact can
   exactly allow exynos also do the job: https://patchwork.ozlabs.org/patch/440852/A
   https://patchwork.ozlabs.org/patch/442646/
   https://patchwork.ozlabs.org/patch/442297/
   (obviously the code has changed since the original omap3 implementation)

Carrying on the blurb as posted previously :)

Triggered by a user report, it was seen that recommended errata
workaround and performance trade-offs as recommended by TI architects
for ARM configuration was not being followed in OMAP5+ ARM A15
platforms in u-boot configuration. Note OMAP5, DRA7 all share the
same cortex A15 revision (ID=0x412fc0f2) and the workarounds and
improvement configurations apply equally.

Certain errata workaround done in this series obviously have the
controversy potential considering that each of the SoCs implement
workaround based on secure monitor calls, but both the service
requested and the parameters of secure monitor calls can be widely
variant. Examples:
OMAP family of processors have quite the family of SMC calls:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/mach-omap2/omap-smc.S
meanwhile Exynos has a much simpler invocation:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/mach-exynos/exynos-smc.S

To maintain some resemblance of symmetry the following series
introduces a arch/machine dependent errata macro which must be enabled
prior to any of such workarounds can be implemented.

I am open to better ways of doing this which might benefit others in
ARM community with similar needs. Lets discuss.

These patches are based on: v2015.04-rc1 but also apply on latest master.

Note:(OMAP3 is just build tested.. as I stated previously)
 ./MAKEALL -s omap3
v2015.04-rc1: http://pastebin.ubuntu.com/10397352/
v2015.04-rc1+ this series: http://pastebin.ubuntu.com/10397267/
(same sets of failures of build - no regressions introduced that I could see).

Angela Stegmaier (1):
  configs: ti_omap5_common: Enable workaround for ARM errata 798870

Nishanth Menon (7):
  ARM: OMAP: Change set_pl310_ctrl_reg to be generic
  ARM: OMAP3: Rename omap3.h to omap.h to be generic as all SoCs
  ARM: OMAP3: Get rid of omap3_gp_romcode_call and replace with
    omap_smc1
  ARM: Provide a mechanism to invoke SoC specific errata WA for CP15
  ARM: OMAP3: Introduce OMAP3 Cortex-A8 revision specific errata
  configs: ti_omap3_common: Enable workaround for ARM errata 454179,
    430973, 621766
  ARM: OMAP5 / DRA7: Setup L2 Aux Control Register with recommended
    configuration

Praveen Rao (1):
  ARM: DRA7 / OMAP5: Add workaround for ARM errata 798870

 README                                             |    9 ++++
 arch/arm/cpu/armv7/omap-common/Makefile            |    2 +-
 arch/arm/cpu/armv7/omap-common/lowlevel_init.S     |   15 ++++--
 arch/arm/cpu/armv7/omap3/board.c                   |   24 ++--------
 arch/arm/cpu/armv7/omap3/lowlevel_init.S           |   48 +++++++++++++++-----
 arch/arm/cpu/armv7/omap4/hwinit.c                  |    4 +-
 arch/arm/cpu/armv7/omap5/Makefile                  |    1 +
 arch/arm/cpu/armv7/omap5/hwinit.c                  |   16 +++++++
 arch/arm/cpu/armv7/omap5/lowlevel_init.S           |   46 +++++++++++++++++++
 arch/arm/cpu/armv7/start.S                         |   14 ++++++
 .../arm/include/asm/arch-omap3/{omap3.h => omap.h} |    0
 arch/arm/include/asm/arch-omap3/sys_proto.h        |    3 +-
 arch/arm/include/asm/arch-omap4/sys_proto.h        |    5 +-
 arch/arm/include/asm/arch-omap5/sys_proto.h        |    4 ++
 include/configs/am3517_crane.h                     |    2 +-
 include/configs/am3517_evm.h                       |    2 +-
 include/configs/cm_t35.h                           |    2 +-
 include/configs/cm_t3517.h                         |    2 +-
 include/configs/dig297.h                           |    2 +-
 include/configs/mcx.h                              |    2 +-
 include/configs/nokia_rx51.h                       |    2 +-
 include/configs/omap3_evm.h                        |    2 +-
 include/configs/omap3_evm_quick_mmc.h              |    2 +-
 include/configs/omap3_evm_quick_nand.h             |    2 +-
 include/configs/omap3_logic.h                      |    2 +-
 include/configs/omap3_mvblx.h                      |    2 +-
 include/configs/omap3_pandora.h                    |    2 +-
 include/configs/omap3_sdp3430.h                    |    2 +-
 include/configs/omap3_zoom1.h                      |    2 +-
 include/configs/tam3517-common.h                   |    2 +-
 include/configs/tao3530.h                          |    2 +-
 include/configs/ti_omap3_common.h                  |    8 +++-
 include/configs/ti_omap5_common.h                  |    4 ++
 include/configs/tricorder.h                        |    2 +-
 34 files changed, 178 insertions(+), 61 deletions(-)
 create mode 100644 arch/arm/cpu/armv7/omap5/lowlevel_init.S
 rename arch/arm/include/asm/arch-omap3/{omap3.h => omap.h} (100%)

Regards,
	Nishanth Menon
-- 
1.7.9.5

^ permalink raw reply	[flat|nested] 24+ messages in thread
* [U-Boot] [PATCH V2 0/9] ARM: OMAP3-DRA7: CP15 erratum workarounds and improvements
@ 2015-02-24 22:52 Nishanth Menon
  2015-02-24 22:52 ` [U-Boot] [PATCH V2 8/9] configs: ti_omap3_common: Enable workaround for ARM errata 454179, 430973, 621766 Nishanth Menon
  0 siblings, 1 reply; 24+ messages in thread
From: Nishanth Menon @ 2015-02-24 22:52 UTC (permalink / raw)
  To: u-boot

Hi,

V1: http://comments.gmane.org/gmane.comp.boot-loaders.u-boot/212174

V2 of this series is a culmination of
a) bunch of refactoring to ensure common code in generic logic - cpuid mostly
b) split the arm generic patch (patch #4 out.. to allow independent review)
c) Saw a chance to incorporate OMAP3 into the same framework, and in fact can
   exactly allow exynos also do the job: https://patchwork.ozlabs.org/patch/440852/A
   https://patchwork.ozlabs.org/patch/442646/
   https://patchwork.ozlabs.org/patch/442297/
   (obviously the code has changed since the original omap3 implementation)

Carrying on the blurb as posted previously :)

Triggered by a user report, it was seen that recommended errata
workaround and performance trade-offs as recommended by TI architects
for ARM configuration was not being followed in OMAP5+ ARM A15
platforms in u-boot configuration. Note OMAP5, DRA7 all share the
same cortex A15 revision (ID=0x412fc0f2) and the workarounds and
improvement configurations apply equally.

Certain errata workaround done in this series obviously have the
controversy potential considering that each of the SoCs implement
workaround based on secure monitor calls, but both the service
requested and the parameters of secure monitor calls can be widely
variant. Examples:
OMAP family of processors have quite the family of SMC calls:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/mach-omap2/omap-smc.S
meanwhile Exynos has a much simpler invocation:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/mach-exynos/exynos-smc.S

To maintain some resemblance of symmetry the following series
introduces a arch/machine dependent errata macro which must be enabled
prior to any of such workarounds can be implemented.

I am open to better ways of doing this which might benefit others in
ARM community with similar needs. Lets discuss.

These patches are based on: v2015.04-rc1 but also apply on latest master.

Note:(OMAP3 is just build tested.. as I stated previously)
 ./MAKEALL -s omap3
v2015.04-rc1: http://pastebin.ubuntu.com/10397352/
v2015.04-rc1+ this series: http://pastebin.ubuntu.com/10397267/
(same sets of failures of build - no regressions introduced that I could see).

Angela Stegmaier (1):
  configs: ti_omap5_common: Enable workaround for ARM errata 798870

Nishanth Menon (7):
  ARM: OMAP: Change set_pl310_ctrl_reg to be generic
  ARM: OMAP3: Rename omap3.h to omap.h to be generic as all SoCs
  ARM: OMAP3: Get rid of omap3_gp_romcode_call and replace with
    omap_smc1
  ARM: Provide a mechanism to invoke SoC specific errata WA for CP15
  ARM: OMAP3: Introduce OMAP3 Cortex-A8 revision specific errata
  configs: ti_omap3_common: Enable workaround for ARM errata 454179,
    430973, 621766
  ARM: OMAP5 / DRA7: Setup L2 Aux Control Register with recommended
    configuration

Praveen Rao (1):
  ARM: DRA7 / OMAP5: Add workaround for ARM errata 798870

 README                                             |    9 ++++
 arch/arm/cpu/armv7/omap-common/Makefile            |    2 +-
 arch/arm/cpu/armv7/omap-common/lowlevel_init.S     |   15 ++++--
 arch/arm/cpu/armv7/omap3/board.c                   |   24 ++--------
 arch/arm/cpu/armv7/omap3/lowlevel_init.S           |   48 +++++++++++++++-----
 arch/arm/cpu/armv7/omap4/hwinit.c                  |    4 +-
 arch/arm/cpu/armv7/omap5/Makefile                  |    1 +
 arch/arm/cpu/armv7/omap5/hwinit.c                  |   16 +++++++
 arch/arm/cpu/armv7/omap5/lowlevel_init.S           |   46 +++++++++++++++++++
 arch/arm/cpu/armv7/start.S                         |   14 ++++++
 .../arm/include/asm/arch-omap3/{omap3.h => omap.h} |    0
 arch/arm/include/asm/arch-omap3/sys_proto.h        |    3 +-
 arch/arm/include/asm/arch-omap4/sys_proto.h        |    5 +-
 arch/arm/include/asm/arch-omap5/sys_proto.h        |    4 ++
 include/configs/am3517_crane.h                     |    2 +-
 include/configs/am3517_evm.h                       |    2 +-
 include/configs/cm_t35.h                           |    2 +-
 include/configs/cm_t3517.h                         |    2 +-
 include/configs/dig297.h                           |    2 +-
 include/configs/mcx.h                              |    2 +-
 include/configs/nokia_rx51.h                       |    2 +-
 include/configs/omap3_evm.h                        |    2 +-
 include/configs/omap3_evm_quick_mmc.h              |    2 +-
 include/configs/omap3_evm_quick_nand.h             |    2 +-
 include/configs/omap3_logic.h                      |    2 +-
 include/configs/omap3_mvblx.h                      |    2 +-
 include/configs/omap3_pandora.h                    |    2 +-
 include/configs/omap3_sdp3430.h                    |    2 +-
 include/configs/omap3_zoom1.h                      |    2 +-
 include/configs/tam3517-common.h                   |    2 +-
 include/configs/tao3530.h                          |    2 +-
 include/configs/ti_omap3_common.h                  |    8 +++-
 include/configs/ti_omap5_common.h                  |    4 ++
 include/configs/tricorder.h                        |    2 +-
 34 files changed, 178 insertions(+), 61 deletions(-)
 create mode 100644 arch/arm/cpu/armv7/omap5/lowlevel_init.S
 rename arch/arm/include/asm/arch-omap3/{omap3.h => omap.h} (100%)

Regards,
	Nishanth Menon
-- 
1.7.9.5

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

end of thread, other threads:[~2015-03-03  7:30 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-24 22:57 [U-Boot] [PATCH V2 0/9] ARM: OMAP3-DRA7: CP15 erratum workarounds and improvements Nishanth Menon
2015-02-24 22:57 ` [U-Boot] [PATCH V2 1/9] ARM: OMAP: Change set_pl310_ctrl_reg to be generic Nishanth Menon
2015-02-24 22:57 ` [U-Boot] [PATCH V2 2/9] ARM: OMAP3: Rename omap3.h to omap.h to be generic as all SoCs Nishanth Menon
2015-02-25 11:02   ` Paul Kocialkowski
2015-02-25 17:53     ` Nishanth Menon
2015-02-24 22:57 ` [U-Boot] [PATCH V2 3/9] ARM: OMAP3: Get rid of omap3_gp_romcode_call and replace with omap_smc1 Nishanth Menon
2015-02-25 11:06   ` Paul Kocialkowski
2015-02-24 22:57 ` [U-Boot] [PATCH V2 4/9] ARM: Provide a mechanism to invoke SoC specific errata WA for CP15 Nishanth Menon
2015-02-24 22:57 ` [U-Boot] [PATCH V2 5/9] ARM: DRA7 / OMAP5: Add workaround for ARM errata 798870 Nishanth Menon
2015-02-24 22:57 ` [U-Boot] [PATCH V2 6/9] configs: ti_omap5_common: Enable " Nishanth Menon
2015-02-24 22:57 ` [U-Boot] [PATCH V2 7/9] ARM: OMAP3: Introduce OMAP3 Cortex-A8 revision specific errata Nishanth Menon
2015-02-25 11:15   ` Paul Kocialkowski
2015-02-25 19:49     ` Nishanth Menon
2015-03-03  7:30       ` Siarhei Siamashka
2015-02-24 22:57 ` [U-Boot] [PATCH V2 8/9] configs: ti_omap3_common: Enable workaround for ARM errata 454179, 430973, 621766 Nishanth Menon
2015-02-25 11:19   ` Paul Kocialkowski
2015-02-25 11:31     ` Igor Grinberg
2015-02-25 12:27       ` Paul Kocialkowski
2015-02-25 14:32         ` menon.nishanth at gmail.com
2015-02-25 21:23           ` Paul Kocialkowski
2015-02-26  5:11             ` Nishanth Menon
2015-02-27 19:27               ` Paul Kocialkowski
2015-02-24 22:57 ` [U-Boot] [PATCH V2 9/9] ARM: OMAP5 / DRA7: Setup L2 Aux Control Register with recommended configuration Nishanth Menon
  -- strict thread matches above, loose matches on Subject: below --
2015-02-24 22:52 [U-Boot] [PATCH V2 0/9] ARM: OMAP3-DRA7: CP15 erratum workarounds and improvements Nishanth Menon
2015-02-24 22:52 ` [U-Boot] [PATCH V2 8/9] configs: ti_omap3_common: Enable workaround for ARM errata 454179, 430973, 621766 Nishanth Menon

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