
Original intent when Adaptive Body Bias(ABB) was supported in bootloader was two fold: a) ABB is mandatory for all OMAP5/DRA7 support b) expectation was that linux kernel/Operating system will setup ABB and voltage depending on the requirements of the platform.
However, over the last few years, few things changed: i) DRA7 SoCs do not permit for voltage scaling beyond the bootloader's initial settings thanks to a few silicon limitations. This implies that the bootloader has to setup the correct voltage at boot for all domains. Only the MPU voltage domain is excempt from this rule. ii) software stack evolution tied up the voltage rails and ABB setup together for obvious reasons of ABB is fundamentally related to voltage rail configuration.
As a result of these, Linux and operating system just configures just the frequency using the default boot loader configured voltage can fail on many corner lot units and has been hard to debug. This specifically is a concern with DRA7 generation of SoCs since other than VDD_MPU, all other domains are only permitted to setup the voltages to required OPP only at boot.
Given that OMAP5 closely matches DRA7, this series setsup ABB for all domains consistent with the voltage configuration for all domains that have need for ABB.
Series is based on v2016.05-rc2 Boot Log: OMAP5uevm: http://pastebin.ubuntu.com/15971620/ AM572x-X15: http://pastebin.ubuntu.com/15971707/
Nishanth Menon (4): ARM: OMAP5/DRA7: Get rid of control_std_fuse_opp_vdd_mpu_2 ARM: OMAP5/DRA7: Move ABB TXDONE mask to voltage structure ARM: OMAP5: Enable ABB configuration for MM voltage domain ARM: DRA7: Add ABB setup for all domains
arch/arm/cpu/armv7/omap-common/clocks-common.c | 41 +++++++++++++++++++++++--- arch/arm/cpu/armv7/omap5/hw_data.c | 10 +++++++ arch/arm/cpu/armv7/omap5/prcm-regs.c | 16 ++++++++-- arch/arm/include/asm/arch-omap5/omap.h | 4 +++ arch/arm/include/asm/omap_common.h | 16 +++++++++- board/ti/am57xx/board.c | 4 +++ 6 files changed, 84 insertions(+), 7 deletions(-)