u-boot/arch/arm
Masahiro Yamada 34ded87506 ARM: uniphier: detect register base addresses run-time
Until the last SoC, the register addresses have been hard-coded because
they are always constant. For a planned new SoC, the register bases
will be completely changed. I insist on supporting multiple SoCs/boards
by a single defconfig (uniphier_v8_defconfig) since duplicating similar
defconfig files is a maintenance burden. The base addresses must be
fixed-up at run-time somehow.

Previously, the board init code identified the SoC by reading out the
SG_REVISION register. This is much easier than parsing DT.

You cannot do it any more because the base address of SG will be
changed. The SG_REVISION register exists to read out the SoC ID, but
you never know its address before identifying the SoC. Oh well.

So, the possible solution is to parse the DT, and find out the node
with "*-soc-glue" compatible string. Then, sg_base is set to the value
of the "reg" property. The sc_base is set up likewise.

It is worth noting a pit-fall. Having sc_base and sg_base in the global
scope will make the life easier, but the global variables are poorly
supported before the relocation. In fact, the .bss section overwraps
with DT. Allocating them in the .bss section would break DT. So, I gave
dummy initializers to assign them in the .data section.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2019-07-10 22:42:03 +09:00
..
cpu arm64: add an option to switch visibility of CONFIG_SYS_INIT_SP_BSS_OFFSET 2019-07-10 22:37:23 +09:00
dts arm64: dts: uniphier: add reserved-memory for secure memory 2019-07-10 22:41:50 +09:00
include - fix khadas-vim README 2019-07-08 16:02:19 -04:00
lib arm64: add an option to switch visibility of CONFIG_SYS_INIT_SP_BSS_OFFSET 2019-07-10 22:37:23 +09:00
mach-aspeed regmap: change regmap_init_mem() to take ofnode instead udevice 2018-05-07 15:49:51 -04:00
mach-at91 First set of u-boot-atmel fixes for 2019.07 cycle 2019-06-10 09:41:00 -04:00
mach-bcm283x ARM: bcm283x: Fix definition of MBOX_TAG_TEST_PIXEL_ORDER 2019-06-12 12:23:46 +02:00
mach-bcmstb board: arm: Add support for Broadcom BCM7260 2018-09-10 21:19:31 -04:00
mach-davinci arm: davinci: remove leftover assembly 2019-06-05 12:14:02 -04:00
mach-exynos CONFIG_SPL_SYS_[DI]CACHE_OFF: add 2019-05-18 08:15:35 -04:00
mach-highbank SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mach-imx Merge tag 'mmc-6-23' of https://github.com/MrVan/u-boot 2019-07-08 15:59:41 -04:00
mach-integrator
mach-k3 arm: k3: config.mk: Use k3_gen_x509_cert.sh to generate boot images 2019-05-09 20:22:05 -04:00
mach-keystone CONFIG_SPL_SYS_[DI]CACHE_OFF: add 2019-05-18 08:15:35 -04:00
mach-kirkwood CONFIG_SYS_[DI]CACHE_OFF: convert to Kconfig 2019-05-18 08:15:34 -04:00
mach-mediatek arm: mediatek: remove arch_misc_init 2019-07-07 17:38:55 -04:00
mach-meson ARM: meson: add unique MAC address generation 2019-07-04 16:04:59 +02:00
mach-mvebu arm: mvebu: Add CRS305-1G-4S board 2019-05-09 07:35:04 +02:00
mach-omap2 arm: omap3: Manually initialize GPIO if OF_CONTROL doesn't 2019-06-05 12:14:02 -04:00
mach-orion5x arm: remove prototype for get_timer_masked 2018-10-10 13:35:09 -04:00
mach-owl board: Add uCRobotics Bubblegum-96 board support 2018-07-09 15:25:23 -04:00
mach-qemu Kconfig: Sort bool, default, select and imply options 2018-07-30 07:18:48 -04:00
mach-rmobile ARM: rmobile: Add recovery SPL for R-Car Gen3 2019-05-21 22:15:31 +02:00
mach-rockchip rockchip: make_fit_atf.py: fix loadables property set error 2019-07-05 15:57:52 +08:00
mach-s5pc1xx CONFIG_SPL_SYS_[DI]CACHE_OFF: add 2019-05-18 08:15:35 -04:00
mach-snapdragon arm: mach-snapdragon: pinctrl: clarify gpio disable bit 2019-01-25 12:12:56 -05:00
mach-socfpga arm: socfpga: provide default SPL_SIZE_LIMIT for gen5 2019-06-14 12:41:26 +02:00
mach-sti
mach-stm32 mach-stm32: Fix MPU region size dedicated to SDRAM for STM32F4 2019-06-28 09:45:27 +02:00
mach-stm32mp watchdog: stm32mp: Add watchdog driver 2019-06-06 17:40:16 +02:00
mach-sunxi Merge branch 'master' of git://git.denx.de/u-boot-sunxi 2019-05-20 13:53:51 -04:00
mach-tegra arm64: add an option to switch visibility of CONFIG_SYS_INIT_SP_BSS_OFFSET 2019-07-10 22:37:23 +09:00
mach-uniphier ARM: uniphier: detect register base addresses run-time 2019-07-10 22:42:03 +09:00
mach-versal arm64: versal: Move IOU_SWITCH_DIVISOR0 to Kconfig 2019-02-14 14:31:10 +01:00
mach-versatile SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mach-zynq CONFIG_SPL_SYS_[DI]CACHE_OFF: add 2019-05-18 08:15:35 -04:00
mach-zynqmp arm64: zynqmp: fix preprocessor check for SPL_ZYNQMP_TWO_SDHCI 2019-04-16 11:52:02 +02:00
mach-zynqmp-r5 arm: zynqmp: Add ZynqMP minimal R5 support 2018-05-11 09:38:23 +02:00
thumb1/include/asm/proc-armv SPDX: Convert a few files that were missed before 2018-05-10 20:38:35 -04:00
config.mk efi_loader: Rename sections to allow for implicit data 2018-07-25 14:57:44 +02:00
Kconfig arm64: add an option to switch visibility of CONFIG_SYS_INIT_SP_BSS_OFFSET 2019-07-10 22:37:23 +09:00
Kconfig.debug
Makefile arm: imx: build mach-imx for i.MX8 2019-01-28 20:35:47 +01:00