Skip to content

Commit

Permalink
lib: generic: xlnx: Enable CMake handling for System Device Tree Flow
Browse files Browse the repository at this point in the history
For AMD-Xilinx tooling, there is a new System Device Tree  (SDT) BSP
with different symbols for GIC than the classic BSP. This causes issues
when linking Libmetal against the SDT Flow BSP. Note that there is a
planned deprecation of the classic BSP.

For AMD-Xilinx System Device Tree (SDT) Flow, one of the files provided
by BSP is bspconfig.h. This file provides reference to the symbols that
describe GIC Device ID and GIC distributor Base Address. AMD-Xilinx
tools that use the SDT Flow BSP will provide symbol 'SDT' to signal that
the SDT Flow BSP is present. If SDT symbol is present then the Libmetal
build will include the new header "lib/system/generic/xlnx/sdt.h" to
preserve library build.

Signed-off-by: Ben Levinsky <ben.levinsky@amd.com>
  • Loading branch information
bentheredonethat authored and arnopo committed Dec 20, 2023
1 parent f55c02a commit 224cdea
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 1 deletion.
6 changes: 5 additions & 1 deletion lib/system/generic/xlnx/CMakeLists.txt
Expand Up @@ -8,4 +8,8 @@ collect (PROJECT_LIB_HEADERS sys.h)

collect (PROJECT_LIB_SOURCES irq.c)

# vim: expandtab:ts=2:sw=2:smartindent
include(CheckSymbolExists)
check_symbol_exists(SDT "bspconfig.h" HAS_SYSTEM_DT)
if (HAS_SYSTEM_DT)
collect (PROJECT_LIB_HEADERS sys_devicetree.h)
endif()
5 changes: 5 additions & 0 deletions lib/system/generic/xlnx/sys.h
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2015, Xilinx Inc. and Contributors. All rights reserved.
* Copyright (C) 2023, Advanced Micro Devices, Inc.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
Expand Down Expand Up @@ -28,6 +29,10 @@
#include <xil_exception.h>
#include <xparameters.h>

#ifdef SDT
#include <metal/system/generic/xlnx/sys_devicetree.h>
#endif

#ifndef __METAL_GENERIC_XLNX_SYS__H__
#define __METAL_GENERIC_XLNX_SYS__H__

Expand Down
25 changes: 25 additions & 0 deletions lib/system/generic/xlnx/sys_devicetree.h
@@ -0,0 +1,25 @@
/*
* Copyright (c) 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/

/*
* @file generic/xlnx/sys_devicetree.h
* @brief Xilinx-AMD Specific symbols for System Device Tree Flow
*/

#ifndef __METAL_GENERIC_SYS_XLNX_SYS_DEVICETREE_H__
#define __METAL_GENERIC_SYS_XLNX_SYS_DEVICETREE_H__

/* The Xilinx-AMD System Device Tree (SDT) Flow BSP provides this file. */
#include "bspconfig.h"

#ifndef XPAR_SCUGIC_0_DEVICE_ID
#define XPAR_SCUGIC_0_DEVICE_ID XPAR_SCUGIC_SINGLE_DEVICE_ID
#endif

#ifndef XPAR_SCUGIC_0_DIST_BASEADDR
#define XPAR_SCUGIC_0_DIST_BASEADDR XPAR_SCUGIC_DIST_BASEADDR
#endif
#endif /* __METAL_GENERIC_SYS_XLNX_SYS_DEVICETREE_H__ */

0 comments on commit 224cdea

Please sign in to comment.