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
22d12c41
Commit
22d12c41
authored
Jan 03, 2020
by
Alexei Fedorov
Committed by
TrustedFirmware Code Review
Jan 03, 2020
Browse files
Merge "drivers: add a driver for snoop control unit" into integration
parents
8a0a8199
c20c0525
Changes
6
Hide whitespace changes
Inline
Side-by-side
drivers/arm/scu/scu.c
0 → 100644
View file @
22d12c41
/*
* Copyright (c) 2019, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <assert.h>
#include <drivers/arm/scu.h>
#include <lib/mmio.h>
#include <plat/common/platform.h>
#include <stdint.h>
/*******************************************************************************
* Turn ON snoop control unit. This is needed to synchronize the data between
* CPU's.
******************************************************************************/
void
enable_snoop_ctrl_unit
(
uintptr_t
base
)
{
uint32_t
scu_ctrl
;
INFO
(
"[SCU]: enabling snoop control unit ...
\n
"
);
assert
(
base
!=
0U
);
scu_ctrl
=
mmio_read_32
(
base
+
SCU_CTRL_REG
);
/* already enabled? */
if
((
scu_ctrl
&
SCU_ENABLE_BIT
)
!=
0
)
{
return
;
}
scu_ctrl
|=
SCU_ENABLE_BIT
;
mmio_write_32
(
base
+
SCU_CTRL_REG
,
scu_ctrl
);
}
/*******************************************************************************
* Snoop Control Unit configuration register. This is read-only register and
* contains information such as
* - number of CPUs present
* - is a particular CPU operating in SMP mode or AMP mode
* - data cache size of a particular CPU
* - does SCU has ACP port
* - is L2CPRESENT
* NOTE: user of this API should interpert the bits in this register according
* to the TRM
******************************************************************************/
uint32_t
read_snoop_ctrl_unit_cfg
(
uintptr_t
base
)
{
assert
(
base
!=
0U
);
return
mmio_read_32
(
base
+
SCU_CFG_REG
);
}
include/drivers/arm/scu.h
0 → 100644
View file @
22d12c41
/*
* Copyright (c) 2019, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef SCU_H
#define SCU_H
#include <stdint.h>
#define SCU_CTRL_REG 0x00
#define SCU_CFG_REG 0x04
#define SCU_ENABLE_BIT (1 << 0)
void
enable_snoop_ctrl_unit
(
uintptr_t
base
);
uint32_t
read_snoop_ctrl_unit_cfg
(
uintptr_t
base
);
#endif
/* SCU_H */
plat/arm/board/a5ds/a5ds_pm.c
View file @
22d12c41
...
...
@@ -4,11 +4,10 @@
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <assert.h>
#include <drivers/arm/gicv2.h>
#include <lib/psci/psci.h>
#include <plat/arm/common/plat_arm.h>
#include <plat/common/platform.h>
#include <drivers/arm/gicv2.h>
/*******************************************************************************
* Platform handler called when a power domain is about to be turned on. The
...
...
plat/arm/board/a5ds/include/platform_def.h
View file @
22d12c41
...
...
@@ -334,6 +334,9 @@
#define A5DS_HOLD_STATE_WAIT 0
#define A5DS_HOLD_STATE_GO 1
/* Snoop Control Unit base address */
#define A5DS_SCU_BASE 0x1C000000
/*
* GIC related constants to cater for GICv2
*/
...
...
plat/arm/board/a5ds/sp_min/a5ds_sp_min_setup.c
View file @
22d12c41
...
...
@@ -4,12 +4,17 @@
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <drivers/arm/scu.h>
#include <plat/arm/common/plat_arm.h>
void
plat_arm_sp_min_early_platform_setup
(
u_register_t
arg0
,
u_register_t
arg1
,
u_register_t
arg2
,
u_register_t
arg3
)
{
arm_sp_min_early_platform_setup
((
void
*
)
arg0
,
arg1
,
arg2
,
(
void
*
)
arg3
);
/* enable snoop control unit */
enable_snoop_ctrl_unit
(
A5DS_SCU_BASE
);
}
/*
...
...
plat/arm/board/a5ds/sp_min/sp_min-a5ds.mk
View file @
22d12c41
...
...
@@ -5,7 +5,8 @@
#
# SP_MIN source files specific to A5DS platform
BL32_SOURCES
+=
drivers/cfi/v2m/v2m_flash.c
\
BL32_SOURCES
+=
drivers/arm/scu/scu.c
\
drivers/cfi/v2m/v2m_flash.c
\
lib/utils/mem_region.c
\
lib/aarch32/arm32_aeabi_divmod.c
\
lib/aarch32/arm32_aeabi_divmod_a32.S
\
...
...
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