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
1a80e885
Commit
1a80e885
authored
Feb 20, 2017
by
danh-arm
Committed by
GitHub
Feb 20, 2017
Browse files
Merge pull request #841 from dp-arm/dp/debug-regs
Disable secure self-hosted debug
parents
108e4df7
09fad498
Changes
6
Show whitespace changes
Inline
Side-by-side
include/common/aarch32/el3_common_macros.S
View file @
1a80e885
...
...
@@ -98,6 +98,11 @@
orr
r0
,
r0
,
#
FPEXC_EN_BIT
vmsr
FPEXC
,
r0
isb
/
*
Disable
secure
self
-
hosted
invasive
debug
.
*/
ldr
r0
,
=
SDCR_DEF_VAL
stcopr
r0
,
SDCR
.
endm
/*
-----------------------------------------------------------------------------
...
...
include/common/aarch64/el3_common_macros.S
View file @
1a80e885
...
...
@@ -79,10 +79,11 @@
msr
scr_el3
,
x0
/
*
---------------------------------------------------------------------
*
Reset
registers
that
may
have
archit
ec
t
ur
ally
unknown
reset
values
*
Disable
s
ecur
e
self
-
hosted
invasive
debug
.
*
---------------------------------------------------------------------
*/
msr
mdcr_el3
,
xzr
mov_imm
x0
,
MDCR_DEF_VAL
msr
mdcr_el3
,
x0
/
*
---------------------------------------------------------------------
*
Enable
External
Aborts
and
SError
Interrupts
now
that
the
exception
...
...
include/lib/aarch32/arch.h
View file @
1a80e885
...
...
@@ -125,6 +125,14 @@
#define SCTLR_AFE_BIT (1 << 29)
#define SCTLR_TE_BIT (1 << 30)
/* SDCR definitions */
#define SDCR_SPD(x) ((x) << 14)
#define SDCR_SPD_LEGACY 0x0
#define SDCR_SPD_DISABLE 0x2
#define SDCR_SPD_ENABLE 0x3
#define SDCR_DEF_VAL SDCR_SPD(SDCR_SPD_DISABLE)
/* HSCTLR definitions */
#define HSCTLR_RES1 ((1 << 29) | (1 << 28) | (1 << 23) | (1 << 22) \
| (1 << 18) | (1 << 16) | (1 << 11) | (1 << 4) \
...
...
@@ -345,6 +353,7 @@
/* System register defines The format is: coproc, opt1, CRn, CRm, opt2 */
#define SCR p15, 0, c1, c1, 0
#define SCTLR p15, 0, c1, c0, 0
#define SDCR p15, 0, c1, c3, 1
#define MPIDR p15, 0, c0, c0, 5
#define MIDR p15, 0, c0, c0, 0
#define VBAR p15, 0, c12, c0, 0
...
...
include/lib/aarch64/arch.h
View file @
1a80e885
...
...
@@ -195,6 +195,15 @@
#define SCR_NS_BIT (1 << 0)
#define SCR_VALID_BIT_MASK 0x2f8f
/* MDCR definitions */
#define MDCR_SPD32(x) ((x) << 14)
#define MDCR_SPD32_LEGACY 0x0
#define MDCR_SPD32_DISABLE 0x2
#define MDCR_SPD32_ENABLE 0x3
#define MDCR_SDD_BIT (1 << 16)
#define MDCR_DEF_VAL (MDCR_SDD_BIT | MDCR_SPD32(MDCR_SPD32_DISABLE))
/* HCR definitions */
#define HCR_RW_BIT (1ull << 31)
#define HCR_AMO_BIT (1 << 5)
...
...
include/plat/arm/css/common/css_def.h
View file @
1a80e885
...
...
@@ -101,6 +101,13 @@
#define SSC_VERSION_DESIGNER_ID_MASK 0xff
#define SSC_VERSION_PART_NUM_MASK 0xfff
/* SSC debug configuration registers */
#define SSC_DBGCFG_SET 0x14
#define SSC_DBGCFG_CLR 0x18
#define SPIDEN_INT_CLR_SHIFT 6
#define SPIDEN_SEL_SET_SHIFT 7
#ifndef __ASSEMBLY__
/* SSC_VERSION related accessors */
...
...
plat/arm/board/juno/juno_security.c
View file @
1a80e885
...
...
@@ -59,17 +59,35 @@ static void css_init_nic400(void)
~
0
);
}
/*******************************************************************************
* Initialize debug configuration.
******************************************************************************/
static
void
init_debug_cfg
(
void
)
{
#if !DEBUG
/* Set internal drive selection for SPIDEN. */
mmio_write_32
(
SSC_REG_BASE
+
SSC_DBGCFG_SET
,
1U
<<
SPIDEN_SEL_SET_SHIFT
);
/* Drive SPIDEN LOW to disable invasive debug of secure state. */
mmio_write_32
(
SSC_REG_BASE
+
SSC_DBGCFG_CLR
,
1U
<<
SPIDEN_INT_CLR_SHIFT
);
#endif
}
/*******************************************************************************
* Initialize the secure environment.
******************************************************************************/
void
plat_arm_security_setup
(
void
)
{
/* Initialize debug configuration */
init_debug_cfg
();
/* Initialize the TrustZone Controller */
arm_tzc400_setup
();
/* Do ARM CSS internal NIC setup */
css_init_nic400
();
/* Do ARM CSS SoC security setup */
soc_css_security_setup
();
/* Initialize the SMMU SSD tables*/
/* Initialize the SMMU SSD tables
*/
init_mmu401
();
}
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