Skip to content
GitLab
Menu
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
ae4a99b9
Unverified
Commit
ae4a99b9
authored
Dec 04, 2018
by
Antonio Nino Diaz
Browse files
Merge pull request #1705 from chandnich/platform-id
plat/arm/sgi: Use platform specific functions to get platform ids
parents
6d422c3e
699223a2
Changes
7
Show whitespace changes
Inline
Side-by-side
plat/arm/board/sgi575/platform.mk
View file @
ae4a99b9
...
@@ -14,12 +14,14 @@ SGI_CPU_SOURCES := lib/cpus/aarch64/cortex_a75.S
...
@@ -14,12 +14,14 @@ SGI_CPU_SOURCES := lib/cpus/aarch64/cortex_a75.S
BL1_SOURCES
+=
${SGI_CPU_SOURCES}
BL1_SOURCES
+=
${SGI_CPU_SOURCES}
BL2_SOURCES
+=
${SGI575_BASE}
/sgi575_security.c
\
BL2_SOURCES
+=
${SGI575_BASE}
/sgi575_plat.c
\
${SGI575_BASE}
/sgi575_security.c
\
drivers/arm/tzc/tzc_dmc620.c
\
drivers/arm/tzc/tzc_dmc620.c
\
lib/utils/mem_region.c
\
lib/utils/mem_region.c
\
plat/arm/common/arm_nor_psci_mem_protect.c
plat/arm/common/arm_nor_psci_mem_protect.c
BL31_SOURCES
+=
${SGI_CPU_SOURCES}
\
BL31_SOURCES
+=
${SGI_CPU_SOURCES}
\
${SGI575_BASE}
/sgi575_plat.c
\
drivers/cfi/v2m/v2m_flash.c
\
drivers/cfi/v2m/v2m_flash.c
\
lib/utils/mem_region.c
\
lib/utils/mem_region.c
\
plat/arm/common/arm_nor_psci_mem_protect.c
plat/arm/common/arm_nor_psci_mem_protect.c
...
...
plat/arm/board/sgi575/sgi575_plat.c
0 → 100644
View file @
ae4a99b9
/*
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <platform.h>
unsigned
int
plat_arm_sgi_get_platform_id
(
void
)
{
return
mmio_read_32
(
SSC_VERSION
)
&
SSC_VERSION_PART_NUM_MASK
;
}
unsigned
int
plat_arm_sgi_get_config_id
(
void
)
{
return
(
mmio_read_32
(
SSC_VERSION
)
>>
SSC_VERSION_CONFIG_SHIFT
)
&
SSC_VERSION_CONFIG_MASK
;
}
plat/arm/board/sgiclarka/platform.mk
View file @
ae4a99b9
...
@@ -14,12 +14,14 @@ SGI_CPU_SOURCES := lib/cpus/aarch64/cortex_ares.S
...
@@ -14,12 +14,14 @@ SGI_CPU_SOURCES := lib/cpus/aarch64/cortex_ares.S
BL1_SOURCES
+=
${SGI_CPU_SOURCES}
BL1_SOURCES
+=
${SGI_CPU_SOURCES}
BL2_SOURCES
+=
${SGICLARKA_BASE}
/sgiclarka_security.c
\
BL2_SOURCES
+=
${SGICLARKA_BASE}
/sgiclarka_plat.c
\
${SGICLARKA_BASE}
/sgiclarka_security.c
\
drivers/arm/tzc/tzc_dmc620.c
\
drivers/arm/tzc/tzc_dmc620.c
\
lib/utils/mem_region.c
\
lib/utils/mem_region.c
\
plat/arm/common/arm_nor_psci_mem_protect.c
plat/arm/common/arm_nor_psci_mem_protect.c
BL31_SOURCES
+=
${SGI_CPU_SOURCES}
\
BL31_SOURCES
+=
${SGI_CPU_SOURCES}
\
${SGICLARKA_BASE}
/sgiclarka_plat.c
\
drivers/cfi/v2m/v2m_flash.c
\
drivers/cfi/v2m/v2m_flash.c
\
lib/utils/mem_region.c
\
lib/utils/mem_region.c
\
plat/arm/common/arm_nor_psci_mem_protect.c
plat/arm/common/arm_nor_psci_mem_protect.c
...
...
plat/arm/board/sgiclarka/sgiclarka_plat.c
0 → 100644
View file @
ae4a99b9
/*
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <platform.h>
unsigned
int
plat_arm_sgi_get_platform_id
(
void
)
{
return
mmio_read_32
(
SID_REG_BASE
+
SID_SYSTEM_ID_OFFSET
)
&
SID_SYSTEM_ID_PART_NUM_MASK
;
}
unsigned
int
plat_arm_sgi_get_config_id
(
void
)
{
return
mmio_read_32
(
SID_REG_BASE
+
SID_SYSTEM_CFG_OFFSET
);
}
plat/arm/css/sgi/include/sgi_variant.h
View file @
ae4a99b9
...
@@ -21,4 +21,10 @@ typedef struct sgi_platform_info {
...
@@ -21,4 +21,10 @@ typedef struct sgi_platform_info {
extern
sgi_platform_info_t
sgi_plat_info
;
extern
sgi_platform_info_t
sgi_plat_info
;
/* returns the part number of the platform*/
unsigned
int
plat_arm_sgi_get_platform_id
(
void
);
/* returns the configuration id of the platform */
unsigned
int
plat_arm_sgi_get_config_id
(
void
);
#endif
/* SGI_VARIANT_H */
#endif
/* SGI_VARIANT_H */
plat/arm/css/sgi/sgi_bl31_setup.c
View file @
ae4a99b9
...
@@ -42,53 +42,11 @@ scmi_channel_plat_info_t *plat_css_get_scmi_info()
...
@@ -42,53 +42,11 @@ scmi_channel_plat_info_t *plat_css_get_scmi_info()
panic
();
panic
();
};
};
/*******************************************************************************
* This function sets the sgi_platform_id and sgi_config_id
******************************************************************************/
int
sgi_identify_platform
(
unsigned
long
hw_config
)
{
void
*
fdt
;
int
nodeoffset
;
const
unsigned
int
*
property
;
fdt
=
(
void
*
)
hw_config
;
/* Check the validity of the fdt */
assert
(
fdt_check_header
(
fdt
)
==
0
);
nodeoffset
=
fdt_subnode_offset
(
fdt
,
0
,
"system-id"
);
if
(
nodeoffset
<
0
)
{
ERROR
(
"Failed to get system-id node offset
\n
"
);
return
-
1
;
}
property
=
fdt_getprop
(
fdt
,
nodeoffset
,
"platform-id"
,
NULL
);
if
(
property
==
NULL
)
{
ERROR
(
"Failed to get platform-id property
\n
"
);
return
-
1
;
}
sgi_plat_info
.
platform_id
=
fdt32_to_cpu
(
*
property
);
property
=
fdt_getprop
(
fdt
,
nodeoffset
,
"config-id"
,
NULL
);
if
(
property
==
NULL
)
{
ERROR
(
"Failed to get config-id property
\n
"
);
return
-
1
;
}
sgi_plat_info
.
config_id
=
fdt32_to_cpu
(
*
property
);
return
0
;
}
void
bl31_early_platform_setup2
(
u_register_t
arg0
,
u_register_t
arg1
,
void
bl31_early_platform_setup2
(
u_register_t
arg0
,
u_register_t
arg1
,
u_register_t
arg2
,
u_register_t
arg3
)
u_register_t
arg2
,
u_register_t
arg3
)
{
{
int
ret
;
sgi_plat_info
.
platform_id
=
plat_arm_sgi_get_platform_id
();
sgi_plat_info
.
config_id
=
plat_arm_sgi_get_config_id
();
ret
=
sgi_identify_platform
(
arg2
);
if
(
ret
==
-
1
)
panic
();
arm_bl31_early_platform_setup
((
void
*
)
arg0
,
arg1
,
arg2
,
(
void
*
)
arg3
);
arm_bl31_early_platform_setup
((
void
*
)
arg0
,
arg1
,
arg2
,
(
void
*
)
arg3
);
}
}
...
...
plat/arm/css/sgi/sgi_image_load.c
View file @
ae4a99b9
...
@@ -9,6 +9,7 @@
...
@@ -9,6 +9,7 @@
#include <desc_image_load.h>
#include <desc_image_load.h>
#include <libfdt.h>
#include <libfdt.h>
#include <platform.h>
#include <platform.h>
#include <sgi_variant.h>
/*******************************************************************************
/*******************************************************************************
* This function inserts Platform information via device tree nodes as,
* This function inserts Platform information via device tree nodes as,
...
@@ -23,7 +24,6 @@ static int plat_sgi_append_config_node(void)
...
@@ -23,7 +24,6 @@ static int plat_sgi_append_config_node(void)
void
*
fdt
;
void
*
fdt
;
int
nodeoffset
,
err
;
int
nodeoffset
,
err
;
unsigned
int
platid
=
0
,
platcfg
=
0
;
unsigned
int
platid
=
0
,
platcfg
=
0
;
char
*
platform_name
;
mem_params
=
get_bl_mem_params_node
(
HW_CONFIG_ID
);
mem_params
=
get_bl_mem_params_node
(
HW_CONFIG_ID
);
if
(
mem_params
==
NULL
)
{
if
(
mem_params
==
NULL
)
{
...
@@ -39,38 +39,20 @@ static int plat_sgi_append_config_node(void)
...
@@ -39,38 +39,20 @@ static int plat_sgi_append_config_node(void)
return
-
1
;
return
-
1
;
}
}
platform_name
=
(
char
*
)
fdt_getprop
(
fdt
,
0
,
"compatible"
,
NULL
);
if
(
platform_name
==
NULL
)
{
ERROR
(
"Invalid HW_CONFIG DTB passed
\n
"
);
return
-
1
;
}
if
(
strcmp
(
platform_name
,
"arm,sgi575"
)
==
0
)
{
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
if
(
strcmp
(
platform_name
,
"arm,sgi-clark"
)
==
0
)
{
platid
=
mmio_read_32
(
SID_REG_BASE
+
SID_SYSTEM_ID_OFFSET
)
&
SID_SYSTEM_ID_PART_NUM_MASK
;
platcfg
=
mmio_read_32
(
SID_REG_BASE
+
SID_SYSTEM_CFG_OFFSET
);
}
else
{
WARN
(
"Invalid platform
\n
"
);
return
-
1
;
}
nodeoffset
=
fdt_subnode_offset
(
fdt
,
0
,
"system-id"
);
nodeoffset
=
fdt_subnode_offset
(
fdt
,
0
,
"system-id"
);
if
(
nodeoffset
<
0
)
{
if
(
nodeoffset
<
0
)
{
ERROR
(
"Failed to get system-id node offset
\n
"
);
ERROR
(
"Failed to get system-id node offset
\n
"
);
return
-
1
;
return
-
1
;
}
}
platid
=
plat_arm_sgi_get_platform_id
();
err
=
fdt_setprop_u32
(
fdt
,
nodeoffset
,
"platform-id"
,
platid
);
err
=
fdt_setprop_u32
(
fdt
,
nodeoffset
,
"platform-id"
,
platid
);
if
(
err
<
0
)
{
if
(
err
<
0
)
{
ERROR
(
"Failed to set platform-id
\n
"
);
ERROR
(
"Failed to set platform-id
\n
"
);
return
-
1
;
return
-
1
;
}
}
platcfg
=
plat_arm_sgi_get_config_id
();
err
=
fdt_setprop_u32
(
fdt
,
nodeoffset
,
"config-id"
,
platcfg
);
err
=
fdt_setprop_u32
(
fdt
,
nodeoffset
,
"config-id"
,
platcfg
);
if
(
err
<
0
)
{
if
(
err
<
0
)
{
ERROR
(
"Failed to set config-id
\n
"
);
ERROR
(
"Failed to set config-id
\n
"
);
...
...
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