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

Álvaro Fernández Rojas noltari at gmail.com
Fri Mar 4 15:06:28 EST 2016


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

-- 
1.9.1
_______________________________________________
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