diff --git a/board/common/cleanups.sh b/board/common/cleanups.sh index 7b04c9f1eb..306b83c6b8 100755 --- a/board/common/cleanups.sh +++ b/board/common/cleanups.sh @@ -205,6 +205,7 @@ rm -f ${TARGET}/etc/init.d/S01syslogd rm -f ${TARGET}/etc/init.d/S10udev rm -f ${TARGET}/etc/init.d/S15watchdog rm -f ${TARGET}/etc/init.d/S20urandom +rm -f ${TARGET}/etc/init.d/S21rngd rm -f ${TARGET}/etc/init.d/S49ntp rm -f ${TARGET}/etc/init.d/S50sshd rm -f ${TARGET}/etc/init.d/S50proftpd diff --git a/board/common/overlay/etc/init.d/S02restorebackups b/board/common/overlay/etc/init.d/S02restorebackups index fd5e733a4b..7e5c4daa6c 100755 --- a/board/common/overlay/etc/init.d/S02restorebackups +++ b/board/common/overlay/etc/init.d/S02restorebackups @@ -28,7 +28,7 @@ case "$1" in done # source os_conf again, as it might have changed after restore - test -f /etc/init.d/os_conf && source /etc/init.d/os_conf + test -s /etc/init.d/os_conf && source /etc/init.d/os_conf if [[ "${OS_DEBUG}" != "true" ]]; then mount -o remount,ro /boot fi diff --git a/board/common/overlay/etc/init.d/S10sysctl b/board/common/overlay/etc/init.d/S10sysctl index 09d68e0360..96e0641f27 100755 --- a/board/common/overlay/etc/init.d/S10sysctl +++ b/board/common/overlay/etc/init.d/S10sysctl @@ -17,9 +17,9 @@ fi case "$1" in start) msg_begin "Applying sysctl parameters" - test -f ${SYS_CONF} && sysctl -q -p ${SYS_CONF} - test -f ${CONF} && sysctl -q -p ${CONF} - test -f ${BOOT_CONF} && sysctl -q -p ${BOOT_CONF} + test -s ${SYS_CONF} && sysctl -q -p ${SYS_CONF} + test -s ${CONF} && sysctl -q -p ${CONF} + test -s ${BOOT_CONF} && sysctl -q -p ${BOOT_CONF} msg_done ;; diff --git a/board/common/overlay/etc/init.d/S12udev b/board/common/overlay/etc/init.d/S12udev index 1c69355fd5..d0eca9fbdf 100755 --- a/board/common/overlay/etc/init.d/S12udev +++ b/board/common/overlay/etc/init.d/S12udev @@ -6,7 +6,7 @@ PROG_UA="/sbin/udevadm" test -f ${PROG} || exit 0 -test -f ${CONF} || exit 0 +test -s ${CONF} || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base diff --git a/board/common/overlay/etc/init.d/S15rngd b/board/common/overlay/etc/init.d/S15rngd new file mode 100755 index 0000000000..9836ca6e0e --- /dev/null +++ b/board/common/overlay/etc/init.d/S15rngd @@ -0,0 +1,43 @@ +#!/bin/bash + +PROG="/usr/sbin/rngd" + + +test -f ${PROG} || exit 0 + +test -n "${OS_VERSION}" || source /etc/init.d/base + + +start() { + msg_begin "Starting rngd" + ${PROG} + test $? == 0 && msg_done || msg_fail +} + +stop() { + msg_begin "Stopping rngd" + killall -q $(basename ${PROG}) + msg_done +} + +case "$1" in + start) + start + ;; + + stop) + stop + ;; + + restart) + stop + start + ;; + + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac + +exit $? diff --git a/board/common/overlay/etc/init.d/S30dbus b/board/common/overlay/etc/init.d/S30dbus index c239b80654..0783cdbeb0 100755 --- a/board/common/overlay/etc/init.d/S30dbus +++ b/board/common/overlay/etc/init.d/S30dbus @@ -12,7 +12,7 @@ PROG_UA="/usr/bin/udevadm" test -x ${PROG} || exit 0 # dbus is currently only used by bluez -test -f ${BTCONF} || test -f ${BOOT_BTCONF} || test -f ${SYS_BTCONF} || exit 0 +test -s ${BTCONF} || test -s ${BOOT_BTCONF} || test -s ${SYS_BTCONF} || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base diff --git a/board/common/overlay/etc/init.d/S33hostapd b/board/common/overlay/etc/init.d/S33hostapd index 01bec9ee05..dad69d736a 100755 --- a/board/common/overlay/etc/init.d/S33hostapd +++ b/board/common/overlay/etc/init.d/S33hostapd @@ -18,9 +18,9 @@ test -x ${PROG} || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base prepare_conf ${CONF} ${SYS_CONF} ${BOOT_CONF} -test -f ${CONF} || exit 0 +test -s ${CONF} || exit 0 -test -f ${WATCH_CONF} && source ${WATCH_CONF} +test -s ${WATCH_CONF} && source ${WATCH_CONF} running() { diff --git a/board/common/overlay/etc/init.d/S35wifi b/board/common/overlay/etc/init.d/S35wifi index b154042892..c40d05ee8b 100755 --- a/board/common/overlay/etc/init.d/S35wifi +++ b/board/common/overlay/etc/init.d/S35wifi @@ -21,7 +21,7 @@ prepare_conf ${WATCH_CONF} ${SYS_WATCH_CONF} ${BOOT_WATCH_CONF} source ${WATCH_CONF} prepare_conf ${CONF} ${SYS_CONF} ${BOOT_CONF} -test -f ${CONF} || exit 0 +test -s ${CONF} || exit 0 ssid=$(cat ${CONF} | grep ssid | grep -v scan_ssid | cut -d '"' -f 2) test -n "${ssid}" || exit 0 diff --git a/board/common/overlay/etc/init.d/S37bluetooth b/board/common/overlay/etc/init.d/S37bluetooth index fce2fd6292..3d82b6dfc0 100755 --- a/board/common/overlay/etc/init.d/S37bluetooth +++ b/board/common/overlay/etc/init.d/S37bluetooth @@ -17,7 +17,7 @@ test -x ${PROG} || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base prepare_conf ${CONF} ${SYS_CONF} ${BOOT_CONF} -test -f ${CONF} || exit 0 +test -s ${CONF} || exit 0 configure() { @@ -26,7 +26,7 @@ configure() { cp ${CONF} ${RUN_CONF} # if no specific name configured, use hostname - if ! grep -E 'Name\s*=' ${RUN_CONF} &>/dev/null; then + if ! grep -E 'Name\s*=' ${RUN_CONF} &>/dev/null; then sed -ri "s/(\[General\])/\1\nName = $(hostname)/" ${RUN_CONF} fi diff --git a/board/common/overlay/etc/init.d/S41netwatch b/board/common/overlay/etc/init.d/S41netwatch index 787ea39b5b..23bac120e3 100755 --- a/board/common/overlay/etc/init.d/S41netwatch +++ b/board/common/overlay/etc/init.d/S41netwatch @@ -8,7 +8,7 @@ NETWATCH_INTERVAL=20 # watch configuration is already prepared by wifi init script -test -f ${CONF} || exit 0 +test -s ${CONF} || exit 0 source ${CONF} test -n "${NETWATCH_HOST}" || exit 0 diff --git a/board/common/overlay/etc/init.d/S43firewall b/board/common/overlay/etc/init.d/S43firewall index bab1a54053..1db1b45dc2 100755 --- a/board/common/overlay/etc/init.d/S43firewall +++ b/board/common/overlay/etc/init.d/S43firewall @@ -8,7 +8,7 @@ CONF="/data/etc/firewall.sh" test -n "${OS_VERSION}" || source /etc/init.d/base prepare_conf ${CONF} ${SYS_CONF} ${BOOT_CONF} -test -f ${CONF} || exit 0 +test -s ${CONF} || exit 0 start() { diff --git a/board/common/overlay/etc/init.d/S45dnsmasq b/board/common/overlay/etc/init.d/S45dnsmasq index f178f84a3f..d7d7f509f8 100755 --- a/board/common/overlay/etc/init.d/S45dnsmasq +++ b/board/common/overlay/etc/init.d/S45dnsmasq @@ -13,7 +13,7 @@ test -x ${PROG} || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base prepare_conf ${CONF} ${SYS_CONF} ${BOOT_CONF} -test -f ${CONF} || exit 0 +test -s ${CONF} || exit 0 start() { diff --git a/board/common/overlay/etc/init.d/S50date b/board/common/overlay/etc/init.d/S50date index 930eefe382..b8de6a29c3 100755 --- a/board/common/overlay/etc/init.d/S50date +++ b/board/common/overlay/etc/init.d/S50date @@ -18,7 +18,7 @@ test -n "${OS_VERSION}" || source /etc/init.d/base prepare_conf ${CONF} ${SYS_CONF} ${BOOT_CONF} prepare_conf ${NTP_CONF} ${SYS_NTP_CONF} ${BOOT_NTP_CONF} -test -f ${CONF} || exit 0 +test -s ${CONF} || exit 0 test "${OS_NETWORKLESS}" == "true" && exit 0 diff --git a/board/common/overlay/etc/init.d/S60sshd b/board/common/overlay/etc/init.d/S60sshd index 0c68a5446a..772b98b27c 100755 --- a/board/common/overlay/etc/init.d/S60sshd +++ b/board/common/overlay/etc/init.d/S60sshd @@ -10,7 +10,7 @@ test -x ${PROG} || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base -test -f ${CONF} || exit 0 +test -s ${CONF} || exit 0 test "${OS_NETWORKLESS}" == "true" && exit 0 diff --git a/board/common/overlay/etc/init.d/S61proftpd b/board/common/overlay/etc/init.d/S61proftpd index 9835df2fc3..f0a16817aa 100755 --- a/board/common/overlay/etc/init.d/S61proftpd +++ b/board/common/overlay/etc/init.d/S61proftpd @@ -9,7 +9,7 @@ test -x ${PROG} || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base test -n "${OS_DEBUG}" || source /etc/init.d/conf -test -f ${CONF} || exit 0 +test -s ${CONF} || exit 0 test "${OS_NETWORKLESS}" == "true" && exit 0 diff --git a/board/common/overlay/etc/init.d/S62smb b/board/common/overlay/etc/init.d/S62smb index e203b5556c..74637cf5a2 100755 --- a/board/common/overlay/etc/init.d/S62smb +++ b/board/common/overlay/etc/init.d/S62smb @@ -11,7 +11,7 @@ test -x ${PROG} || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base test -n "${OS_DEBUG}" || source /etc/init.d/conf -test -f ${CONF} || exit 0 +test -s ${CONF} || exit 0 test "${OS_NETWORKLESS}" == "true" && exit 0 diff --git a/board/common/overlay/etc/init.d/S70mongod b/board/common/overlay/etc/init.d/S70mongod index 0b9fbaea90..b4e44106ec 100755 --- a/board/common/overlay/etc/init.d/S70mongod +++ b/board/common/overlay/etc/init.d/S70mongod @@ -12,7 +12,7 @@ test -x ${PROG} || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base prepare_conf ${CONF} ${SYS_CONF} ${BOOT_CONF} -test -f ${CONF} || exit 0 +test -s ${CONF} || exit 0 start() { diff --git a/board/common/overlay/etc/init.d/S71redis b/board/common/overlay/etc/init.d/S71redis index 6ba7a1d0a6..9a80e27c0a 100755 --- a/board/common/overlay/etc/init.d/S71redis +++ b/board/common/overlay/etc/init.d/S71redis @@ -12,7 +12,7 @@ test -x ${PROG} || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base prepare_conf ${CONF} ${SYS_CONF} ${BOOT_CONF} -test -f ${CONF} || exit 0 +test -s ${CONF} || exit 0 start() { diff --git a/board/common/overlay/etc/init.d/S98userinit b/board/common/overlay/etc/init.d/S98userinit index 835229e78e..39f316d8c5 100755 --- a/board/common/overlay/etc/init.d/S98userinit +++ b/board/common/overlay/etc/init.d/S98userinit @@ -3,7 +3,7 @@ USERINIT="/data/etc/userinit.sh" -test -f ${USERINIT} || exit 0 +test -s ${USERINIT} || exit 0 test -n "${OS_VERSION}" || source /etc/init.d/base diff --git a/board/common/overlay/etc/init.d/rcS b/board/common/overlay/etc/init.d/rcS index f8f6f2aa2b..5c3874f08d 100755 --- a/board/common/overlay/etc/init.d/rcS +++ b/board/common/overlay/etc/init.d/rcS @@ -5,9 +5,9 @@ TMP_BOOT_LOG=/tmp/_boot.log PID_FILE=/tmp/rc.pid set -a -test -f /etc/environment && source /etc/environment -test -f /data/etc/environment && source /data/etc/environment -test -f /boot/etc/environment && source /boot/etc/environment +test -s /etc/environment && source /etc/environment +test -s /data/etc/environment && source /data/etc/environment +test -s /boot/etc/environment && source /boot/etc/environment set +a source /etc/init.d/base diff --git a/board/raspberrypi/cpinitramfs.sh b/board/raspberrypi/cpinitramfs.sh index 9965c2aaa6..a1dd89030b 100755 --- a/board/raspberrypi/cpinitramfs.sh +++ b/board/raspberrypi/cpinitramfs.sh @@ -1,5 +1,4 @@ #!/bin/bash cp ${IMG_DIR}/rootfs.cpio.gz ${BOARD_DIR}/initrd.gz -cp ${IMG_DIR}/rootfs.cpio.gz ${BOARD_DIR}/fwupdater.gz # for compatibility diff --git a/board/raspberrypi/overlay/lib/firmware/BCM43430A1.hcd b/board/raspberrypi/overlay/lib/firmware/BCM43430A1.hcd deleted file mode 100644 index 162275ac0b..0000000000 Binary files a/board/raspberrypi/overlay/lib/firmware/BCM43430A1.hcd and /dev/null differ diff --git a/board/raspberrypi/overlay/lib/firmware/brcm/BCM43430A1.hcd b/board/raspberrypi/overlay/lib/firmware/brcm/BCM43430A1.hcd new file mode 100644 index 0000000000..9b087f1b6e Binary files /dev/null and b/board/raspberrypi/overlay/lib/firmware/brcm/BCM43430A1.hcd differ diff --git a/board/raspberrypi/overlay/lib/firmware/brcm/BCM4345C0.hcd b/board/raspberrypi/overlay/lib/firmware/brcm/BCM4345C0.hcd new file mode 100644 index 0000000000..4eab4c9655 Binary files /dev/null and b/board/raspberrypi/overlay/lib/firmware/brcm/BCM4345C0.hcd differ diff --git a/board/raspberrypi/overlay/lib/firmware/brcm/brcmfmac43430-sdio.txt b/board/raspberrypi/overlay/lib/firmware/brcm/brcmfmac43430-sdio.txt new file mode 100644 index 0000000000..25a4f9b6e9 --- /dev/null +++ b/board/raspberrypi/overlay/lib/firmware/brcm/brcmfmac43430-sdio.txt @@ -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 diff --git a/board/raspberrypi/overlay/lib/firmware/brcm/brcmfmac43455-sdio.bin b/board/raspberrypi/overlay/lib/firmware/brcm/brcmfmac43455-sdio.bin new file mode 100644 index 0000000000..94f2add702 Binary files /dev/null and b/board/raspberrypi/overlay/lib/firmware/brcm/brcmfmac43455-sdio.bin differ diff --git a/board/raspberrypi/overlay/lib/firmware/brcm/brcmfmac43455-sdio.txt b/board/raspberrypi/overlay/lib/firmware/brcm/brcmfmac43455-sdio.txt new file mode 100644 index 0000000000..6801286179 --- /dev/null +++ b/board/raspberrypi/overlay/lib/firmware/brcm/brcmfmac43455-sdio.txt @@ -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 diff --git a/board/raspberrypi3/overlay/lib/firmware/BCM43430A1.hcd b/board/raspberrypi3/overlay/lib/firmware/BCM43430A1.hcd deleted file mode 100644 index 162275ac0b..0000000000 Binary files a/board/raspberrypi3/overlay/lib/firmware/BCM43430A1.hcd and /dev/null differ diff --git a/board/raspberrypi3/overlay/lib/firmware/brcm/BCM43430A1.hcd b/board/raspberrypi3/overlay/lib/firmware/brcm/BCM43430A1.hcd new file mode 100644 index 0000000000..9b087f1b6e Binary files /dev/null and b/board/raspberrypi3/overlay/lib/firmware/brcm/BCM43430A1.hcd differ diff --git a/board/raspberrypi3/overlay/lib/firmware/brcm/BCM4345C0.hcd b/board/raspberrypi3/overlay/lib/firmware/brcm/BCM4345C0.hcd new file mode 100644 index 0000000000..4eab4c9655 Binary files /dev/null and b/board/raspberrypi3/overlay/lib/firmware/brcm/BCM4345C0.hcd differ diff --git a/board/raspberrypi3/overlay/lib/firmware/brcm/brcmfmac43430-sdio.txt b/board/raspberrypi3/overlay/lib/firmware/brcm/brcmfmac43430-sdio.txt new file mode 100644 index 0000000000..25a4f9b6e9 --- /dev/null +++ b/board/raspberrypi3/overlay/lib/firmware/brcm/brcmfmac43430-sdio.txt @@ -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 diff --git a/board/raspberrypi3/overlay/lib/firmware/brcm/brcmfmac43455-sdio.bin b/board/raspberrypi3/overlay/lib/firmware/brcm/brcmfmac43455-sdio.bin new file mode 100644 index 0000000000..94f2add702 Binary files /dev/null and b/board/raspberrypi3/overlay/lib/firmware/brcm/brcmfmac43455-sdio.bin differ diff --git a/board/raspberrypi3/overlay/lib/firmware/brcm/brcmfmac43455-sdio.txt b/board/raspberrypi3/overlay/lib/firmware/brcm/brcmfmac43455-sdio.txt new file mode 100644 index 0000000000..6801286179 --- /dev/null +++ b/board/raspberrypi3/overlay/lib/firmware/brcm/brcmfmac43455-sdio.txt @@ -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 diff --git a/board/raspberrypi4/cleanups.sh b/board/raspberrypi4/cleanups.sh new file mode 120000 index 0000000000..d9a8ba25c5 --- /dev/null +++ b/board/raspberrypi4/cleanups.sh @@ -0,0 +1 @@ +../raspberrypi/cleanups.sh \ No newline at end of file diff --git a/board/raspberrypi4/cmdline.txt b/board/raspberrypi4/cmdline.txt new file mode 100644 index 0000000000..16d676103d --- /dev/null +++ b/board/raspberrypi4/cmdline.txt @@ -0,0 +1 @@ +dwc_otg.fiq_fix_enable=1 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro rootflags=noload panic=10 quiet loglevel=1 ipv6.disable=1 diff --git a/board/raspberrypi4/config.txt b/board/raspberrypi4/config.txt new file mode 100644 index 0000000000..b7f96a2ef7 --- /dev/null +++ b/board/raspberrypi4/config.txt @@ -0,0 +1,7 @@ +gpu_mem=128 + +dtparam=i2c_arm=on +dtparam=i2s=on +dtparam=spi=on +dtparam=audio=on + diff --git a/board/raspberrypi4/cpinitramfs.sh b/board/raspberrypi4/cpinitramfs.sh new file mode 120000 index 0000000000..be9760b343 --- /dev/null +++ b/board/raspberrypi4/cpinitramfs.sh @@ -0,0 +1 @@ +../raspberrypi/cpinitramfs.sh \ No newline at end of file diff --git a/board/raspberrypi4/initrd.gz b/board/raspberrypi4/initrd.gz new file mode 100644 index 0000000000..22060e53c9 Binary files /dev/null and b/board/raspberrypi4/initrd.gz differ diff --git a/board/raspberrypi4/mkimage.sh b/board/raspberrypi4/mkimage.sh new file mode 120000 index 0000000000..437f24e6f6 --- /dev/null +++ b/board/raspberrypi4/mkimage.sh @@ -0,0 +1 @@ +../raspberrypi/mkimage.sh \ No newline at end of file diff --git a/board/raspberrypi4/overlay/etc/board b/board/raspberrypi4/overlay/etc/board new file mode 100644 index 0000000000..976df614ed --- /dev/null +++ b/board/raspberrypi4/overlay/etc/board @@ -0,0 +1 @@ +raspberrypi4 diff --git a/board/raspberrypi4/overlay/etc/init.d/S05cpufreq b/board/raspberrypi4/overlay/etc/init.d/S05cpufreq new file mode 100755 index 0000000000..ed1d28f889 --- /dev/null +++ b/board/raspberrypi4/overlay/etc/init.d/S05cpufreq @@ -0,0 +1,37 @@ +#!/bin/bash + +GOV="ondemand" +CPUFREQDIR="/sys/devices/system/cpu/cpu0/cpufreq" +GOVDIR="/sys/devices/system/cpu/cpufreq/${GOV}" + + +test -n "${OS_VERSION}" || source /etc/init.d/base + +configure() { + echo ${GOV} > ${CPUFREQDIR}/scaling_governor + if [[ ${GOV} == "ondemand" ]]; then + echo 50 > ${GOVDIR}/up_threshold + echo 100000 > ${GOVDIR}/sampling_rate + echo 50 > ${GOVDIR}/sampling_down_factor + echo 1 > ${GOVDIR}/io_is_busy + fi +} + +case "$1" in + start) + msg_begin "Configuring CPU frequency" + configure + test $? == 0 && msg_done || msg_fail + ;; + + stop) + true + ;; + + *) + echo $"Usage: $0 {start}" + exit 1 +esac + +exit $? + diff --git a/board/raspberrypi4/overlay/etc/init.d/S11throttlewatch b/board/raspberrypi4/overlay/etc/init.d/S11throttlewatch new file mode 100755 index 0000000000..4f6a422152 --- /dev/null +++ b/board/raspberrypi4/overlay/etc/init.d/S11throttlewatch @@ -0,0 +1,65 @@ +#!/bin/bash + +CHECK_INTERVAL=30 + + +test -n "${OS_VERSION}" || source /etc/init.d/base + +get_throttled_now() { + t=$(vcgencmd get_throttled | cut -d '=' -f 2) + test $((t & 1)) -ne 0 && echo -n "under-voltage " + test $((t & 2)) -ne 0 && echo -n "arm-frequency-capped " + test $((t & 4)) -ne 0 && echo -n "throttled " +} + +get_throttled_since_boot() { + t=$(vcgencmd get_throttled | cut -d '=' -f 2) + test $((t & 65536)) -ne 0 && echo -n "under-voltage " + test $((t & 131072)) -ne 0 && echo -n "arm-frequency-capped " + test $((t & 262144)) -ne 0 && echo -n "throttled " +} + +watch_now() { + while true; do + t=$(get_throttled_now) + if [[ -n "${t}" ]]; then + logger -t throttlewatch -s "currently: ${t}" + fi + + sleep ${CHECK_INTERVAL} + done +} + +watch_since_boot() { + while true; do + t=$(get_throttled_since_boot) + if [[ -n "${t}" ]]; then + logger -t throttlewatch -s "since boot: ${t}" + break + fi + + sleep ${CHECK_INTERVAL} + done +} + +case "$1" in + start) + msg_begin "Starting throttle watcher" + watch_now & + watch_since_boot & + test $? == 0 && msg_done || msg_fail + ;; + + stop) + msg_begin "Stopping throttle watcher" + ps | grep throttlewatch | grep -v $$ | grep -v grep | tr -s ' ' | sed -e 's/^\s//' | cut -d ' ' -f 1 | xargs -r kill + test $? == 0 && msg_done || msg_fail + ;; + + *) + echo $"Usage: $0 {start|stop}" + exit 1 +esac + +exit $? + diff --git a/board/raspberrypi4/overlay/etc/init.d/S13btuart b/board/raspberrypi4/overlay/etc/init.d/S13btuart new file mode 100755 index 0000000000..0ad4deda81 --- /dev/null +++ b/board/raspberrypi4/overlay/etc/init.d/S13btuart @@ -0,0 +1,46 @@ +#!/bin/bash + +SYS_CONF="/etc/bluetooth.conf" +BOOT_CONF="/boot/bluetooth.conf" +CONF="/data/etc/bluetooth.conf" + + +test -f ${CONF} || test -f ${BOOT_CONF} || test -f ${SYS_CONF} || exit 0 + +test -d "/proc/device-tree/soc/gpio@7e200000/uart0_pins" || exit 0 # no rpi bluetooth detected + +test -n "${OS_VERSION}" || source /etc/init.d/base + +function start() { + if [[ "$(cat /proc/device-tree/aliases/uart0)" = "$(cat /proc/device-tree/aliases/serial1)" ]] ; then + if [[ "$(wc -c /proc/device-tree/soc/gpio@7e200000/uart0_pins/brcm\,pins | cut -f 1 -d ' ')" = " 16" ]] ; then + /usr/bin/hciattach -t5 /dev/serial1 bcm43xx 3000000 flow - &>/dev/null + else + /usr/bin/hciattach -t5 /dev/serial1 bcm43xx 921600 noflow - &>/dev/null + fi + else + /usr/bin/hciattach -t5 /dev/serial1 bcm43xx 460800 noflow - &>/dev/null + fi +} + +case "$1" in + start) + msg_begin "Attaching UART bluetooth modem" + # for some reason, sometimes the hciattach command needs to be run twice + (start || start) &>/dev/null & + msg_background + ;; + + stop) + msg_begin "Detaching UART bluetooth modem" + killall hciattach &>/dev/null + test $? == 0 && msg_done || msg_fail + ;; + + *) + echo $"Usage: $0 {start}" + exit 1 +esac + +exit $? + diff --git a/board/raspberrypi4/overlay/etc/init.d/boardsn b/board/raspberrypi4/overlay/etc/init.d/boardsn new file mode 100755 index 0000000000..16881c26f7 --- /dev/null +++ b/board/raspberrypi4/overlay/etc/init.d/boardsn @@ -0,0 +1,5 @@ +#!/bin/bash + +sn=$(cat /proc/cpuinfo | grep Serial | tr -d ' ' | cut -d ':' -f 2) +echo ${sn: -8} + diff --git a/board/raspberrypi4/overlay/etc/ld.so.preload b/board/raspberrypi4/overlay/etc/ld.so.preload new file mode 100644 index 0000000000..863162b676 --- /dev/null +++ b/board/raspberrypi4/overlay/etc/ld.so.preload @@ -0,0 +1 @@ +/usr/lib/libarmmem.so diff --git a/board/raspberrypi4/overlay/etc/modprobe.d/blacklist-rtl8192cu.conf b/board/raspberrypi4/overlay/etc/modprobe.d/blacklist-rtl8192cu.conf new file mode 100644 index 0000000000..dc07e99662 --- /dev/null +++ b/board/raspberrypi4/overlay/etc/modprobe.d/blacklist-rtl8192cu.conf @@ -0,0 +1 @@ +blacklist rtl8192cu diff --git a/board/raspberrypi4/overlay/etc/modules b/board/raspberrypi4/overlay/etc/modules new file mode 100644 index 0000000000..d5499e6362 --- /dev/null +++ b/board/raspberrypi4/overlay/etc/modules @@ -0,0 +1,3 @@ +i2c-bcm2708 +i2c-dev + diff --git a/board/raspberrypi4/overlay/etc/udev/rules.d/99-com.rules b/board/raspberrypi4/overlay/etc/udev/rules.d/99-com.rules new file mode 100644 index 0000000000..a964057230 --- /dev/null +++ b/board/raspberrypi4/overlay/etc/udev/rules.d/99-com.rules @@ -0,0 +1,32 @@ +SUBSYSTEM=="input", GROUP="input", MODE="0660" +SUBSYSTEM=="i2c-dev", GROUP="i2c", MODE="0660" +SUBSYSTEM=="spidev", GROUP="spi", MODE="0660" +SUBSYSTEM=="bcm2835-gpiomem", GROUP="gpio", MODE="0660" + +SUBSYSTEM=="gpio*", PROGRAM="/bin/sh -c '\ + chown -R root:gpio /sys/class/gpio && chmod -R 770 /sys/class/gpio;\ + chown -R root:gpio /sys/devices/virtual/gpio && chmod -R 770 /sys/devices/virtual/gpio;\ + chown -R root:gpio /sys$devpath && chmod -R 770 /sys$devpath\ +'" + +KERNEL=="ttyAMA[01]", PROGRAM="/bin/sh -c '\ + ALIASES=/proc/device-tree/aliases; \ + if cmp -s $ALIASES/uart0 $ALIASES/serial0; then \ + echo 0;\ + elif cmp -s $ALIASES/uart0 $ALIASES/serial1; then \ + echo 1; \ + else \ + exit 1; \ + fi\ +'", SYMLINK+="serial%c" + +KERNEL=="ttyS0", PROGRAM="/bin/sh -c '\ + ALIASES=/proc/device-tree/aliases; \ + if cmp -s $ALIASES/uart1 $ALIASES/serial0; then \ + echo 0; \ + elif cmp -s $ALIASES/uart1 $ALIASES/serial1; then \ + echo 1; \ + else \ + exit 1; \ + fi \ +'", SYMLINK+="serial%c" diff --git a/board/raspberrypi4/overlay/lib/firmware/brcm/BCM43430A1.hcd b/board/raspberrypi4/overlay/lib/firmware/brcm/BCM43430A1.hcd new file mode 100644 index 0000000000..9b087f1b6e Binary files /dev/null and b/board/raspberrypi4/overlay/lib/firmware/brcm/BCM43430A1.hcd differ diff --git a/board/raspberrypi4/overlay/lib/firmware/brcm/BCM4345C0.hcd b/board/raspberrypi4/overlay/lib/firmware/brcm/BCM4345C0.hcd new file mode 100644 index 0000000000..4eab4c9655 Binary files /dev/null and b/board/raspberrypi4/overlay/lib/firmware/brcm/BCM4345C0.hcd differ diff --git a/board/raspberrypi4/overlay/lib/firmware/brcm/brcmfmac43430-sdio.txt b/board/raspberrypi4/overlay/lib/firmware/brcm/brcmfmac43430-sdio.txt new file mode 100644 index 0000000000..25a4f9b6e9 --- /dev/null +++ b/board/raspberrypi4/overlay/lib/firmware/brcm/brcmfmac43430-sdio.txt @@ -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 diff --git a/board/raspberrypi4/overlay/lib/firmware/brcm/brcmfmac43455-sdio.bin b/board/raspberrypi4/overlay/lib/firmware/brcm/brcmfmac43455-sdio.bin new file mode 100644 index 0000000000..94f2add702 Binary files /dev/null and b/board/raspberrypi4/overlay/lib/firmware/brcm/brcmfmac43455-sdio.bin differ diff --git a/board/raspberrypi4/overlay/lib/firmware/brcm/brcmfmac43455-sdio.txt b/board/raspberrypi4/overlay/lib/firmware/brcm/brcmfmac43455-sdio.txt new file mode 100644 index 0000000000..6801286179 --- /dev/null +++ b/board/raspberrypi4/overlay/lib/firmware/brcm/brcmfmac43455-sdio.txt @@ -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 diff --git a/board/raspberrypi4/overlay/usr/bin/hciattach b/board/raspberrypi4/overlay/usr/bin/hciattach new file mode 100755 index 0000000000..468a3342a6 Binary files /dev/null and b/board/raspberrypi4/overlay/usr/bin/hciattach differ diff --git a/board/raspberrypi4/overlay/usr/libexec/fw-prepare-boot b/board/raspberrypi4/overlay/usr/libexec/fw-prepare-boot new file mode 100755 index 0000000000..e372abdb87 --- /dev/null +++ b/board/raspberrypi4/overlay/usr/libexec/fw-prepare-boot @@ -0,0 +1,5 @@ +#!/bin/bash + +echo >> /boot/config.txt +echo "initramfs initrd.gz" >> /boot/config.txt + diff --git a/board/raspberrypi4/overlay/usr/libexec/fw-restore-boot-cfg b/board/raspberrypi4/overlay/usr/libexec/fw-restore-boot-cfg new file mode 100755 index 0000000000..a4cf5afe76 --- /dev/null +++ b/board/raspberrypi4/overlay/usr/libexec/fw-restore-boot-cfg @@ -0,0 +1,10 @@ +#!/bin/bash + +if [ -z "$1" ]; then + echo "Usage: $0 " 1>&2 + exit -1 +fi + +old_boot=$1 +cp ${old_boot}/config.txt /boot + diff --git a/board/raspberrypi4/postscript.sh b/board/raspberrypi4/postscript.sh new file mode 100755 index 0000000000..51e630b1d8 --- /dev/null +++ b/board/raspberrypi4/postscript.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +set -e + +RPI_FW_DIR=${TARGET}/../images/rpi-firmware + +cp ${BOARD_DIR}/config.txt ${BOOT_DIR} +cp ${BOARD_DIR}/cmdline.txt ${BOOT_DIR} +cp ${BOARD_DIR}/initrd.gz ${BOOT_DIR} +cp ${IMG_DIR}/zImage ${BOOT_DIR}/kernel.img +cp ${IMG_DIR}/bcm2711-rpi-4-b.dtb ${BOOT_DIR} +cp ${RPI_FW_DIR}/bootcode.bin ${BOOT_DIR} +cp ${RPI_FW_DIR}/start4.elf ${BOOT_DIR} +cp ${RPI_FW_DIR}/fixup4.dat ${BOOT_DIR} diff --git a/configs/bananapim1_defconfig b/configs/bananapim1_defconfig index 3a243baaad..af18e12dfa 100644 --- a/configs/bananapim1_defconfig +++ b/configs/bananapim1_defconfig @@ -53,6 +53,7 @@ BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y BR2_PACKAGE_SUNXI_BOARDS=y BR2_PACKAGE_SUNXI_BOARDS_FEX_FILE="a20/Bananapi.fex" +BR2_PACKAGE_RNG_TOOLS=y BR2_PACKAGE_USB_MODESWITCH_DATA=y BR2_PACKAGE_PYTHON_HASHLIB=y BR2_PACKAGE_PYTHON_JINJA2=y diff --git a/configs/nanopineo2_defconfig b/configs/nanopineo2_defconfig index 32eaa634d9..876446c57b 100644 --- a/configs/nanopineo2_defconfig +++ b/configs/nanopineo2_defconfig @@ -45,6 +45,7 @@ BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y +BR2_PACKAGE_RNG_TOOLS=y BR2_PACKAGE_USB_MODESWITCH_DATA=y BR2_PACKAGE_PYTHON_HASHLIB=y BR2_PACKAGE_PYTHON_JINJA2=y diff --git a/configs/nanopineo_defconfig b/configs/nanopineo_defconfig index aaf3248718..55e947f692 100644 --- a/configs/nanopineo_defconfig +++ b/configs/nanopineo_defconfig @@ -45,6 +45,7 @@ BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y +BR2_PACKAGE_RNG_TOOLS=y BR2_PACKAGE_USB_MODESWITCH_DATA=y BR2_PACKAGE_PYTHON_HASHLIB=y BR2_PACKAGE_PYTHON_JINJA2=y diff --git a/configs/odroidc1_defconfig b/configs/odroidc1_defconfig index d98608079b..4cdedad0a4 100644 --- a/configs/odroidc1_defconfig +++ b/configs/odroidc1_defconfig @@ -57,6 +57,7 @@ BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y +BR2_PACKAGE_RNG_TOOLS=y BR2_PACKAGE_USB_MODESWITCH_DATA=y BR2_PACKAGE_PYTHON_HASHLIB=y BR2_PACKAGE_PYTHON_JINJA2=y diff --git a/configs/odroidc2_defconfig b/configs/odroidc2_defconfig index 9ed8696e30..307cf156ab 100644 --- a/configs/odroidc2_defconfig +++ b/configs/odroidc2_defconfig @@ -45,6 +45,7 @@ BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y +BR2_PACKAGE_RNG_TOOLS=y BR2_PACKAGE_USB_MODESWITCH_DATA=y BR2_PACKAGE_PYTHON_HASHLIB=y BR2_PACKAGE_PYTHON_JINJA2=y diff --git a/configs/odroidxu4_defconfig b/configs/odroidxu4_defconfig index 678a35446b..4db5b5afb1 100644 --- a/configs/odroidxu4_defconfig +++ b/configs/odroidxu4_defconfig @@ -47,6 +47,7 @@ BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y +BR2_PACKAGE_RNG_TOOLS=y BR2_PACKAGE_USB_MODESWITCH_DATA=y BR2_PACKAGE_PYTHON_HASHLIB=y BR2_PACKAGE_PYTHON_JINJA2=y diff --git a/configs/orangepione_defconfig b/configs/orangepione_defconfig index d0cfe1803e..d54f3f3e84 100644 --- a/configs/orangepione_defconfig +++ b/configs/orangepione_defconfig @@ -47,6 +47,7 @@ BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y +BR2_PACKAGE_RNG_TOOLS=y BR2_PACKAGE_USB_MODESWITCH_DATA=y BR2_PACKAGE_PYTHON_HASHLIB=y BR2_PACKAGE_PYTHON_JINJA2=y diff --git a/configs/orangepizero_defconfig b/configs/orangepizero_defconfig index 897fa8f069..fc3d5f50c8 100644 --- a/configs/orangepizero_defconfig +++ b/configs/orangepizero_defconfig @@ -47,6 +47,7 @@ BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y +BR2_PACKAGE_RNG_TOOLS=y BR2_PACKAGE_USB_MODESWITCH_DATA=y BR2_PACKAGE_PYTHON_HASHLIB=y BR2_PACKAGE_PYTHON_JINJA2=y diff --git a/configs/pine64_defconfig b/configs/pine64_defconfig index 471298a338..7f6f14cb37 100644 --- a/configs/pine64_defconfig +++ b/configs/pine64_defconfig @@ -44,6 +44,7 @@ BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y +BR2_PACKAGE_RNG_TOOLS=y BR2_PACKAGE_USB_MODESWITCH_DATA=y BR2_PACKAGE_PYTHON_HASHLIB=y BR2_PACKAGE_PYTHON_JINJA2=y diff --git a/configs/raspberrypi2_defconfig b/configs/raspberrypi2_defconfig index ae22615567..bfa9491399 100644 --- a/configs/raspberrypi2_defconfig +++ b/configs/raspberrypi2_defconfig @@ -12,7 +12,7 @@ BR2_ROOTFS_OVERLAY="board/common/overlay board/raspberrypi2/overlay" BR2_ROOTFS_POST_BUILD_SCRIPT="board/common/postscript.sh" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL=y -BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/raspberrypi/linux/archive/2a64d238e2d6163acd47e531d8431cc2e7fa91e2.tar.gz" +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/raspberrypi/linux/archive/6e787b87ace9f945f17a9022288e2758ed281cf7.tar.gz" BR2_LINUX_KERNEL_DEFCONFIG="bcm2709" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2709-rpi-2-b" @@ -100,6 +100,7 @@ BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y BR2_PACKAGE_RPI_FIRMWARE=y BR2_PACKAGE_RPI_FIRMWARE_X=y BR2_PACKAGE_LAN951X_LED_CTL=y +BR2_PACKAGE_RNG_TOOLS=y BR2_PACKAGE_RPI_ARMMEM=y BR2_PACKAGE_RPI_USERLAND=y BR2_PACKAGE_USB_MODESWITCH_DATA=y diff --git a/configs/raspberrypi3_defconfig b/configs/raspberrypi3_defconfig index 7b79ccb87e..8074680408 100644 --- a/configs/raspberrypi3_defconfig +++ b/configs/raspberrypi3_defconfig @@ -12,7 +12,7 @@ BR2_ROOTFS_OVERLAY="board/common/overlay board/raspberrypi3/overlay" BR2_ROOTFS_POST_BUILD_SCRIPT="board/common/postscript.sh" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL=y -BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/raspberrypi/linux/archive/2a64d238e2d6163acd47e531d8431cc2e7fa91e2.tar.gz" +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/raspberrypi/linux/archive/6e787b87ace9f945f17a9022288e2758ed281cf7.tar.gz" BR2_LINUX_KERNEL_DEFCONFIG="bcm2709" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2710-rpi-3-b bcm2710-rpi-3-b-plus bcm2710-rpi-cm3" @@ -100,6 +100,7 @@ BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y BR2_PACKAGE_RPI_FIRMWARE=y BR2_PACKAGE_RPI_FIRMWARE_X=y BR2_PACKAGE_LAN951X_LED_CTL=y +BR2_PACKAGE_RNG_TOOLS=y BR2_PACKAGE_RPI_ARMMEM=y BR2_PACKAGE_RPI_USERLAND=y BR2_PACKAGE_USB_MODESWITCH_DATA=y diff --git a/configs/raspberrypi4_defconfig b/configs/raspberrypi4_defconfig new file mode 100644 index 0000000000..897c092d6f --- /dev/null +++ b/configs/raspberrypi4_defconfig @@ -0,0 +1,81 @@ +BR2_arm=y +BR2_cortex_a72=y +BR2_ARM_FPU_NEON_FP_ARMV8=y +BR2_CCACHE=y +BR2_CCACHE_DIR="$(TOPDIR)/.buildroot-ccache-raspberrypi4" +BR2_OPTIMIZE_2=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TARGET_OPTIMIZATION="-pipe" +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y +BR2_TARGET_TZ_INFO=y +BR2_ROOTFS_OVERLAY="board/common/overlay board/raspberrypi4/overlay" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/common/postscript.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/raspberrypi/linux/archive/6e787b87ace9f945f17a9022288e2758ed281cf7.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="bcm2711" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2711-rpi-4-b" +BR2_PACKAGE_BUSYBOX_CONFIG="board/common/busybox.config" +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y +BR2_PACKAGE_ALSA_UTILS=y +BR2_PACKAGE_ALSA_UTILS_APLAY=y +BR2_PACKAGE_GZIP=y +BR2_PACKAGE_JQ=y +BR2_PACKAGE_E2FSPROGS=y +BR2_PACKAGE_NTFS_3G=y +BR2_PACKAGE_B43_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271=y +BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XX=y +BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX=y +BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8797=y +BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8897=y +BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7601U=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT61=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y +BR2_PACKAGE_RPI_FIRMWARE=y +BR2_PACKAGE_RPI_FIRMWARE_X=y +BR2_PACKAGE_RNG_TOOLS=y +BR2_PACKAGE_RPI_ARMMEM=y +BR2_PACKAGE_RPI_USERLAND=y +BR2_PACKAGE_USB_MODESWITCH_DATA=y +BR2_PACKAGE_CA_CERTIFICATES=y +BR2_PACKAGE_LIBSSH2=y +BR2_PACKAGE_LIBFUSE=y +BR2_PACKAGE_LIBCURL=y +BR2_PACKAGE_CURL=y +BR2_PACKAGE_LIBCAP=y +BR2_PACKAGE_PCRE=y +BR2_PACKAGE_PCRE_UCP=y +BR2_PACKAGE_AUTOSSH=y +BR2_PACKAGE_CRDA=y +BR2_PACKAGE_DHCP=y +BR2_PACKAGE_DHCP_CLIENT=y +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set +BR2_PACKAGE_IPTABLES=y +BR2_PACKAGE_IW=y +BR2_PACKAGE_NETCAT=y +BR2_PACKAGE_NET_TOOLS=y +BR2_PACKAGE_NTP=y +BR2_PACKAGE_NTP_NTPDATE=y +BR2_PACKAGE_OPENSSH=y +BR2_PACKAGE_PPPD=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_AUTOSCAN=y +BR2_PACKAGE_WPA_SUPPLICANT_EAP=y +BR2_PACKAGE_WPA_SUPPLICANT_WPS=y +BR2_PACKAGE_WPA_SUPPLICANT_CLI=y +BR2_PACKAGE_BASH=y +BR2_PACKAGE_LOGROTATE=y +BR2_PACKAGE_TAR=y +BR2_PACKAGE_UTIL_LINUX_BINARIES=y +BR2_PACKAGE_UTIL_LINUX_PARTX=y +BR2_PACKAGE_NANO=y diff --git a/configs/raspberrypi_defconfig b/configs/raspberrypi_defconfig index 243362f04f..ade794a91f 100644 --- a/configs/raspberrypi_defconfig +++ b/configs/raspberrypi_defconfig @@ -19,7 +19,7 @@ BR2_ROOTFS_OVERLAY="board/common/overlay board/raspberrypi/overlay" BR2_ROOTFS_POST_BUILD_SCRIPT="board/common/postscript.sh" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL=y -BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/raspberrypi/linux/archive/2a64d238e2d6163acd47e531d8431cc2e7fa91e2.tar.gz" +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/raspberrypi/linux/archive/6e787b87ace9f945f17a9022288e2758ed281cf7.tar.gz" BR2_LINUX_KERNEL_DEFCONFIG="bcmrpi" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2708-rpi-zero-w bcm2708-rpi-b bcm2708-rpi-b-plus bcm2708-rpi-cm" @@ -107,6 +107,7 @@ BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y BR2_PACKAGE_RPI_FIRMWARE=y BR2_PACKAGE_RPI_FIRMWARE_X=y BR2_PACKAGE_LAN951X_LED_CTL=y +BR2_PACKAGE_RNG_TOOLS=y BR2_PACKAGE_RPI_ARMMEM=y BR2_PACKAGE_RPI_USERLAND=y BR2_PACKAGE_USB_MODESWITCH_DATA=y diff --git a/configs/tinkerboard_defconfig b/configs/tinkerboard_defconfig index 04e7b4e439..16892ccdca 100644 --- a/configs/tinkerboard_defconfig +++ b/configs/tinkerboard_defconfig @@ -48,6 +48,7 @@ BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y +BR2_PACKAGE_RNG_TOOLS=y BR2_PACKAGE_USB_MODESWITCH_DATA=y BR2_PACKAGE_PYTHON_HASHLIB=y BR2_PACKAGE_PYTHON_JINJA2=y diff --git a/package/rpi-firmware/rpi-firmware.hash b/package/rpi-firmware/rpi-firmware.hash index 132ebf9c1c..ba00f114d7 100644 --- a/package/rpi-firmware/rpi-firmware.hash +++ b/package/rpi-firmware/rpi-firmware.hash @@ -1 +1 @@ -sha256 2a4c566e98b16575ebf295b795b40a5772f81282948e957bdc9733cf72fdcd39 rpi-firmware-e1900836948f6c6bdf4571da1b966a9085c95d37.tar.gz +sha256 6e07d98e4229ba7a1970a4c475fc6b8631823d200d3b8734a508e7ff5ea4c120 rpi-firmware-356f5c2880a3c7e8774025aa6fc934a617553e7b.tar.gz diff --git a/package/rpi-firmware/rpi-firmware.mk b/package/rpi-firmware/rpi-firmware.mk index 877ab5e2ee..2c79b82121 100644 --- a/package/rpi-firmware/rpi-firmware.mk +++ b/package/rpi-firmware/rpi-firmware.mk @@ -4,7 +4,7 @@ # ################################################################################ -RPI_FIRMWARE_VERSION = e1900836948f6c6bdf4571da1b966a9085c95d37 +RPI_FIRMWARE_VERSION = 356f5c2880a3c7e8774025aa6fc934a617553e7b RPI_FIRMWARE_SITE = $(call github,raspberrypi,firmware,$(RPI_FIRMWARE_VERSION)) RPI_FIRMWARE_LICENSE = BSD-3-Clause RPI_FIRMWARE_LICENSE_FILES = boot/LICENCE.broadcom @@ -42,9 +42,17 @@ endef endif # INSTALL_VCDBG define RPI_FIRMWARE_INSTALL_IMAGES_CMDS + cp $(@D)/boot/fixup4cd.dat $(@D)/boot/fixup4_cd.dat + cp $(@D)/boot/fixup4x.dat $(@D)/boot/fixup4_x.dat + cp $(@D)/boot/fixup4db.dat $(@D)/boot/fixup4_db.dat + cp $(@D)/boot/start4cd.elf $(@D)/boot/start4_cd.elf + cp $(@D)/boot/start4x.elf $(@D)/boot/start4_x.elf + cp $(@D)/boot/start4db.elf $(@D)/boot/start4_db.elf $(INSTALL) -D -m 0644 $(@D)/boot/bootcode.bin $(BINARIES_DIR)/rpi-firmware/bootcode.bin $(INSTALL) -D -m 0644 $(@D)/boot/start$(BR2_PACKAGE_RPI_FIRMWARE_BOOT).elf $(BINARIES_DIR)/rpi-firmware/start.elf $(INSTALL) -D -m 0644 $(@D)/boot/fixup$(BR2_PACKAGE_RPI_FIRMWARE_BOOT).dat $(BINARIES_DIR)/rpi-firmware/fixup.dat + $(INSTALL) -D -m 0644 $(@D)/boot/start4$(BR2_PACKAGE_RPI_FIRMWARE_BOOT).elf $(BINARIES_DIR)/rpi-firmware/start4.elf + $(INSTALL) -D -m 0644 $(@D)/boot/fixup4$(BR2_PACKAGE_RPI_FIRMWARE_BOOT).dat $(BINARIES_DIR)/rpi-firmware/fixup4.dat $(INSTALL) -D -m 0644 package/rpi-firmware/config.txt $(BINARIES_DIR)/rpi-firmware/config.txt $(INSTALL) -D -m 0644 package/rpi-firmware/cmdline.txt $(BINARIES_DIR)/rpi-firmware/cmdline.txt $(RPI_FIRMWARE_INSTALL_DTB)