u-boot-brain/arch
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
..
arc arc/cache: really do flush_dcache_all() even if IOC exists 2016-04-21 20:09:59 +03:00
arm sunxi: Downclock AHB1 to 100MHz on Allwinner A64 2016-06-10 13:03:30 +02:00
avr32 avr32: Drop unused code in u-boot.h 2016-05-27 15:39:52 -04:00
blackfin configs: Re-sync almost all of cmd/Kconfig 2016-04-25 15:09:40 -04:00
m68k m68k: Drop unused code in u-boot.h 2016-05-27 15:39:53 -04:00
microblaze Remove unneeded remnants of bcopy(). 2016-06-06 13:39:18 -04:00
mips mips: ath79: Use AR933X_PLL_SWITCH_CLOCK_CONTROL_REG macro define 2016-05-31 10:17:54 +02:00
nds32 Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
nios2 Delete tests of CONFIG_OF_LIBFDT when testing CONFIG_OF_BOARD_SETUP 2016-05-27 15:41:16 -04:00
openrisc openrisc: Drop the arch-specific board init 2016-05-27 15:39:50 -04:00
powerpc Remove unneeded remnants of bcopy(). 2016-06-06 13:39:18 -04:00
sandbox dm: test: Add GPIO open drain tests 2016-06-03 22:14:20 -07:00
sh Drop references to CONFIG_SYS_GENERIC_BOARD in config files 2016-05-27 15:39:54 -04:00
sparc Fix spelling of "transferred". 2016-03-22 12:16:16 -04:00
x86 x86: baytrail: acpi: Fix I/O APIC ID in the MADT table 2016-05-30 10:21:12 +08:00
.gitignore .gitignore: drop include/asm/proc from ignore pattern 2014-06-19 11:18:54 -04:00
Kconfig Drop HAVE_GENERIC_BOARD and SYS_GENERIC_BOARD options 2016-05-27 15:39:55 -04:00