summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpatrick <patrick@openbsd.org>2018-02-06 02:12:55 +0000
committerpatrick <patrick@openbsd.org>2018-02-06 02:12:55 +0000
commitb553714835a6cb9c165ff3c71164e699854d4bf5 (patch)
tree87e5323e0679175ce1a9356c6f3da5a518659d34
parentreduce scope of variable a bit to avoid shadowing (diff)
downloadwireguard-openbsd-b553714835a6cb9c165ff3c71164e699854d4bf5.tar.xz
wireguard-openbsd-b553714835a6cb9c165ff3c71164e699854d4bf5.zip
Support setting the Cortex-M3 cores to active mode.
-rw-r--r--sys/dev/ic/bwfm.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/sys/dev/ic/bwfm.c b/sys/dev/ic/bwfm.c
index 4a0201b9123..aff78047644 100644
--- a/sys/dev/ic/bwfm.c
+++ b/sys/dev/ic/bwfm.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: bwfm.c,v 1.34 2018/02/05 10:30:04 patrick Exp $ */
+/* $OpenBSD: bwfm.c,v 1.35 2018/02/06 02:12:55 patrick Exp $ */
/*
* Copyright (c) 2010-2016 Broadcom Corporation
* Copyright (c) 2016,2017 Patrick Wildt <patrick@blueri.se>
@@ -989,7 +989,18 @@ bwfm_chip_ca7_set_passive(struct bwfm_softc *sc)
int
bwfm_chip_cm3_set_active(struct bwfm_softc *sc)
{
- panic("%s: cm3 not supported", DEVNAME(sc));
+ struct bwfm_core *core;
+
+ core = bwfm_chip_get_core(sc, BWFM_AGENT_INTERNAL_MEM);
+ if (!sc->sc_chip.ch_core_isup(sc, core))
+ return 1;
+
+ sc->sc_buscore_ops->bc_activate(sc, 0);
+
+ core = bwfm_chip_get_core(sc, BWFM_AGENT_CORE_ARM_CM3);
+ sc->sc_chip.ch_core_reset(sc, core, 0, 0, 0);
+
+ return 0;
}
void