u-boot-brain/arch/arm
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
..
cpu mtd: nand: omap: allow to switch to BCH16 2016-06-09 13:53:12 -04:00
dts Merge http://git.denx.de/u-boot-samsung 2016-06-06 13:39:43 -04:00
imx-common imx: imx-common: print i.MX 7 SoC names consistently 2016-05-17 17:52:20 +02:00
include sunxi: Downclock AHB1 to 100MHz on Allwinner A64 2016-06-10 13:03:30 +02:00
lib arm/arm64: implement a boot header capability 2016-06-06 13:39:19 -04:00
mach-at91 ARM: sama5d2: Implement boot device autodetection 2016-05-24 08:08:37 +02:00
mach-bcm283x rpi: remove redundant board files 2016-04-11 20:48:23 -04:00
mach-davinci arm: Add support for LEGO MINDSTORMS EV3 2016-03-14 19:18:40 -04:00
mach-exynos ARM: exynos: Fix build error if SERIAL is disabled in SPL 2016-05-26 12:55:49 +09:00
mach-highbank ARM: highbank: move SoC sources to mach-highbank 2015-02-21 08:23:51 -05:00
mach-integrator integrator: switch to DM serial port 2015-08-12 20:47:49 -04:00
mach-keystone ARM: k2g: Configure reset mux to device reset 2016-06-02 21:42:19 -04:00
mach-kirkwood configs: Re-sync with cmd/Kconfig 2016-04-25 15:09:47 -04:00
mach-meson arm: meson: implement calls to secure monitor 2016-05-27 15:39:47 -04:00
mach-mvebu configs: Re-sync with cmd/Kconfig 2016-04-25 15:09:47 -04:00
mach-orion5x Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
mach-rockchip dm: rockchip: Enable CONFIG_BLK 2016-05-27 10:23:10 -06:00
mach-s5pc1xx arm: s5pc1xx: move SoC to mach-s5pc1xx 2015-11-30 17:17:01 +09:00
mach-snapdragon Rename reset to sysreset 2016-05-26 20:48:31 -06:00
mach-socfpga arm: socfpga: Add samtec VIN|ING board 2016-06-01 22:44:14 +02:00
mach-stm32 stm32: stm32f4: move flash driver to mtd driver location 2016-03-26 18:49:28 -04:00
mach-sunxi sunxi: Properly announce BOOT_DEVICE_BOARD as "FEL" 2016-05-25 17:52:39 +02:00
mach-tegra ARM: tegra: add p2771-0000 board support 2016-05-31 11:22:59 -07:00
mach-uniphier ARM: uniphier: insert dsb barrier to ensure visibility of store 2016-06-09 08:19:13 +09:00
mach-versatile arm: Remove versatileab board 2015-09-11 15:01:25 -04:00
mach-zynq ARM: zynq: Simplify zynq configuration 2016-05-24 13:22:50 +02:00
thumb1/include/asm/proc-armv arm: support Thumb-1 with CONFIG_SYS_THUMB_BUILD 2015-11-10 15:03:48 +01:00
config.mk arm: clang: Update support slightly 2016-04-01 17:17:39 -04:00
Kconfig siemens,am33x: add draco etamin board 2016-06-09 13:53:13 -04:00
Kconfig.debug arm: debug: add Kconfig entries for lowlevel debug 2014-10-26 22:23:12 +01:00
Makefile arm: Treat arm946es as v5te 2016-06-02 21:21:34 -04:00