]> git.baikalelectronics.ru Git - arm-tf.git/commit
board/rdn1edge: add support for dual-chip configuration
authorVijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
Mon, 28 Oct 2019 09:19:48 +0000 (14:49 +0530)
committerVijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
Fri, 7 Feb 2020 13:54:17 +0000 (19:24 +0530)
commit2d4b719cc6f79312f32515fb2aa5304ca155eceb
tree356a4830554add6a5b8865b021fc8bddaa07ea9c
parent31e703f99574a5a1edeadde611b031c422d5987c
board/rdn1edge: add support for dual-chip configuration

RD-N1-Edge based platforms can operate in dual-chip configuration
wherein two rdn1edge SoCs are connected through a high speed coherent
CCIX link.

This patch adds a function to check if the RD-N1-Edge platform is
operating in multi-chip mode by reading the SID register's NODE_ID
value. If operating in multi-chip mode, initialize GIC-600 multi-chip
operation by overriding the default GICR frames with array of GICR
frames and setting the chip 0 as routing table owner.

The address space of the second RD-N1-Edge chip (chip 1) starts from the
address 4TB. So increase the physical and virtual address space size to
43 bits to accommodate the multi-chip configuration. If the multi-chip
mode configuration is detected, dynamically add mmap entry for the
peripherals memory region of the second RD-N1-Edge SoC. This is required
to let the BL31 platform setup stage to configure the devices in the
second chip.

PLATFORM_CORE_COUNT macro is set to be multiple of CSS_SGI_CHIP_COUNT
and topology changes are added to represent the dual-chip configuration.

In order the build the dual-chip platform, CSS_SGI_CHIP_COUNT macro
should be set to 2:
export CROSS_COMPILE=<path-to-cross-compiler>
make PLAT=rdn1edge CSS_SGI_CHIP_COUNT=2 ARCH=aarch64 all

Change-Id: I576cdaf71f0b0e41b9a9181fa4feb7091f8c7bb4
Signed-off-by: Aditya Angadi <aditya.angadi@arm.com>
Signed-off-by: Vijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
plat/arm/board/rdn1edge/include/platform_def.h
plat/arm/board/rdn1edge/platform.mk
plat/arm/board/rdn1edge/rdn1edge_plat.c
plat/arm/board/rdn1edge/rdn1edge_topology.c
plat/arm/css/sgi/include/sgi_base_platform_def.h
plat/arm/css/sgi/sgi_bl31_setup.c