Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Arm Trusted Firmware
Commits
31abc7c4
Unverified
Commit
31abc7c4
authored
6 years ago
by
Antonio Niño Díaz
Committed by
GitHub
6 years ago
Browse files
Options
Download
Plain Diff
Merge pull request #1638 from chandnich/sgi575-update
Sgi575 update
parents
deca6584
8c7b55f9
master
v2.5
v2.5-rc1
v2.5-rc0
v2.4
v2.4-rc2
v2.4-rc1
v2.4-rc0
v2.3
v2.3-rc2
v2.3-rc1
v2.3-rc0
v2.2
v2.2-rc2
v2.2-rc1
v2.2-rc0
v2.1
v2.1-rc1
v2.1-rc0
arm_cca_v0.2
arm_cca_v0.1
No related merge requests found
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
plat/arm/board/sgi575/fdts/sgi575.dts
+21
-0
plat/arm/board/sgi575/fdts/sgi575.dts
plat/arm/board/sgi575/fdts/sgi575_tb_fw_config.dts
+0
-0
plat/arm/board/sgi575/fdts/sgi575_tb_fw_config.dts
plat/arm/board/sgi575/include/platform_def.h
+18
-0
plat/arm/board/sgi575/include/platform_def.h
plat/arm/board/sgi575/platform.mk
+23
-1
plat/arm/board/sgi575/platform.mk
plat/arm/css/sgi/include/sgi_base_platform_def.h
+3
-10
plat/arm/css/sgi/include/sgi_base_platform_def.h
plat/arm/css/sgi/include/sgi_plat_config.h
+0
-43
plat/arm/css/sgi/include/sgi_plat_config.h
plat/arm/css/sgi/sgi-common.mk
+3
-23
plat/arm/css/sgi/sgi-common.mk
plat/arm/css/sgi/sgi_bl31_setup.c
+0
-4
plat/arm/css/sgi/sgi_bl31_setup.c
plat/arm/css/sgi/sgi_image_load.c
+17
-12
plat/arm/css/sgi/sgi_image_load.c
plat/arm/css/sgi/sgi_interconnect.c
+0
-1
plat/arm/css/sgi/sgi_interconnect.c
plat/arm/css/sgi/sgi_plat_config.c
+0
-55
plat/arm/css/sgi/sgi_plat_config.c
plat/arm/css/sgi/sgi_topology.c
+2
-9
plat/arm/css/sgi/sgi_topology.c
with
87 additions
and
158 deletions
+87
-158
plat/arm/
css
/sgi/fdts/sgi575.dts
→
plat/arm/
board
/sgi
575
/fdts/sgi575.dts
View file @
31abc7c4
...
...
@@ -8,4 +8,14 @@
/ {
/* compatible string */
compatible = "arm,sgi575";
/*
* Place holder for system-id node with default values. The
* value of platform-id and config-id will be set to the
* correct values during the BL2 stage of boot.
*/
system-id {
platform-id = <0x0>;
config-id = <0x0>;
};
};
This diff is collapsed.
Click to expand it.
plat/arm/
css
/sgi/fdts/sgi575_tb_fw_config.dts
→
plat/arm/
board
/sgi
575
/fdts/sgi575_tb_fw_config.dts
View file @
31abc7c4
File moved
This diff is collapsed.
Click to expand it.
plat/arm/
css/sgi/sgi_bl1_setup.c
→
plat/arm/
board/sgi575/include/platform_def.h
View file @
31abc7c4
...
...
@@ -4,16 +4,15 @@
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <bl_common.h>
#include <debug.h>
#include <plat_arm.h>
#include <sgi_plat_config.h>
#include <soc_css.h>
#ifndef PLATFORM_DEF_H
#define PLATFORM_DEF_H
void
bl1_early_platform_setup
(
void
)
{
/* Initialize the platform configuration structure */
plat_config_init
();
#include <sgi_base_platform_def.h>
arm_bl1_early_platform_setup
();
}
#define PLAT_ARM_CLUSTER_COUNT 2
#define CSS_SGI_MAX_CPUS_PER_CLUSTER 4
#define CSS_SGI_MAX_PE_PER_CPU 1
#define PLAT_CSS_MHU_BASE 0x45000000
#endif
/* PLATFORM_DEF_H */
This diff is collapsed.
Click to expand it.
plat/arm/board/sgi575/platform.mk
View file @
31abc7c4
...
...
@@ -6,9 +6,31 @@
include
plat/arm/css/sgi/sgi-common.mk
SGI575_BASE
=
plat/arm/board/sgi575
PLAT_INCLUDES
+=
-I
${SGI575_BASE}
/include/
SGI_CPU_SOURCES
:=
lib/cpus/aarch64/cortex_a75.S
BL1_SOURCES
+=
${SGI_CPU_SOURCES}
BL2_SOURCES
+=
lib/utils/mem_region.c
\
plat/arm/common/arm_nor_psci_mem_protect.c
BL31_SOURCES
+=
drivers/cfi/v2m/v2m_flash.c
\
BL31_SOURCES
+=
${SGI_CPU_SOURCES}
\
drivers/cfi/v2m/v2m_flash.c
\
lib/utils/mem_region.c
\
plat/arm/common/arm_nor_psci_mem_protect.c
# Add the FDT_SOURCES and options for Dynamic Config
FDT_SOURCES
+=
${SGI575_BASE}
/fdts/
${PLAT}
_tb_fw_config.dts
TB_FW_CONFIG
:=
${BUILD_PLAT}
/fdts/
${PLAT}
_tb_fw_config.dtb
# Add the TB_FW_CONFIG to FIP and specify the same to certtool
$(eval
$(call
TOOL_ADD_PAYLOAD,${TB_FW_CONFIG},--tb-fw-config))
FDT_SOURCES
+=
${SGI575_BASE}
/fdts/
${PLAT}
.dts
HW_CONFIG
:=
${BUILD_PLAT}
/fdts/
${PLAT}
.dtb
# Add the HW_CONFIG to FIP and specify the same to certtool
$(eval
$(call
TOOL_ADD_PAYLOAD,${HW_CONFIG},--hw-config))
This diff is collapsed.
Click to expand it.
plat/arm/css/sgi/include/platform_def.h
→
plat/arm/css/sgi/include/
sgi_base_
platform_def.h
View file @
31abc7c4
...
...
@@ -4,8 +4,8 @@
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef PLATFORM_DEF_H
#define PLATFORM_DEF_H
#ifndef
SGI_BASE_
PLATFORM_DEF_H
#define
SGI_BASE_
PLATFORM_DEF_H
#include <arm_def.h>
#include <arm_spm_def.h>
...
...
@@ -17,11 +17,6 @@
#include <v2m_def.h>
#include <xlat_tables_defs.h>
#define CSS_SGI_MAX_CPUS_PER_CLUSTER 4
/* CPU topology */
#define PLAT_ARM_CLUSTER_COUNT 2
#define CSS_SGI_MAX_PE_PER_CPU 1
#define PLATFORM_CORE_COUNT (PLAT_ARM_CLUSTER_COUNT * \
CSS_SGI_MAX_CPUS_PER_CLUSTER * \
CSS_SGI_MAX_PE_PER_CPU)
...
...
@@ -118,8 +113,6 @@
#define PLAT_ARM_NSTIMER_FRAME_ID 0
#define PLAT_CSS_MHU_BASE 0x45000000
#define PLAT_ARM_TRUSTED_ROM_BASE 0x0
#define PLAT_ARM_TRUSTED_ROM_SIZE 0x00080000
/* 512KB */
...
...
@@ -216,4 +209,4 @@
V2M_FLASH0_SIZE - V2M_FLASH_BLOCK_SIZE)
#endif
/* PLATFORM_DEF_H */
#endif
/*
SGI_BASE_
PLATFORM_DEF_H */
This diff is collapsed.
Click to expand it.
plat/arm/css/sgi/include/sgi_plat_config.h
deleted
100644 → 0
View file @
deca6584
/*
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef __SGI_PLAT_CONFIG_H__
#define __SGI_PLAT_CONFIG_H__
#include <ccn.h>
#include <gicv3.h>
/* The type of interconnect */
typedef
enum
{
ARM_CCI
=
0
,
ARM_CCN
,
ARM_CMN
}
css_inteconn_type_t
;
typedef
ccn_desc_t
inteconn_desc_t
;
/* Interconnect configurations */
typedef
struct
css_inteconn_config
{
css_inteconn_type_t
ip_type
;
const
inteconn_desc_t
*
plat_inteconn_desc
;
}
css_inteconn_config_t
;
/* Topology configurations */
typedef
struct
css_topology
{
const
unsigned
char
*
power_tree
;
unsigned
int
plat_cluster_core_count
;
}
css_topology_t
;
typedef
struct
css_plat_config
{
const
gicv3_driver_data_t
*
gic_data
;
const
css_inteconn_config_t
*
inteconn
;
const
css_topology_t
*
topology
;
}
css_plat_config_t
;
void
plat_config_init
(
void
);
css_plat_config_t
*
get_plat_config
(
void
);
#endif
/* __SGI_PLAT_CONFIG_H__ */
This diff is collapsed.
Click to expand it.
plat/arm/css/sgi/sgi-common.mk
View file @
31abc7c4
...
...
@@ -22,8 +22,6 @@ INTERCONNECT_SOURCES := ${CSS_ENT_BASE}/sgi_interconnect.c
PLAT_INCLUDES
+=
-I
${CSS_ENT_BASE}
/include
ENT_CPU_SOURCES
:=
lib/cpus/aarch64/cortex_a75.S
ENT_GIC_SOURCES
:=
drivers/arm/gic/common/gic_common.c
\
drivers/arm/gic/v3/gicv3_main.c
\
drivers/arm/gic/v3/gicv3_helpers.c
\
...
...
@@ -35,38 +33,20 @@ ENT_GIC_SOURCES := drivers/arm/gic/common/gic_common.c \
PLAT_BL_COMMON_SOURCES
+=
${CSS_ENT_BASE}
/sgi_plat.c
\
${CSS_ENT_BASE}
/aarch64/sgi_helper.S
BL1_SOURCES
+=
${INTERCONNECT_SOURCES}
\
${ENT_CPU_SOURCES}
\
${CSS_ENT_BASE}
/sgi_bl1_setup.c
\
${CSS_ENT_BASE}
/sgi_plat_config.c
BL1_SOURCES
+=
${INTERCONNECT_SOURCES}
BL2_SOURCES
+=
${CSS_ENT_BASE}
/sgi_security.c
\
${CSS_ENT_BASE}
/sgi_image_load.c
BL31_SOURCES
+=
${ENT_CPU_SOURCES}
\
${INTERCONNECT_SOURCES}
\
BL31_SOURCES
+=
${INTERCONNECT_SOURCES}
\
${ENT_GIC_SOURCES}
\
${CSS_ENT_BASE}
/sgi_bl31_setup.c
\
${CSS_ENT_BASE}
/sgi_topology.c
\
${CSS_ENT_BASE}
/sgi_plat_config.c
${CSS_ENT_BASE}
/sgi_topology.c
ifeq
(${RAS_EXTENSION},1)
BL31_SOURCES
+=
${CSS_ENT_BASE}
/sgi_ras.c
endif
# Add the FDT_SOURCES and options for Dynamic Config
FDT_SOURCES
+=
${CSS_ENT_BASE}
/fdts/
${PLAT}
_tb_fw_config.dts
TB_FW_CONFIG
:=
${BUILD_PLAT}
/fdts/
${PLAT}
_tb_fw_config.dtb
# Add the TB_FW_CONFIG to FIP and specify the same to certtool
$(eval
$(call
TOOL_ADD_PAYLOAD,${TB_FW_CONFIG},--tb-fw-config))
FDT_SOURCES
+=
${CSS_ENT_BASE}
/fdts/
${PLAT}
.dts
HW_CONFIG
:=
${BUILD_PLAT}
/fdts/
${PLAT}
.dtb
# Add the HW_CONFIG to FIP and specify the same to certtool
$(eval
$(call
TOOL_ADD_PAYLOAD,${HW_CONFIG},--hw-config))
ifneq
(${RESET_TO_BL31},0)
$(error
"Using
BL31
as
the
reset
vector
is
not
supported
on
${PLATFORM}
platform.
\
Please
set
RESET_TO_BL31
to
0.")
...
...
This diff is collapsed.
Click to expand it.
plat/arm/css/sgi/sgi_bl31_setup.c
View file @
31abc7c4
...
...
@@ -7,7 +7,6 @@
#include <bl_common.h>
#include <debug.h>
#include <plat_arm.h>
#include <sgi_plat_config.h>
#include <sgi_ras.h>
#include "../../css/drivers/scmi/scmi.h"
#include "../../css/drivers/mhu/css_mhu_doorbell.h"
...
...
@@ -28,9 +27,6 @@ scmi_channel_plat_info_t *plat_css_get_scmi_info()
void
bl31_early_platform_setup2
(
u_register_t
arg0
,
u_register_t
arg1
,
u_register_t
arg2
,
u_register_t
arg3
)
{
/* Initialize the platform configuration structure */
plat_config_init
();
arm_bl31_early_platform_setup
((
void
*
)
arg0
,
arg1
,
arg2
,
(
void
*
)
arg3
);
}
...
...
This diff is collapsed.
Click to expand it.
plat/arm/css/sgi/sgi_image_load.c
View file @
31abc7c4
...
...
@@ -4,6 +4,7 @@
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <arch_helpers.h>
#include <debug.h>
#include <desc_image_load.h>
#include <libfdt.h>
...
...
@@ -13,6 +14,7 @@
* This function inserts Platform information via device tree nodes as,
* system-id {
* platform-id = <0>;
* config-id = <0>;
* }
******************************************************************************/
static
int
plat_sgi_append_config_node
(
void
)
...
...
@@ -20,7 +22,7 @@ static int plat_sgi_append_config_node(void)
bl_mem_params_node_t
*
mem_params
;
void
*
fdt
;
int
nodeoffset
,
err
;
unsigned
int
platid
=
0
;
unsigned
int
platid
=
0
,
platcfg
=
0
;
char
*
platform_name
;
mem_params
=
get_bl_mem_params_node
(
HW_CONFIG_ID
);
...
...
@@ -45,31 +47,34 @@ static int plat_sgi_append_config_node(void)
}
if
(
strcmp
(
platform_name
,
"arm,sgi575"
)
==
0
)
{
platid
=
mmio_read_32
(
SSC_VERSION
);
platid
=
mmio_read_32
(
SSC_VERSION
)
&
SSC_VERSION_PART_NUM_MASK
;
platcfg
=
(
mmio_read_32
(
SSC_VERSION
)
>>
SSC_VERSION_CONFIG_SHIFT
)
&
SSC_VERSION_CONFIG_MASK
;
}
else
{
WARN
(
"Invalid platform
\n
"
);
return
-
1
;
}
/* Increase DTB blob by 512 byte */
err
=
fdt_open_into
(
fdt
,
fdt
,
mem_params
->
image_info
.
image_size
+
512
);
if
(
err
<
0
)
{
ERROR
(
"Failed to open HW_CONFIG DTB
\n
"
);
nodeoffset
=
fdt_subnode_offset
(
fdt
,
0
,
"system-id"
);
if
(
nodeoffset
<
0
)
{
ERROR
(
"Failed to get system-id node offset
\n
"
);
return
-
1
;
}
/* Create "/system-id" node */
nodeoffset
=
fdt_add_subnode
(
fdt
,
0
,
"system-id"
);
if
(
nodeoffset
<
0
)
{
ERROR
(
"Failed to add node system-id
\n
"
);
err
=
fdt_setprop_u32
(
fdt
,
nodeoffset
,
"platform-id"
,
platid
);
if
(
err
<
0
)
{
ERROR
(
"Failed to set platform-id
\n
"
);
return
-
1
;
}
err
=
fdt_setprop_u32
(
fdt
,
nodeoffset
,
"
platform
-id"
,
plat
id
);
err
=
fdt_setprop_u32
(
fdt
,
nodeoffset
,
"
config
-id"
,
plat
cfg
);
if
(
err
<
0
)
{
ERROR
(
"Failed to
add node platform
-id
\n
"
);
ERROR
(
"Failed to
set config
-id
\n
"
);
return
-
1
;
}
flush_dcache_range
((
uintptr_t
)
fdt
,
mem_params
->
image_info
.
image_size
);
return
0
;
}
...
...
This diff is collapsed.
Click to expand it.
plat/arm/css/sgi/sgi_interconnect.c
View file @
31abc7c4
...
...
@@ -6,7 +6,6 @@
#include <arch_helpers.h>
#include <debug.h>
#include <sgi_plat_config.h>
/*
* For SGI575 which support FCM (with automatic interconnect enter/exit),
...
...
This diff is collapsed.
Click to expand it.
plat/arm/css/sgi/sgi_plat_config.c
deleted
100644 → 0
View file @
deca6584
/*
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <assert.h>
#include <debug.h>
#include <plat_arm.h>
#include <platform_def.h>
#include <sgi_variant.h>
#include <sgi_plat_config.h>
#include <string.h>
static
css_plat_config_t
*
css_plat_info
;
/* GIC */
/* The GICv3 driver only needs to be initialized in EL3 */
uintptr_t
rdistif_base_addrs
[
PLATFORM_CORE_COUNT
];
/* Interconnect configuration for SGI575 */
const
css_inteconn_config_t
sgi575_inteconn
=
{
.
ip_type
=
ARM_CMN
,
.
plat_inteconn_desc
=
NULL
};
/* Configuration structure for SGI575 */
css_plat_config_t
sgi575_config
=
{
.
inteconn
=
&
sgi575_inteconn
,
};
/*******************************************************************************
* This function initializes the platform sturcture.
******************************************************************************/
void
plat_config_init
(
void
)
{
/* Get the platform configurations */
switch
(
GET_SGI_PART_NUM
)
{
case
SGI575_SSC_VER_PART_NUM
:
css_plat_info
=
&
sgi575_config
;
break
;
default:
ERROR
(
"Not a valid sgi variant!
\n
"
);
panic
();
}
}
/*******************************************************************************
* This function returns the platform structure pointer.
******************************************************************************/
css_plat_config_t
*
get_plat_config
(
void
)
{
assert
(
css_plat_info
!=
NULL
);
return
css_plat_info
;
}
This diff is collapsed.
Click to expand it.
plat/arm/css/sgi/sgi_topology.c
View file @
31abc7c4
...
...
@@ -5,7 +5,6 @@
*/
#include <plat_arm.h>
#include <sgi_plat_config.h>
/* Topology */
/*
...
...
@@ -20,18 +19,12 @@ const unsigned char sgi_pd_tree_desc[] = {
CSS_SGI_MAX_CPUS_PER_CLUSTER
};
/* Topology configuration for sgi platform */
const
css_topology_t
sgi_topology
=
{
.
power_tree
=
sgi_pd_tree_desc
,
.
plat_cluster_core_count
=
CSS_SGI_MAX_CPUS_PER_CLUSTER
};
/*******************************************************************************
* This function returns the topology tree information.
******************************************************************************/
const
unsigned
char
*
plat_get_power_domain_tree_desc
(
void
)
{
return
sgi_
topology
.
power_tree
;
return
sgi_
pd_tree_desc
;
}
/*******************************************************************************
...
...
@@ -40,7 +33,7 @@ const unsigned char *plat_get_power_domain_tree_desc(void)
******************************************************************************/
unsigned
int
plat_arm_get_cluster_core_count
(
u_register_t
mpidr
)
{
return
sgi_topology
.
plat_cluster_core_count
;
return
CSS_SGI_MAX_CPUS_PER_CLUSTER
;
}
/*******************************************************************************
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Projects
Groups
Snippets
Help