u-boot/arch/arm/include/asm/arch-sunxi
Siarhei Siamashka 5bc88cc2be sunxi: Downclock AHB1 to 100MHz on Allwinner A64
Currently the AHB1 clock speed is configured as 200MHz by
the SPL, but this causes a subtle and hard to reproduce data
corruption in SRAM C (for example, this can't be easily
detected with a trivial memset/memcmp test).

For what it's worth, the Allwinner's BSP configures AHB1
as 200MHz, as can be verified by running the devmem2 tool
in the system running the Allwinner's kernel 3.10.x:

   0x1C20028: PLL_PERIPH0_CTRL_REG = 0x90041811
   0x1C20054: AHB1_APB1_CFG_REG    = 0x3180
   0x1C20058: APB2_CFG_REG         = 0x1000000
   0x1C2005C: AHB2_CFG_REG         = 0x1

However the FEL mode uses more conservative settings (100MHz
for AHB1):

   0x1C20028: PLL_PERIPH0_CTRL_REG = 0x90041811
   0x1C20054: AHB1_APB1_CFG_REG    = 0x3190
   0x1C20058: APB2_CFG_REG         = 0x1000000
   0x1C2005C: AHB2_CFG_REG         = 0x0

It is yet to be confirmed whether faster AHB1/AHB2 clock settings
can be used safely if we initialize the AXP803 PMIC instead of
using reset defaults. But in order to resolve the data corruption
problem right now, it's best to downclock AHB1 to a safe level.

Note that this issue only affects the SPL, which is not fully
supported on Allwinner A64 yet and it should not affect the boot0
usage (unless somebody can confirm SRAM C corruption with the
boot0 too).

Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2016-06-10 13:03:30 +02:00
..
boot0.h arm/arm64: implement a boot header capability 2016-06-06 13:39:19 -04:00
clock.h sunxi: Add support for Allwinner A64 SoCs 2016-04-01 09:52:28 +02:00
clock_sun4i.h sun6i: clock: Add support for the mipi pll 2015-08-14 08:37:39 +02:00
clock_sun6i.h sunxi: Downclock AHB1 to 100MHz on Allwinner A64 2016-06-10 13:03:30 +02:00
clock_sun8i_a83t.h sunxi: clk: Fix USB PHY clock macros for A83T 2016-03-31 17:04:08 +02:00
clock_sun9i.h sunxi: Match sun4i, sun6i, sun9i CCI definitions for NAND and DMA 2015-05-29 13:46:36 +02:00
cpu.h sun9i: Add cpu_sun9i.h with iomem defines 2015-01-22 12:34:55 +01:00
cpu_sun4i.h sunxi: Support SID e-fuses on A83T and H3 2016-03-23 22:04:13 +01:00
cpu_sun9i.h sunxi: rsb: Add sun9i (A80 support) 2015-02-02 13:55:14 +01:00
cpucfg_sun6i.h sun6i: Add cpucfg register definitions 2014-11-13 14:49:01 +01:00
display.h sunxi: display: Fix composite video out on sun5i 2015-08-14 08:37:36 +02:00
dma.h sunxi: Add DMA definitions 2015-05-29 13:46:36 +02:00
dma_sun4i.h sunxi: Add DMA definitions 2015-05-29 13:46:36 +02:00
dram.h sunxi: Add support for Allwinner A83T DRAM 2015-12-10 15:45:47 +01:00
dram_sun4i.h sunxi: Make DRAM_ODT_EN Kconfig setting a bool 2015-05-19 18:46:44 +02:00
dram_sun6i.h sun6i: Add dram initialization code 2014-11-13 14:49:01 +01:00
dram_sun8i_a23.h sunxi: Make DRAM_ODT_EN Kconfig setting a bool 2015-05-19 18:46:44 +02:00
dram_sun8i_a33.h sunxi: Add a33 dram init code 2015-05-04 16:51:51 +02:00
dram_sun8i_a83t.h sunxi: Add support for LPDDR3 for A83T 2016-01-26 16:20:05 +01:00
dram_sun8i_h3.h sunxi: Add H3 DRAM initialization support 2015-11-22 11:31:00 +01:00
gpio.h sunxi: Add support for Allwinner A64 SoCs 2016-04-01 09:52:28 +02:00
i2c.h sunxi: Add support for the I2C controller which is part of the PRCM 2016-01-21 07:30:01 +01:00
mmc.h sunxi: Create helper function veryfing valid boot signature on MMC 2015-07-24 16:17:08 +02:00
p2wi.h sun6i: Add new p2wi controller driver 2014-11-13 14:49:01 +01:00
pmic_bus.h sunxi: axp: Move axp pmic register helpers to a separate file 2015-05-04 16:51:53 +02:00
prcm.h sunxi: Add support for the I2C controller which is part of the PRCM 2016-01-21 07:30:01 +01:00
rsb.h sunxi: rsb: Move rsb_set_device_mode() call to rsb_init() 2015-02-02 13:55:14 +01:00
spl.h sunxi: Increase SPL header size to 64 bytes to avoid code corruption 2016-05-25 17:52:39 +02:00
sys_proto.h sunxi: Fix gmac not working due to cpu_eth_init no longer being called 2016-03-23 22:04:13 +01:00
timer.h sunxi: Introduce a hidden SUNXI_GEN_SUNxI Kconfig bool 2015-05-04 16:51:51 +02:00
tzpc.h sunxi: Support Secure Memory Touch Arbiter (SMTA) in sun8i H3 2016-01-26 16:20:04 +01:00
usb_phy.h sunxi: usb-phy: Never power off the usb ports 2015-08-08 16:26:19 +02:00
watchdog.h sunxi: Use CONFIG_MACH_SUN?I from Kconfig instead of CONFIG_SUN?I 2014-11-05 13:09:58 +01:00