[OpenWrt-Devel] [PATCH 0/4] Add Raspberry Pi 3 support

Álvaro Fernández Rojas noltari at gmail.com
Tue Mar 8 17:13:31 EST 2016


I've got WiFi and Bluetooth working:
https://github.com/openwrt-es/openwrt/commits/brcm2708-rpi3-wifi
https://github.com/openwrt-es/openwrt/commits/brcm2708-rpi3-bt

WiFi is working after latest brcmfmac patches backported by Rafał, with 
some issues like the following:
brcmfmac: brcmf_proto_bcdc_hdrpull: wlan0: non-BCDC packet received, 
flags 0x44

BT is working but only for baud rates <= 115200. I'm still investigating 
why.
In order to setup the bluetooth, the following bluez patches are needed:
https://github.com/openwrt/packages/pull/2464

By the way, I won't be submitting any WiFi/BT patches until anyone from 
either the Raspberry foundation or Broadcom clarifies the license of the 
firmware files.
https://github.com/raspberrypi/linux/issues/1325

Regards,
Álvaro.

El 04/03/2016 a las 21:06, Álvaro Fernández Rojas escribió:
> These patches add basic Raspberry Pi 3 support.
>
> Bootlog: https://gist.github.com/Noltari/92f51259c9d18506192b#file-bcm2710_rpi3-log
>
> Known issues:
> 1) No ARMv8 64 bit support.
>   More info:
>   https://github.com/raspberrypi/firmware/issues/550
> 2) UART0 is connected to BCM43430 (Bluetooth), which means that console relies on UART1.
>   UART1 clock depends on pll_freq, which changes depending on the core frequency.
>   In order to get a proper console through GPIOs 14 & 15, you should force a fixed frequency instead of the default dynamic one.
>   You can do that by either setting core_freq=250 on config.txt or force_turbo=1 (this last option will run your rpi at maximum frequency so be careful).
>   The framebuffer console (HDMI) isn't affected so you can use that one with an external keyboard and USB HID package.
>   More info:
>   https://github.com/raspberrypi/firmware/issues/553
>   https://github.com/RPi-Distro/repo/issues/22
> 3) No WiFi support.
>   brcmfmac43430-sdio.bin / brcmfmac43430-sdio.txt firmware files aren't available on linux-firmware for now.
>   Downloading those files from https://github.com/RPi-Distro/firmware-nonfree and trying to enable BCM43430 SDIO WiFi causes the following kernel exception:
>   https://gist.github.com/Noltari/92f51259c9d18506192b#file-bcm2710_rpi3_brcmfmac-log
> 4) No Bluetooth support.
>
> Álvaro Fernández Rojas (4):
>    include: add Cortex-A53 CPU_TYPE
>    brcm2708-gpu-fw: update to latest version
>    brcm2708: update linux 4.4 patches to latest version
>    brcm2708: add Raspberry Pi 3 support
>
>   include/target.mk                                  |   1 +
>   package/kernel/brcm2708-gpu-fw/Makefile            |   8 +-
>   target/linux/brcm2708/Makefile                     |   8 +-
>   .../brcm2708/base-files/etc/board.d/02_network     |   5 +-
>   target/linux/brcm2708/base-files/etc/diag.sh       |   7 +-
>   target/linux/brcm2708/base-files/etc/inittab       |   2 +-
>   target/linux/brcm2708/base-files/lib/brcm2708.sh   |   5 +-
>   .../lib/preinit/05_set_preinit_iface_brcm2708      |   7 +-
>   target/linux/brcm2708/bcm2708/config-4.4           |   7 +-
>   target/linux/brcm2708/bcm2709/config-4.4           |   7 +-
>   target/linux/brcm2708/bcm2710/config-4.4           | 389 ++++++++++++
>   .../brcm2708/bcm2710/profiles/RaspberryPi3.mk      |  14 +
>   target/linux/brcm2708/bcm2710/target.mk            |  12 +
>   target/linux/brcm2708/image/Makefile               |  12 +-
>   target/linux/brcm2708/image/cmdline.txt            |   2 +-
>   target/linux/brcm2708/modules.mk                   |  19 +
>   ...0001-smsx95xx-fix-crimes-against-truesize.patch |   4 +-
>   ...02-smsc95xx-Disable-turbo-mode-by-default.patch |   4 +-
>   ...around-for-issue-where-dirty-page-count-g.patch |   4 +-
>   .../0004-BCM2835_DT-Fix-I2S-register-map.patch     |   4 +-
>   ...-Prevent-spurious-interrupts-and-trap-the.patch |   4 +-
>   .../0006-irqchip-bcm2835-Add-FIQ-support.patch     |   4 +-
>   ...-irqchip-irq-bcm2835-Add-2836-FIQ-support.patch |   4 +-
>   ...erial-8250-Don-t-crash-when-nr_uarts-is-0.patch |   4 +-
>   ...2835-Set-base-to-0-give-expected-gpio-num.patch |   4 +-
>   ...2835-Fix-interrupt-handling-for-GPIOs-28-.patch |   4 +-
>   ...2835-Only-request-the-interrupts-listed-i.patch |   4 +-
>   ...cm2835-Support-pin-groups-other-than-7-11.patch |   4 +-
>   ...RM-bcm2835-Set-Serial-number-and-Revision.patch |   4 +-
>   ...-get-base-address-for-DMA-from-devicetree.patch |   4 +-
>   ...-add-24bit-support-update-bclk_ratio-to-m.patch |   4 +-
>   ...s-setup-clock-only-if-CPU-is-clock-master.patch |   4 +-
>   ...835-i2s-Eliminate-debugfs-directory-error.patch |   4 +-
>   .../0018-bcm2835-i2s-Register-PCM-device.patch     |   4 +-
>   ...i2s-Enable-MMAP-support-via-a-DT-property.patch |   4 +-
>   ...0-dmaengine-bcm2835-Add-slave-dma-support.patch |   4 +-
>   ...ine-bcm2835-set-residue_granularity-field.patch |   4 +-
>   ...cm2835-Load-driver-early-and-support-lega.patch |   4 +-
>   ...-dma-Fix-dreq-not-set-for-slave-transfers.patch |   4 +-
>   ...-Limit-cyclic-transfers-on-lite-channels-.patch |   4 +-
>   .../0025-bcm2835-Add-support-for-uart1.patch       |   4 +-
>   ...irmware-bcm2835-Add-missing-property-tags.patch |   4 +-
>   .../0027-Main-bcm2708-bcm2709-linux-port.patch     |   4 +-
>   ...-squash-include-ARCH_BCM2708-ARCH_BCM2709.patch |   4 +-
>   .../patches-4.4/0029-Add-dwc_otg-driver.patch      |   4 +-
>   .../0030-bcm2708-framebuffer-driver.patch          |   4 +-
>   .../0031-dmaengine-Add-support-for-BCM2708.patch   |   4 +-
>   ...-parameter-to-mmc-multi_io_quirk-callback.patch |   4 +-
>   .../0033-MMC-added-alternative-MMC-driver.patch    |   4 +-
>   ...835-sdhost-driver-and-an-overlay-to-enabl.patch |   4 +-
>   ...ma-Add-vc_cma-driver-to-enable-use-of-CMA.patch |   4 +-
>   .../0036-bcm2708-alsa-sound-driver.patch           |   4 +-
>   .../patches-4.4/0037-bcm2708-vchiq-driver.patch    |   4 +-
>   .../0038-vc_mem-Add-vc_mem-driver.patch            |   4 +-
>   ...deoCore-shared-memory-service-for-BCM2835.patch |   4 +-
>   ...omem-device-for-rootless-user-GPIO-access.patch |   4 +-
>   .../brcm2708/patches-4.4/0041-Add-SMI-driver.patch |   4 +-
>   .../patches-4.4/0042-Add-SMI-NAND-driver.patch     |   4 +-
>   ...3-lirc-added-support-for-RaspberryPi-GPIO.patch |   4 +-
>   .../patches-4.4/0044-Add-cpufreq-driver.patch      |   4 +-
>   ...-thermal-driver-for-reporting-core-temper.patch |   4 +-
>   .../0046-Add-Chris-Boot-s-i2c-driver.patch         |   4 +-
>   .../0047-char-broadcom-Add-vcio-module.patch       |   4 +-
>   ...048-firmware-bcm2835-Support-ARCH_BCM270x.patch |   4 +-
>   .../0049-bcm2835-add-v4l2-camera-device.patch      |   4 +-
>   ...-mkknlimg-and-knlinfo-scripts-from-tools-.patch |   4 +-
>   ...port-for-the-CONFIG_CMDLINE_EXTEND-option.patch |   4 +-
>   ...0052-BCM2708-Add-core-Device-Tree-support.patch |   4 +-
>   ...3-bcm2835-Match-with-BCM2708-Device-Trees.patch |   4 +-
>   .../0054-fbdev-add-FBIOCOPYAREA-ioctl.patch        |   4 +-
>   ...up-console-framebuffer-imageblit-function.patch |   4 +-
>   ...9-Allow-mac-address-to-be-set-in-smsc95xx.patch |   4 +-
>   ...e-realtime-clock-1-wire-chip-DS1307-and-1.patch |   4 +-
>   ...061-Added-Device-IDs-for-August-DVB-T-205.patch |   4 +-
>   ...le-CONFIG_MEMCG-but-leave-it-disabled-due.patch |   4 +-
>   .../0063-ASoC-Add-support-for-PCM5102A-codec.patch |   4 +-
>   .../0064-ASoC-Add-support-for-HifiBerry-DAC.patch  |   4 +-
>   .../0065-ASoC-Add-support-for-Rpi-DAC.patch        |   4 +-
>   ...-Implement-MCLK-configuration-options-add.patch |   4 +-
>   ...d-support-for-HiFiBerry-Digi.-Driver-is-b.patch |   4 +-
>   ...-Set-idle_bias_off-to-false-Idle-bias-has.patch |   4 +-
>   ...audIO-Sound-Card-support-for-Raspberry-Pi.patch |   4 +-
>   ...ce-default-mouse-polling-interval-to-60Hz.patch |   4 +-
>   .../0071-Added-support-for-HiFiBerry-DAC.patch     |   4 +-
>   ...r-for-HiFiBerry-Amp-amplifier-add-on-boar.patch |   4 +-
>   ...ate-ds1307-driver-for-device-tree-support.patch |   4 +-
>   ...Add-pwr_led-and-the-required-input-trigge.patch |   4 +-
>   ...d-device-tree-compatible-string-and-an-ov.patch |   4 +-
>   .../0076-Add-driver-for-rpi-proto.patch            |   4 +-
>   .../0077-config-Add-default-configs.patch          |   4 +-
>   .../0078-bcm2835-bcm2835_defconfig.patch           |   4 +-
>   ...Add-touchscreen-driver-for-pi-LCD-display.patch |   4 +-
>   ...opy_to_user-and-__copy_from_user-performa.patch |   4 +-
>   ...poweroff-Allow-it-to-work-on-Raspberry-Pi.patch |   4 +-
>   ...spidev-compatible-string-to-silence-warni.patch |   4 +-
>   .../0083-scripts-dtc-Add-overlay-support.patch     |   4 +-
>   ...fd-Add-Raspberry-Pi-Sense-HAT-core-driver.patch |   4 +-
>   .../patches-4.4/0085-RaspiDAC3-support.patch       |   4 +-
>   ...86-tpa6130a2-Add-headphone-switch-control.patch |   4 +-
>   .../0087-irq-bcm2835-Fix-building-with-2708.patch  |   4 +-
>   ..._display-add-backlight-driver-and-overlay.patch |   4 +-
>   ...89-bcm2835-dma-Fix-up-convert-to-DMA-pool.patch |   4 +-
>   ...ti-platform-support-for-mkknlimg-and-knli.patch |   4 +-
>   ...-suport-for-3D-rendering-using-the-V3D-en.patch |   4 +-
>   .../0092-drm-vc4-Force-HDMI-to-connected.patch     |   4 +-
>   .../0093-drm-vc4-bo-cache-locking-fixes.patch      |   4 +-
>   .../0094-drm-vc4-bo-cache-locking-cleanup.patch    |   4 +-
>   ...vc4-Use-job_lock-to-protect-seqno_cb_list.patch |   4 +-
>   ...c4-Drop-struct_mutex-around-CL-validation.patch |   4 +-
>   ...c4-Drop-struct_mutex-around-CL-validation.patch |   4 +-
>   ...dd-support-for-more-display-plane-formats.patch |   4 +-
>   ...m-vc4-No-need-to-stop-the-stopped-threads.patch |   4 +-
>   ...ove-extra-barrier-s-aroudn-CTnCA-CTnEA-se.patch |   4 +-
>   ...rm-vc4-Fix-a-typo-in-a-V3D-debug-register.patch |   4 +-
>   ...ble-VC4-modules-and-increase-CMA-size-wit.patch |   4 +-
>   .../brcm2708/patches-4.4/0103-squash-fixups.patch  |   4 +-
>   ...missing-vc4-kms-v3d-overlay.dtb-to-makefi.patch |   4 +-
>   ...-Also-build-the-driver-for-downstream-ker.patch |   4 +-
>   ...dts-Added-overlay-for-gpio_ir_recv-driver.patch |   4 +-
>   ...pio-module-and-add-a-device-tree-overlay-.patch |   4 +-
>   .../0108-New-overlay-for-PiScreen2r.patch          |   4 +-
>   ...verlay-for-Adafruit-PiTFT-2.8-capacitive-.patch |   4 +-
>   ...110-Add-support-for-the-HiFiBerry-DAC-Pro.patch |   4 +-
>   .../0111-BCM270X_DT-Add-at86rf233-overlay.patch    |   4 +-
>   .../0112-mm-Remove-the-PFN-busy-warning.patch      |   4 +-
>   ...optional-field-in-the-driver-struct-for-G.patch |   4 +-
>   ...-an-interface-for-capturing-the-GPU-state.patch |   4 +-
>   ...ate-a-bunch-of-code-to-match-upstream-sub.patch |   4 +-
>   ...-driver-s-gem_object_free-function-from-C.patch |   4 +-
>   ...17-drm-vc4-Add-support-for-MSAA-rendering.patch |   4 +-
>   ...ew-more-non-functional-changes-to-sync-to.patch |   4 +-
>   ...-hpd-gpios-for-HDMI-GPIO-like-what-landed.patch |   4 +-
>   ...chronize-validation-code-for-v2-submissio.patch |   4 +-
>   ...use-mmc_debug-if-CONFIG_MMC_BCM2835-is-no.patch |   4 +-
>   ...k-timeout-fix-modprobe-baudrate-parameter.patch |   4 +-
>   ...-bcm270x_dt-Add-dwc2-and-dwc-otg-overlays.patch |   4 +-
>   ...Add-the-sdtweak-overlay-for-tuning-sdhost.patch |   4 +-
>   ...-Don-t-override-bus-width-capabilities-fr.patch |   4 +-
>   ...0126-SDIO-overlay-add-bus_width-parameter.patch |   4 +-
>   ...70X_DT-random-HWRNG-dtparam-default-is-on.patch |   4 +-
>   ...end-allowed-range-of-channels-and-sampler.patch |   4 +-
>   ...cm2835-restrict-channels-rate-to-8-960000.patch |   4 +-
>   .../0130-rpi-update-vc_vchi_audioserv_defs.h.patch |   4 +-
>   .../0131-bcm2835-implement-channel-map-API.patch   |   4 +-
>   ...835-access-controls-under-the-audio-mutex.patch |   4 +-
>   ...ays-use-2-4-8-channels-for-multichannel-l.patch |   4 +-
>   ...y-allow-stereo-if-analogue-jack-is-select.patch |   4 +-
>   .../0135-bcm2835-interpolate-audio-delay.patch     |   4 +-
>   ...ost-Add-workaround-for-odd-behaviour-on-s.patch |   4 +-
>   ...37-bcm2835-sdhost-Add-debug_flags-dtparam.patch |   4 +-
>   ...Add-sdio_overclock-parameter-to-sdio-over.patch |   4 +-
>   ...add-support-for-the-DT-property-wakeup-so.patch |   4 +-
>   .../0140-dt-overlay-add-wittypi-overlay.dts.patch  |   4 +-
>   ..._DT-Disable-DMA-for-bcm2835-sdhost-on-Pi2.patch |   4 +-
>   ...cm2708-Don-t-change-module-baudrate-param.patch |   4 +-
>   ...-24dB-digital-gain-to-be-applied-when-usi.patch |   4 +-
>   ...2x-Digital-gain-to-0dB-by-default-with-Hi.patch |   4 +-
>   ...M270X_DT-Adjust-overlay-README-formatting.patch |   4 +-
>   ...ay-README-Restore-spaces-deleted-in-error.patch |   4 +-
>   ...2835-Fix-cut-and-paste-error-in-pull-pars.patch |   4 +-
>   ...70X_DT-Disable-DMA-for-bcm2835-sdhost-on-.patch |   4 +-
>   .../0149-bcm2835-sdhost-Major-revision.patch       |   4 +-
>   ...270X_DT-Add-dtparams-for-the-SD-interface.patch |   4 +-
>   ...m-xfer-length-when-buffer-larger-than-all.patch |   4 +-
>   ...ost-Restore-ATOMIC-flag-to-PIO-sg-mapping.patch |   4 +-
>   ...blk_pos-parameter-to-mmc-multi_io_quirk-c.patch |   4 +-
>   ...c95xx-driver-to-check-for-a-valid-MAC-add.patch |   4 +-
>   ...dcw_otg-Make-trimming-messages-less-noisy.patch |   4 +-
>   ...BCM270X_DT-at86rf233-overlay-drop-to-3MHz.patch |   4 +-
>   ...m2835-sdhost-Downgrade-log-message-status.patch |  22 +
>   .../0158-config-Enable-HCI-over-UARTs.patch        |  33 +
>   ...59-hci_h5-Don-t-send-conf_req-when-ACTIVE.patch |  23 +
>   ..._pl011-Don-t-use-DT-aliases-for-numbering.patch |  29 +
>   ...-Add-bindings-for-the-auxiliary-periphera.patch |  72 +++
>   ...-Add-a-driver-for-the-auxiliary-periphera.patch | 118 ++++
>   .../0163-Aux-SPI-1-2-implementation.patch          | 700 +++++++++++++++++++++
>   ...d-missing-.owner-fields-in-sound-card-dri.patch | 108 ++++
>   ...d-option-to-disable-the-crimes-against-tr.patch |  44 ++
>   ...0166-bcm2835-virtgpio-Virtual-GPIO-driver.patch | 244 +++++++
>   .../0167-BCM270X_DT-Add-Pi3-support.patch          | 305 +++++++++
>   ...FIXUP-BCM270X_DT-Update-to-latest-Pi3-DTS.patch |  82 +++
>   ...169-DT-Add-overlays-to-configure-I2C-pins.patch | 134 ++++
>   ...era-fix-a-bug-in-computation-of-frame-tim.patch |  23 +
>   183 files changed, 2716 insertions(+), 338 deletions(-)
>   create mode 100644 target/linux/brcm2708/bcm2710/config-4.4
>   create mode 100644 target/linux/brcm2708/bcm2710/profiles/RaspberryPi3.mk
>   create mode 100644 target/linux/brcm2708/bcm2710/target.mk
>   mode change 100644 => 100755 target/linux/brcm2708/patches-4.4/0051-fdt-Add-support-for-the-CONFIG_CMDLINE_EXTEND-option.patch
>   create mode 100644 target/linux/brcm2708/patches-4.4/0157-bcm2835-sdhost-Downgrade-log-message-status.patch
>   create mode 100644 target/linux/brcm2708/patches-4.4/0158-config-Enable-HCI-over-UARTs.patch
>   create mode 100644 target/linux/brcm2708/patches-4.4/0159-hci_h5-Don-t-send-conf_req-when-ACTIVE.patch
>   create mode 100644 target/linux/brcm2708/patches-4.4/0160-amba_pl011-Don-t-use-DT-aliases-for-numbering.patch
>   create mode 100644 target/linux/brcm2708/patches-4.4/0161-clk-bcm2835-Add-bindings-for-the-auxiliary-periphera.patch
>   create mode 100644 target/linux/brcm2708/patches-4.4/0162-clk-bcm2835-Add-a-driver-for-the-auxiliary-periphera.patch
>   create mode 100644 target/linux/brcm2708/patches-4.4/0163-Aux-SPI-1-2-implementation.patch
>   create mode 100644 target/linux/brcm2708/patches-4.4/0164-ASoC-bcm-add-missing-.owner-fields-in-sound-card-dri.patch
>   create mode 100644 target/linux/brcm2708/patches-4.4/0165-smsx95xx-Add-option-to-disable-the-crimes-against-tr.patch
>   create mode 100644 target/linux/brcm2708/patches-4.4/0166-bcm2835-virtgpio-Virtual-GPIO-driver.patch
>   create mode 100644 target/linux/brcm2708/patches-4.4/0167-BCM270X_DT-Add-Pi3-support.patch
>   create mode 100644 target/linux/brcm2708/patches-4.4/0168-FIXUP-BCM270X_DT-Update-to-latest-Pi3-DTS.patch
>   create mode 100644 target/linux/brcm2708/patches-4.4/0169-DT-Add-overlays-to-configure-I2C-pins.patch
>   create mode 100644 target/linux/brcm2708/patches-4.4/0170-bcm2835-camera-fix-a-bug-in-computation-of-frame-tim.patch
>
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list