diff --git a/docs/plat/marvell/armada/build.rst b/docs/plat/marvell/armada/build.rst index c74ff7a57e00bb6fea0fdee563006e4f08c20eed..c9f5e8224b47d1321daff146910ab31a82657962 100644 --- a/docs/plat/marvell/armada/build.rst +++ b/docs/plat/marvell/armada/build.rst @@ -112,6 +112,11 @@ There are several build options: This option is needed on Turris MOX as a workaround to a HW bug which causes reset to sometime hang the board. +- A3720_DB_PM_WAKEUP_SRC + + For Armada 3720 Develpment Board only, when ``A3720_DB_PM_WAKEUP_SRC=1``, + TF-A will setup PM wake up src configuration. This option is disabled by default. + - MARVELL_SECURE_BOOT Build trusted(=1)/non trusted(=0) image, default is non trusted. diff --git a/plat/marvell/armada/a3k/a3700/board/pm_src.c b/plat/marvell/armada/a3k/a3700/board/pm_src.c index d6eca5d167f47b434e47f56f89be0e4ec970304c..247f73bc4b71c8723f0ce922312b0c3951ffc02b 100644 --- a/plat/marvell/armada/a3k/a3700/board/pm_src.c +++ b/plat/marvell/armada/a3k/a3700/board/pm_src.c @@ -8,7 +8,7 @@ #include #include -/* This struct provides the PM wake up src configuration */ +/* This struct provides the PM wake up src configuration for A3720 Development Board */ static struct pm_wake_up_src_config wake_up_src_cfg = { .wake_up_src_num = 3, .wake_up_src[0] = { diff --git a/plat/marvell/armada/a3k/common/a3700_common.mk b/plat/marvell/armada/a3k/common/a3700_common.mk index 8775e8934256339fef7a812f7d29138523205d55..79097f39924b3d15284b02a52de2ad9e50331f11 100644 --- a/plat/marvell/armada/a3k/common/a3700_common.mk +++ b/plat/marvell/armada/a3k/common/a3700_common.mk @@ -43,8 +43,6 @@ PLAT_BL_COMMON_SOURCES := $(PLAT_COMMON_BASE)/aarch64/a3700_common.c \ BL1_SOURCES += $(PLAT_COMMON_BASE)/aarch64/plat_helpers.S \ lib/cpus/aarch64/cortex_a53.S -BL31_PORTING_SOURCES := $(PLAT_FAMILY_BASE)/$(PLAT)/board/pm_src.c - MARVELL_DRV := $(MARVELL_DRV_BASE)/comphy/phy-comphy-3700.c BL31_SOURCES += lib/cpus/aarch64/cortex_a53.S \ @@ -61,7 +59,6 @@ BL31_SOURCES += lib/cpus/aarch64/cortex_a53.S \ $(MARVELL_COMMON_BASE)/marvell_gicv3.c \ $(MARVELL_GIC_SOURCES) \ drivers/arm/cci/cci.c \ - $(BL31_PORTING_SOURCES) \ $(PLAT_COMMON_BASE)/a3700_sip_svc.c \ $(MARVELL_DRV) @@ -69,6 +66,10 @@ ifeq ($(CM3_SYSTEM_RESET),1) BL31_SOURCES += $(PLAT_COMMON_BASE)/cm3_system_reset.c endif +ifeq ($(A3720_DB_PM_WAKEUP_SRC),1) +BL31_SOURCES += $(PLAT_FAMILY_BASE)/$(PLAT)/board/pm_src.c +endif + ifdef WTP $(if $(wildcard $(value WTP)/*),,$(error "'WTP=$(value WTP)' was specified, but '$(value WTP)' directory does not exist")) diff --git a/plat/marvell/armada/a3k/common/plat_pm.c b/plat/marvell/armada/a3k/common/plat_pm.c index 2bae37e3f9ce6ab696d39434ba25e2d35c408d16..e2d15abf9c5eb190e143bf5005428c4c20357780 100644 --- a/plat/marvell/armada/a3k/common/plat_pm.c +++ b/plat/marvell/armada/a3k/common/plat_pm.c @@ -590,6 +590,13 @@ static wake_up_src_func a3700_get_wake_up_src_func( return NULL; } +#pragma weak mv_wake_up_src_config_get +struct pm_wake_up_src_config *mv_wake_up_src_config_get(void) +{ + static struct pm_wake_up_src_config wake_up_src_cfg = {}; + return &wake_up_src_cfg; +} + static void a3700_set_wake_up_source(void) { struct pm_wake_up_src_config *wake_up_src;