Skip to content

Commit

Permalink
Add brcm43430-firmware-20190812.ebuild
Browse files Browse the repository at this point in the history
Fixes WiFi regression on RPi4; see e.g.
raspberrypi/linux#3032 (comment)

Thanks to @agherzan
  • Loading branch information
sakaki- committed Aug 12, 2019
1 parent 8a068df commit aa42ea1
Show file tree
Hide file tree
Showing 6 changed files with 243 additions and 5 deletions.
32 changes: 32 additions & 0 deletions sys-firmware/brcm43430-firmware/brcm43430-firmware-20190812.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Copyright (c) 2017-19 sakaki <[email protected]>
# License: GPL v3+
# NO WARRANTY

EAPI=6

KEYWORDS="~arm ~arm64"

DESCRIPTION="Configuration file required for integrated WiFi on RPi3/4"
HOMEPAGE="https://github.com/RPi-Distro/firmware-nonfree"
SRC_URI=""
LICENSE="Broadcom"
SLOT="0"
IUSE=""
RESTRICT="mirror"

# required by Portage, as we have no SRC_URI...
S="${WORKDIR}"

DEPEND=""
RDEPEND="${DEPEND}
>=sys-kernel/linux-firmware-20190726-r2"

# We just bundle the config in files/, since otherwise we'd have to download
# the whole firmware git archive to install...
src_install() {
insinto "/lib/firmware/brcm"
newins "${FILESDIR}/brcmfmac43430-sdio.txt-${PV}" brcmfmac43430-sdio.txt
newins "${FILESDIR}/brcmfmac43430-sdio.raspberrypi-rpi.txt-${PV}" brcmfmac43430-sdio.raspberrypi-rpi.txt
newins "${FILESDIR}/brcmfmac43455-sdio.txt-${PV}" brcmfmac43455-sdio.txt
newins "${FILESDIR}/brcmfmac43455-sdio.clm_blob-${PV}" brcmfmac43455-sdio.clm_blob
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# SPDX-License-Identifier: GPL-2.0+
# (C) Copyright 2018 Raspberry Pi (Trading) Ltd.
# NVRAM config file for the BCM43430 WiFi/BT chip as found on the
# Raspberry Pi 3 Model B
aa2g=1
ag0=255
AvVmid_c0=0x0,0xc8
boardflags=0x00404201
boardflags3=0x08000000
boardnum=22
boardrev=0x1202
boardtype=0x0726
btc_mode=1
btc_params1=0x7530
btc_params8=0x4e20
cckbw202gpo=0
cckpwroffset0=5
ccode=ALL
# cldo_pwm is not set
deadman_to=0xffffffff
devid=0x43e2
extpagain2g=0
il0macaddr=00:90:4c:c5:12:38
legofdmbw202gpo=0x66111111
macaddr=00:90:4c:c5:12:38
manfid=0x2d0
maxp2ga0=84
mcsbw202gpo=0x77711111
muxenab=0x1
nocrc=1
ofdmdigfilttype=18
ofdmdigfilttypebe=18
pa0itssit=0x20
pa2ga0=-168,7161,-820
pacalidx2g=32
papdendidx=61
papdepsoffset=-36
papdmode=1
papdvalidtest=1
prodid=0x0726
propbw202gpo=0xdd
spurconfig=0x3
sromrev=11
txpwrbckof=6
vendid=0x14e4
wl0id=0x431b
xtalfreq=37400
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# NVRAM file for BCM943430WLSELG
# 2.4 GHz, 20 MHz BW mode

# The following parameter values are just placeholders, need to be updated.
manfid=0x2d0
prodid=0x0726
vendid=0x14e4
devid=0x43e2
boardtype=0x0726
boardrev=0x1202
boardnum=22
macaddr=00:90:4c:c5:12:38
sromrev=11
boardflags=0x00404201
boardflags3=0x08000000
xtalfreq=37400
#xtalfreq=19200
nocrc=1
ag0=255
aa2g=1
ccode=ALL

pa0itssit=0x20
extpagain2g=0

#PA parameters for 2.4GHz, measured at CHIP OUTPUT
pa2ga0=-168,7161,-820
AvVmid_c0=0x0,0xc8
cckpwroffset0=5

# PPR params
maxp2ga0=84
txpwrbckof=6
cckbw202gpo=0
legofdmbw202gpo=0x66111111
mcsbw202gpo=0x77711111
propbw202gpo=0xdd

# OFDM IIR :
ofdmdigfilttype=18
ofdmdigfilttypebe=18
# PAPD mode:
papdmode=1
papdvalidtest=1
pacalidx2g=32
papdepsoffset=-36
papdendidx=61

il0macaddr=00:90:4c:c5:12:38
wl0id=0x431b

deadman_to=0xffffffff
# muxenab: 0x1 for UART enable, 0x2 for GPIOs, 0x8 for JTAG
muxenab=0x1
# CLDO PWM voltage settings - 0x4 - 1.1 volt
#cldo_pwm=0x4

#VCO freq 326.4MHz
spurconfig=0x3

# Improved Bluetooth coexistence parameters from Cypress
btc_mode=1
btc_params8=0x4e20
btc_params1=0x7530
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
# Cloned from bcm94345wlpagb_p2xx.txt
NVRAMRev=$Rev: 498373 $
sromrev=11
vendid=0x14e4
devid=0x43ab
manfid=0x2d0
prodid=0x06e4
#macaddr=00:90:4c:c5:12:38
macaddr=b8:27:eb:74:f2:6c
nocrc=1
boardtype=0x6e4
boardrev=0x1304

#XTAL 37.4MHz
xtalfreq=37400

btc_mode=1
#------------------------------------------------------
#boardflags: 5GHz eTR switch by default
# 2.4GHz eTR switch by default
# bit1 for btcoex
boardflags=0x00480201
boardflags2=0x40800000
boardflags3=0x44200100
phycal_tempdelta=15
rxchain=1
txchain=1
aa2g=1
aa5g=1
tssipos5g=1
tssipos2g=1
femctrl=0
AvVmid_c0=1,165,2,100,2,100,2,100,2,100
pa2ga0=-129,6525,-718
pa2ga1=-149,4408,-601
pa5ga0=-185,6836,-815,-186,6838,-815,-184,6859,-815,-184,6882,-818
pa5ga1=-202,4285,-574,-201,4312,-578,-196,4391,-586,-201,4294,-575
itrsw=1
pdoffsetcckma0=2
pdoffset2gperchan=0,-2,1,0,1,0,1,1,1,0,0,-1,-1,0
pdoffset2g40ma0=16
pdoffset40ma0=0x8888
pdoffset80ma0=0x8888
extpagain5g=2
extpagain2g=2
tworangetssi2g=1
tworangetssi5g=1
# LTECX flags
# WCI2
ltecxmux=0
ltecxpadnum=0x0504
ltecxfnsel=0x22
ltecxgcigpio=0x32

maxp2ga0=80
ofdmlrbw202gpo=0x0022
dot11agofdmhrbw202gpo=0x4442
mcsbw202gpo=0x98444422
mcsbw402gpo=0x98444422
maxp5ga0=82,82,82,82
mcsbw205glpo=0xb9555000
mcsbw205gmpo=0xb9555000
mcsbw205ghpo=0xb9555000
mcsbw405glpo=0xb9555000
mcsbw405gmpo=0xb9555000
mcsbw405ghpo=0xb9555000
mcsbw805glpo=0xb9555000
mcsbw805gmpo=0xb9555000
mcsbw805ghpo=0xb9555000

swctrlmap_2g=0x00000000,0x00000000,0x00000000,0x010000,0x3ff
swctrlmap_5g=0x00100010,0x00200020,0x00200020,0x010000,0x3fe
swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x3
swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x3

vcodivmode=1
deadman_to=481500000

ed_thresh2g=-54
ed_thresh5g=-54
eu_edthresh2g=-54
eu_edthresh5g=-54
ldo1=4
rawtempsense=0x1ff
cckPwrIdxCorr=3
cckTssiDelay=150
ofdmTssiDelay=150
txpwr2gAdcScale=1
txpwr5gAdcScale=1
dot11b_opts=0x3aa85
cbfilttype=1
fdsslevel_ch11=6

# Improved Bluetooth coexistence parameters from Cypress
btc_mode=1
btc_params8=0x4e20
btc_params1=0x7530
8 changes: 3 additions & 5 deletions sys-firmware/brcm43430-firmware/metadata.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,8 @@
<remote-id type="github">RPi-Distro/firmware-nonfree</remote-id>
</upstream>
<longdescription>
Adds two text files (brcmfmac43430-sdio.txt and
brcmfmac43455-sdio.txt) that are necessary for
operation of the RPi3's integrated WiFi (on the
model B and B+, respectively), plus the additional
file brcmfmac43455-sdio.clm_blob (for the B+).
Adds text files that are necessary for
operation of the RPi3 and RPi4's integrated WiFi,
plus an additional clm blob.
</longdescription>
</pkgmetadata>

0 comments on commit aa42ea1

Please sign in to comment.