summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2020-06-19 20:56:24 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2020-06-19 20:56:24 +0000
commit2c7ffdbc2e4236f5372d879a5b4a722685b78ccf (patch)
treea95ea32e13fef8e7ad443d5e121c542a1bf2e188
parent9c90a6181b59107aabc591ff134792d44f585fca (diff)
Add support for BCM4359 SDIO variants such as the AP6359SA module found
on the RockPro64 WiFi module. Note that there is no fiirmware for this chip in the bwfm-firmware package at the moment. ok patrick@
-rw-r--r--sys/dev/ic/bwfm.c9
-rw-r--r--sys/dev/sdmmc/if_bwfm_sdio.c6
2 files changed, 12 insertions, 3 deletions
diff --git a/sys/dev/ic/bwfm.c b/sys/dev/ic/bwfm.c
index 93564fa3482..15f1bbfb510 100644
--- a/sys/dev/ic/bwfm.c
+++ b/sys/dev/ic/bwfm.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: bwfm.c,v 1.71 2020/05/15 14:09:14 patrick Exp $ */
+/* $OpenBSD: bwfm.c,v 1.72 2020/06/19 20:56:23 kettenis Exp $ */
/*
* Copyright (c) 2010-2016 Broadcom Corporation
* Copyright (c) 2016,2017 Patrick Wildt <patrick@blueri.se>
@@ -1417,11 +1417,16 @@ bwfm_chip_tcm_rambase(struct bwfm_softc *sc)
case BRCM_CC_43569_CHIP_ID:
case BRCM_CC_43570_CHIP_ID:
case BRCM_CC_4358_CHIP_ID:
- case BRCM_CC_4359_CHIP_ID:
case BRCM_CC_43602_CHIP_ID:
case BRCM_CC_4371_CHIP_ID:
sc->sc_chip.ch_rambase = 0x180000;
break;
+ case BRCM_CC_4359_CHIP_ID:
+ if (sc->sc_chip.ch_chiprev < 9)
+ sc->sc_chip.ch_rambase = 0x180000;
+ else
+ sc->sc_chip.ch_rambase = 0x160000;
+ break;
case BRCM_CC_43465_CHIP_ID:
case BRCM_CC_43525_CHIP_ID:
case BRCM_CC_4365_CHIP_ID:
diff --git a/sys/dev/sdmmc/if_bwfm_sdio.c b/sys/dev/sdmmc/if_bwfm_sdio.c
index 7b1e534017e..799c9b37117 100644
--- a/sys/dev/sdmmc/if_bwfm_sdio.c
+++ b/sys/dev/sdmmc/if_bwfm_sdio.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_bwfm_sdio.c,v 1.37 2020/05/15 14:09:14 patrick Exp $ */
+/* $OpenBSD: if_bwfm_sdio.c,v 1.38 2020/06/19 20:56:23 kettenis Exp $ */
/*
* Copyright (c) 2010-2016 Broadcom Corporation
* Copyright (c) 2016,2017 Patrick Wildt <patrick@blueri.se>
@@ -222,6 +222,7 @@ bwfm_sdio_match(struct device *parent, void *match, void *aux)
case 0x4345:
case 0x4354:
case 0x4356:
+ case 0x4359:
case 0xa887: /* BCM43143 */
case 0xa94c: /* BCM43340 */
case 0xa94d: /* BCM43341 */
@@ -421,6 +422,9 @@ bwfm_sdio_preinit(struct bwfm_softc *bwfm)
case BRCM_CC_4356_CHIP_ID:
chip = "4356";
break;
+ case BRCM_CC_4359_CHIP_ID:
+ chip = "4359";
+ break;
default:
printf("%s: unknown firmware for chip %s\n",
DEVNAME(sc), bwfm->sc_chip.ch_name);