aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEtienne Carriere <etienne.carriere@linaro.org>2018-10-01 08:54:54 +0200
committerJérôme Forissier <jerome.forissier@linaro.org>2018-10-01 10:26:47 +0200
commit0f93de74928448f5af00faf711385b2ebeb8da65 (patch)
treefa7b8d98e731f84850a744e6fa743a8da97155d1
parentdb783ff867d44165bdb5b15f7324c7f5cd754911 (diff)
core: correct unpaged constraint on GIC driver
Release of secondary boot cores on 32bit machine use SMC that issue a SGI on secondary core. Since the interrupt is raised from the monitor mode, the related GIC driver resources must be tagged as unpaged. This change costs around 300 bytes of unpaged resident memory. Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
-rw-r--r--core/drivers/gic.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/core/drivers/gic.c b/core/drivers/gic.c
index 1cee46cc..9baffee4 100644
--- a/core/drivers/gic.c
+++ b/core/drivers/gic.c
@@ -7,6 +7,7 @@
#include <arm.h>
#include <assert.h>
#include <drivers/gic.h>
+#include <keep.h>
#include <kernel/interrupt.h>
#include <kernel/panic.h>
#include <util.h>
@@ -81,6 +82,7 @@ static const struct itr_ops gic_ops = {
.raise_sgi = gic_op_raise_sgi,
.set_affinity = gic_op_set_affinity,
};
+KEEP_PAGER(gic_ops);
static size_t probe_max_it(vaddr_t gicc_base __maybe_unused, vaddr_t gicd_base)
{