
Hi,
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.
Testing:
AM5728 based Beagleboard-X15: http://pastebin.ubuntu.com/10280020/ DRA722 based Evm: http://pastebin.ubuntu.com/10280074/ DRA742 based Evm: http://pastebin.ubuntu.com/10280115/ OMAP5432 uEVM: http://pastebin.ubuntu.com/10280176/ OMAP4460 PandaBoard-ES: http://pastebin.ubuntu.com/10280208/ (just sanity)
Appropriate CP15 configuration was cross verified by Lauterbach or by a custom kernel patch (http://paste.ubuntu.org.cn/2410711).
Angela Stegmaier (1): configs: ti_omap5_common: Enable workaround for ARM errata 798870
Nishanth Menon (2): ARM: OMAP: Change set_pl310_ctrl_reg to be generic ARM: OMAP5 / DRA7: Setup L2 Aux Control Register with recommended configuration
Praveen Rao (1): ARM / OMAP5: Add workaround for ARM errata 798870
arch/arm/cpu/armv7/omap-common/lowlevel_init.S | 8 ++++-- arch/arm/cpu/armv7/omap4/hwinit.c | 4 +-- arch/arm/cpu/armv7/omap5/hwinit.c | 16 +++++++++++ arch/arm/cpu/armv7/omap5/lowlevel_init.S | 35 ++++++++++++++++++++++++ arch/arm/include/asm/arch-omap4/sys_proto.h | 5 +++- arch/arm/include/asm/arch-omap5/sys_proto.h | 4 +++ include/configs/ti_omap5_common.h | 4 +++ 7 files changed, 70 insertions(+), 6 deletions(-) create mode 100644 arch/arm/cpu/armv7/omap5/lowlevel_init.S