Raspberry Pi3B+ Heads Up
Hi, for those interested in getting 64-bit Gentoo running on the new 3B+ version of the RPi3, I thought I'd just post quickly what I've learned so far. I'm going to push an updated version of the
gentoo-on-rpi3-64bit image soon, which will have all the necessary changes integrated, but here's the raw version...
First off, you need the
latest firmware (bootcode.bin, start.elf etc.) from
https://github.com/raspberrypi/firmware ... aster/boot - without this, you'll be stuck at the rainbow square. It turns out you
don't actually need the bcm2710-rpi-3-b-plus.dtb file - I modded the kernel makefiles to construct a 64-bit variant of this, but the boot-time code will intelligently update your existing 2710 dtb file anyway if it is missing (there is a note by Eben somewhere on line to that effect, but I can't find it again; nevertheless, it is an empirical fact you can boot the 3B+ with just the (64-bit) bcm2710-rpi3-3-b.dtb file in /boot).
vvv
Bluetooth works out of the box with the vanilla 64-bit 3B setup.
^^^ Edit: it turns out this is not, in fact, the case: please see my later post for an update about Bluetooth differences between the 3B and 3B+.
WiFi does not work immediately; there is a
new dual-band chip (the Cypress CYW43455) and just as with the previous model, it needs an sdio.txt file to configure it. Put the following (copied from the latest Raspbian) into /lib/firmware/brcm/brcmfmac43455-sdio.txt:
Code: Select all
# 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=0x48200100
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
Remember to set your regulatory domain with "iw reg set GB" (or whatever) since the 5GHz bands are quite variable by country.
The current 4.14.y branch kernel (4.14.27 at time of writing) in standard bcmrpi3_defconfig trim
almost works, but is missing a configuration setting required for the new gigabit Ethernet adaptor (a LAN7515). Add:
to get it running (I didn't make up the naming! Inferred from Raspbian via "lsusb -t" followed by a kernel config diff).
And that's it! Everything seems reasonably stable. VC4 works as does on-demand frequency scaling etc. The 3B+ has a heat spreader and appears much less prone to thermal throttling under load, which is a good thing for us Gentoo users ^-^