
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/ar... meanwhile Exynos has a much simpler invocation: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/ar...
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