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
e04723e2
Commit
e04723e2
authored
Aug 25, 2015
by
Achin Gupta
Browse files
Merge pull request #371 from vwadekar/retention-entry-v3
Retention entry v3
parents
468f808c
b42192bc
Changes
4
Hide whitespace changes
Inline
Side-by-side
include/lib/cpus/aarch64/cortex_a53.h
View file @
e04723e2
/*
/*
* Copyright (c) 2014, ARM Limited and Contributors. All rights reserved.
* Copyright (c) 2014
-2015
, ARM Limited and Contributors. All rights reserved.
*
*
* Redistribution and use in source and binary forms, with or without
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* modification, are permitted provided that the following conditions are met:
...
@@ -34,6 +34,15 @@
...
@@ -34,6 +34,15 @@
/* Cortex-A53 midr for revision 0 */
/* Cortex-A53 midr for revision 0 */
#define CORTEX_A53_MIDR 0x410FD030
#define CORTEX_A53_MIDR 0x410FD030
/* Retention timer tick definitions */
#define RETENTION_ENTRY_TICKS_2 0x1
#define RETENTION_ENTRY_TICKS_8 0x2
#define RETENTION_ENTRY_TICKS_32 0x3
#define RETENTION_ENTRY_TICKS_64 0x4
#define RETENTION_ENTRY_TICKS_128 0x5
#define RETENTION_ENTRY_TICKS_256 0x6
#define RETENTION_ENTRY_TICKS_512 0x7
/*******************************************************************************
/*******************************************************************************
* CPU Extended Control register specific definitions.
* CPU Extended Control register specific definitions.
******************************************************************************/
******************************************************************************/
...
@@ -41,6 +50,12 @@
...
@@ -41,6 +50,12 @@
#define CPUECTLR_SMP_BIT (1 << 6)
#define CPUECTLR_SMP_BIT (1 << 6)
#define CPUECTLR_CPU_RET_CTRL_SHIFT 0
#define CPUECTLR_CPU_RET_CTRL_MASK (0x7 << CPUECTLR_CPU_RET_CTRL_SHIFT)
#define CPUECTLR_FPU_RET_CTRL_SHIFT 3
#define CPUECTLR_FPU_RET_CTRL_MASK (0x7 << CPUECTLR_FPU_RET_CTRL_SHIFT)
/*******************************************************************************
/*******************************************************************************
* CPU Auxiliary Control register specific definitions.
* CPU Auxiliary Control register specific definitions.
******************************************************************************/
******************************************************************************/
...
@@ -56,4 +71,12 @@
...
@@ -56,4 +71,12 @@
#define L2ACTLR_ENABLE_UNIQUECLEAN (1 << 14)
#define L2ACTLR_ENABLE_UNIQUECLEAN (1 << 14)
#define L2ACTLR_DISABLE_CLEAN_PUSH (1 << 3)
#define L2ACTLR_DISABLE_CLEAN_PUSH (1 << 3)
/*******************************************************************************
* L2 Extended Control register specific definitions.
******************************************************************************/
#define L2ECTLR_EL1 S3_1_C11_C0_3
/* Instruction def. */
#define L2ECTLR_RET_CTRL_SHIFT 0
#define L2ECTLR_RET_CTRL_MASK (0x7 << L2ECTLR_RET_CTRL_SHIFT)
#endif
/* __CORTEX_A53_H__ */
#endif
/* __CORTEX_A53_H__ */
include/lib/cpus/aarch64/cortex_a57.h
View file @
e04723e2
/*
/*
* Copyright (c) 2014, ARM Limited and Contributors. All rights reserved.
* Copyright (c) 2014
-2015
, ARM Limited and Contributors. All rights reserved.
*
*
* Redistribution and use in source and binary forms, with or without
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* modification, are permitted provided that the following conditions are met:
...
@@ -34,6 +34,15 @@
...
@@ -34,6 +34,15 @@
/* Cortex-A57 midr for revision 0 */
/* Cortex-A57 midr for revision 0 */
#define CORTEX_A57_MIDR 0x410FD070
#define CORTEX_A57_MIDR 0x410FD070
/* Retention timer tick definitions */
#define RETENTION_ENTRY_TICKS_2 0x1
#define RETENTION_ENTRY_TICKS_8 0x2
#define RETENTION_ENTRY_TICKS_32 0x3
#define RETENTION_ENTRY_TICKS_64 0x4
#define RETENTION_ENTRY_TICKS_128 0x5
#define RETENTION_ENTRY_TICKS_256 0x6
#define RETENTION_ENTRY_TICKS_512 0x7
/*******************************************************************************
/*******************************************************************************
* CPU Extended Control register specific definitions.
* CPU Extended Control register specific definitions.
******************************************************************************/
******************************************************************************/
...
@@ -44,6 +53,9 @@
...
@@ -44,6 +53,9 @@
#define CPUECTLR_L2_IPFTCH_DIST_MASK (0x3 << 35)
#define CPUECTLR_L2_IPFTCH_DIST_MASK (0x3 << 35)
#define CPUECTLR_L2_DPFTCH_DIST_MASK (0x3 << 32)
#define CPUECTLR_L2_DPFTCH_DIST_MASK (0x3 << 32)
#define CPUECTLR_CPU_RET_CTRL_SHIFT 0
#define CPUECTLR_CPU_RET_CTRL_MASK (0x7 << CPUECTLR_CPU_RET_CTRL_SHIFT)
/*******************************************************************************
/*******************************************************************************
* CPU Auxiliary Control register specific definitions.
* CPU Auxiliary Control register specific definitions.
******************************************************************************/
******************************************************************************/
...
@@ -63,4 +75,12 @@
...
@@ -63,4 +75,12 @@
#define L2_DATA_RAM_LATENCY_3_CYCLES 0x2
#define L2_DATA_RAM_LATENCY_3_CYCLES 0x2
#define L2_TAG_RAM_LATENCY_3_CYCLES 0x2
#define L2_TAG_RAM_LATENCY_3_CYCLES 0x2
/*******************************************************************************
* L2 Extended Control register specific definitions.
******************************************************************************/
#define L2ECTLR_EL1 S3_1_C11_C0_3
/* Instruction def. */
#define L2ECTLR_RET_CTRL_SHIFT 0
#define L2ECTLR_RET_CTRL_MASK (0x7 << L2ECTLR_RET_CTRL_SHIFT)
#endif
/* __CORTEX_A57_H__ */
#endif
/* __CORTEX_A57_H__ */
plat/nvidia/tegra/common/aarch64/tegra_helpers.S
View file @
e04723e2
...
@@ -57,6 +57,28 @@
...
@@ -57,6 +57,28 @@
*/
*/
.
macro
cpu_init_common
.
macro
cpu_init_common
#if ENABLE_L2_DYNAMIC_RETENTION
/
*
---------------------------
*
Enable
processor
retention
*
---------------------------
*/
mrs
x0
,
L2ECTLR_EL1
mov
x1
,
#
RETENTION_ENTRY_TICKS_512
<<
L2ECTLR_RET_CTRL_SHIFT
bic
x0
,
x0
,
#
L2ECTLR_RET_CTRL_MASK
orr
x0
,
x0
,
x1
msr
L2ECTLR_EL1
,
x0
isb
#endif
#if ENABLE_CPU_DYNAMIC_RETENTION
mrs
x0
,
CPUECTLR_EL1
mov
x1
,
#
RETENTION_ENTRY_TICKS_512
<<
CPUECTLR_CPU_RET_CTRL_SHIFT
bic
x0
,
x0
,
#
CPUECTLR_CPU_RET_CTRL_MASK
orr
x0
,
x0
,
x1
msr
CPUECTLR_EL1
,
x0
isb
#endif
#if ENABLE_NS_L2_CPUECTRL_RW_ACCESS
#if ENABLE_NS_L2_CPUECTRL_RW_ACCESS
/
*
-------------------------------------------------------
/
*
-------------------------------------------------------
*
Enable
L2
and
CPU
ECTLR
RW
access
from
non
-
secure
world
*
Enable
L2
and
CPU
ECTLR
RW
access
from
non
-
secure
world
...
...
plat/nvidia/tegra/soc/t210/platform_t210.mk
View file @
e04723e2
...
@@ -40,6 +40,12 @@ $(eval $(call add_define,ERRATA_TEGRA_INVALIDATE_BTB_AT_BOOT))
...
@@ -40,6 +40,12 @@ $(eval $(call add_define,ERRATA_TEGRA_INVALIDATE_BTB_AT_BOOT))
ENABLE_NS_L2_CPUECTRL_RW_ACCESS
:=
1
ENABLE_NS_L2_CPUECTRL_RW_ACCESS
:=
1
$(eval
$(call
add_define,ENABLE_NS_L2_CPUECTRL_RW_ACCESS))
$(eval
$(call
add_define,ENABLE_NS_L2_CPUECTRL_RW_ACCESS))
ENABLE_L2_DYNAMIC_RETENTION
:=
1
$(eval
$(call
add_define,ENABLE_L2_DYNAMIC_RETENTION))
ENABLE_CPU_DYNAMIC_RETENTION
:=
1
$(eval
$(call
add_define,ENABLE_CPU_DYNAMIC_RETENTION))
PLATFORM_CLUSTER_COUNT
:=
2
PLATFORM_CLUSTER_COUNT
:=
2
$(eval
$(call
add_define,PLATFORM_CLUSTER_COUNT))
$(eval
$(call
add_define,PLATFORM_CLUSTER_COUNT))
...
...
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