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
988cc820
Commit
988cc820
authored
5 years ago
by
Paul Beesley
Committed by
TrustedFirmware Code Review
5 years ago
Browse files
Options
Download
Plain Diff
Merge "FVP: Add Delay Timer driver to BL1 and BL31" into integration
parents
f2b3ac63
1b597c22
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
arm_cca_v0.2
arm_cca_v0.1
No related merge requests found
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
plat/arm/board/fvp/fvp_bl1_setup.c
+3
-0
plat/arm/board/fvp/fvp_bl1_setup.c
plat/arm/board/fvp/fvp_bl2_setup.c
+3
-12
plat/arm/board/fvp/fvp_bl2_setup.c
plat/arm/board/fvp/fvp_bl2u_setup.c
+4
-1
plat/arm/board/fvp/fvp_bl2u_setup.c
plat/arm/board/fvp/fvp_bl31_setup.c
+4
-1
plat/arm/board/fvp/fvp_bl31_setup.c
plat/arm/board/fvp/fvp_common.c
+22
-0
plat/arm/board/fvp/fvp_common.c
plat/arm/board/fvp/fvp_private.h
+1
-0
plat/arm/board/fvp/fvp_private.h
plat/arm/board/fvp/platform.mk
+18
-0
plat/arm/board/fvp/platform.mk
with
55 additions
and
14 deletions
+55
-14
plat/arm/board/fvp/fvp_bl1_setup.c
View file @
988cc820
...
...
@@ -48,6 +48,9 @@ void bl1_platform_setup(void)
{
arm_bl1_platform_setup
();
/* Initialize System level generic or SP804 timer */
fvp_timer_init
();
/* On FVP RevC, initialize SMMUv3 */
if
((
arm_config
.
flags
&
ARM_CONFIG_FVP_HAS_SMMUV3
)
!=
0U
)
smmuv3_security_init
(
PLAT_FVP_SMMUV3_BASE
);
...
...
This diff is collapsed.
Click to expand it.
plat/arm/board/fvp/fvp_bl2_setup.c
View file @
988cc820
/*
* Copyright (c) 2013-201
8
, ARM Limited and Contributors. All rights reserved.
* Copyright (c) 2013-201
9
, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
...
...
@@ -25,15 +25,6 @@ void bl2_platform_setup(void)
{
arm_bl2_platform_setup
();
#if FVP_USE_SP804_TIMER
/* Enable the clock override for SP804 timer 0, which means that no
* clock dividers are applied and the raw (35 MHz) clock will be used */
mmio_write_32
(
V2M_SP810_BASE
,
FVP_SP810_CTRL_TIM0_OV
);
/* Initialize delay timer driver using SP804 dual timer 0 */
sp804_timer_init
(
V2M_SP804_TIMER0_BASE
,
SP804_TIMER_CLKMULT
,
SP804_TIMER_CLKDIV
);
#else
generic_delay_timer_init
();
#endif
/* FVP_USE_SP804_TIMER */
/* Initialize System level generic or SP804 timer */
fvp_timer_init
();
}
This diff is collapsed.
Click to expand it.
plat/arm/board/fvp/fvp_bl2u_setup.c
View file @
988cc820
/*
* Copyright (c) 2013-201
8
, ARM Limited and Contributors. All rights reserved.
* Copyright (c) 2013-201
9
, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
...
...
@@ -14,6 +14,9 @@ void bl2u_early_platform_setup(struct meminfo *mem_layout, void *plat_info)
{
arm_bl2u_early_platform_setup
(
mem_layout
,
plat_info
);
/* Initialize System level generic or SP804 timer */
fvp_timer_init
();
/* Initialize the platform config for future decision making */
fvp_config_setup
();
}
This diff is collapsed.
Click to expand it.
plat/arm/board/fvp/fvp_bl31_setup.c
View file @
988cc820
/*
* Copyright (c) 2013-201
8
, ARM Limited and Contributors. All rights reserved.
* Copyright (c) 2013-201
9
, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
...
...
@@ -34,6 +34,9 @@ void __init bl31_early_platform_setup2(u_register_t arg0,
*/
fvp_interconnect_enable
();
/* Initialize System level generic or SP804 timer */
fvp_timer_init
();
/* On FVP RevC, initialize SMMUv3 */
if
((
arm_config
.
flags
&
ARM_CONFIG_FVP_HAS_SMMUV3
)
!=
0U
)
smmuv3_init
(
PLAT_FVP_SMMUV3_BASE
);
...
...
This diff is collapsed.
Click to expand it.
plat/arm/board/fvp/fvp_common.c
View file @
988cc820
...
...
@@ -10,6 +10,8 @@
#include <drivers/arm/cci.h>
#include <drivers/arm/ccn.h>
#include <drivers/arm/gicv2.h>
#include <drivers/arm/sp804_delay_timer.h>
#include <drivers/generic_delay_timer.h>
#include <lib/mmio.h>
#include <lib/xlat_tables/xlat_tables_compat.h>
#include <plat/arm/common/arm_config.h>
...
...
@@ -407,3 +409,23 @@ int plat_get_mbedtls_heap(void **heap_addr, size_t *heap_size)
return
arm_get_mbedtls_heap
(
heap_addr
,
heap_size
);
}
#endif
void
fvp_timer_init
(
void
)
{
#if FVP_USE_SP804_TIMER
/* Enable the clock override for SP804 timer 0, which means that no
* clock dividers are applied and the raw (35MHz) clock will be used.
*/
mmio_write_32
(
V2M_SP810_BASE
,
FVP_SP810_CTRL_TIM0_OV
);
/* Initialize delay timer driver using SP804 dual timer 0 */
sp804_timer_init
(
V2M_SP804_TIMER0_BASE
,
SP804_TIMER_CLKMULT
,
SP804_TIMER_CLKDIV
);
#else
generic_delay_timer_init
();
/* Enable System level generic timer */
mmio_write_32
(
ARM_SYS_CNTCTL_BASE
+
CNTCR_OFF
,
CNTCR_FCREQ
(
0U
)
|
CNTCR_EN
);
#endif
/* FVP_USE_SP804_TIMER */
}
This diff is collapsed.
Click to expand it.
plat/arm/board/fvp/fvp_private.h
View file @
988cc820
...
...
@@ -18,6 +18,7 @@ void fvp_config_setup(void);
void
fvp_interconnect_init
(
void
);
void
fvp_interconnect_enable
(
void
);
void
fvp_interconnect_disable
(
void
);
void
fvp_timer_init
(
void
);
void
tsp_early_platform_setup
(
void
);
#endif
/* FVP_PRIVATE_H */
This diff is collapsed.
Click to expand it.
plat/arm/board/fvp/platform.mk
View file @
988cc820
...
...
@@ -127,6 +127,7 @@ endif
BL1_SOURCES
+=
drivers/arm/smmu/smmu_v3.c
\
drivers/arm/sp805/sp805.c
\
drivers/delay_timer/delay_timer.c
\
drivers/io/io_semihosting.c
\
lib/semihosting/semihosting.c
\
lib/semihosting/
${ARCH}
/semihosting_call.S
\
...
...
@@ -138,6 +139,12 @@ BL1_SOURCES += drivers/arm/smmu/smmu_v3.c \
${FVP_CPU_LIBS}
\
${FVP_INTERCONNECT_SOURCES}
ifeq
(${FVP_USE_SP804_TIMER},1)
BL1_SOURCES
+=
drivers/arm/sp804/sp804_delay_timer.c
else
BL1_SOURCES
+=
drivers/delay_timer/generic_delay_timer.c
endif
BL2_SOURCES
+=
drivers/arm/sp805/sp805.c
\
drivers/io/io_semihosting.c
\
...
...
@@ -167,8 +174,13 @@ endif
BL2U_SOURCES
+=
plat/arm/board/fvp/fvp_bl2u_setup.c
\
${FVP_SECURITY_SOURCES}
ifeq
(${FVP_USE_SP804_TIMER},1)
BL2U_SOURCES
+=
drivers/arm/sp804/sp804_delay_timer.c
endif
BL31_SOURCES
+=
drivers/arm/fvp/fvp_pwrc.c
\
drivers/arm/smmu/smmu_v3.c
\
drivers/delay_timer/delay_timer.c
\
drivers/cfi/v2m/v2m_flash.c
\
lib/utils/mem_region.c
\
plat/arm/board/fvp/fvp_bl31_setup.c
\
...
...
@@ -181,6 +193,12 @@ BL31_SOURCES += drivers/arm/fvp/fvp_pwrc.c \
${FVP_INTERCONNECT_SOURCES}
\
${FVP_SECURITY_SOURCES}
ifeq
(${FVP_USE_SP804_TIMER},1)
BL31_SOURCES
+=
drivers/arm/sp804/sp804_delay_timer.c
else
BL31_SOURCES
+=
drivers/delay_timer/generic_delay_timer.c
endif
# Add the FDT_SOURCES and options for Dynamic Config (only for Unix env)
ifdef
UNIX_MK
FVP_HW_CONFIG_DTS
:=
fdts/
${FVP_DT_PREFIX}
.dts
...
...
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