2
0
Fork 0
mirror of https://github.com/AsahiLinux/u-boot synced 2025-02-15 21:49:24 +00:00
u-boot/arch
Masahiro Yamada 3e9952be23 ARM: uniphier: detect RAM size by decoding HW register instead of DT
U-Boot needs to set up available memory area(s) in dram_init() and
dram_init_banksize().  It is platform-dependent how to detect the
memory banks.  Currently, UniPhier adopts the memory banks _alleged_
by DT.  This is based on the assumption that users bind a correct DT
in their build process.

Come to think of it, the DRAM controller has already been set up
before U-Boot is entered (because U-Boot runs on DRAM).  So, the
DRAM controller setup register seems a more reliable source of any
information about DRAM stuff.  The DRAM banks are initialized by
preliminary firmware (SPL, ARM Trusted Firmware BL2, or whatever),
so this means the source of the reliability is shifted from Device
Tree to such early-stage firmware.  However, if the DRAM controller
is wrongly configured, the system will crash.  If your system is
running, the DRAM setup register is very likely to provide the
correct DRAM mapping.

Decode the SG_MEMCONF register to get the available DRAM banks.
The dram_init() and dram_init_banksize() need similar decoding.
It would be nice if dram_init_banksize() could reuse the outcome
of dram_init(), but global variables are unavailable at this stage
because the .bss section is available only after the relocation.
As a result, SG_MEMCONF must be checked twice, but a new helper
uniphier_memconf_decode() will help to avoid code duplication.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2017-01-29 20:59:08 +09:00
..
arc Convert CONFIG_ARCH_EARLY_INIT_R to Kconfig 2017-01-25 16:43:48 -05:00
arm ARM: uniphier: detect RAM size by decoding HW register instead of DT 2017-01-29 20:59:08 +09:00
avr32 efi: Use asmlinkage for EFIAPI 2016-10-19 09:01:53 +02:00
blackfin Convert CONFIG_ARCH_MISC_INIT to Kconfig 2017-01-25 17:38:41 -05:00
m68k spi: Zap cf_qspi driver and related code 2017-01-15 18:29:04 +01:00
microblaze Kconfig: Migrate BOARD_LATE_INIT to a select 2017-01-24 10:35:54 -05:00
mips mips: Use common _AC macro now. 2017-01-10 08:19:26 -05:00
nds32 nds32: Support relocation. 2016-09-29 15:38:10 +08:00
nios2 efi: Use asmlinkage for EFIAPI 2016-10-19 09:01:53 +02:00
openrisc efi: Use asmlinkage for EFIAPI 2016-10-19 09:01:53 +02:00
powerpc Merge git://git.denx.de/u-boot-mpc85xx 2017-01-25 17:38:45 -05:00
sandbox spl: sandbox: Drop spl_board_announce_boot_device() 2016-12-09 08:40:18 -05:00
sh sh: generate position independent code for all platforms 2016-12-02 21:32:54 -05:00
sparc efi: Use asmlinkage for EFIAPI 2016-10-19 09:01:53 +02:00
x86 x86: Add file names from Kconfig in CMC/FSP/VGA nodes in u-boot.dtsi 2016-12-26 13:36:21 +08:00
xtensa Remove arch/${ARCH}/include/asm/errno.h 2016-09-23 17:56:18 -04:00
.gitignore .gitignore: drop include/asm/proc from ignore pattern 2014-06-19 11:18:54 -04:00
Kconfig Convert CONFIG_ARCH_MISC_INIT to Kconfig 2017-01-25 17:38:41 -05:00