mbox

Xenial/raspi2: Ubuntu-4.4.0-1008.9 [DO NOT PULL YET!]

Message ID 20160405140952.GA18933@luxor.wired.org
State New
Headers show

Pull-request

git://git.launchpad.net/~p-pisati/ubuntu/+source/linux

Message

Paolo Pisati April 5, 2016, 2:09 p.m. UTC
This pull contains a rebase of the Xenial raspi2 branch on Ubuntu-4.4.0-17.33,
plus an update of the Broadcom/Raspberry BSP.

Among the usual slew of fixes and small improvements, the big feature of this
BSP update is a backport of the DT-Overlay configfs interface from upstream.

In other words, it is finally possible to load (and remove) a dt overlay at
runtime using configfs:

# mkdir /config
# mount -t configfs none /config
# mkdir /config/device-tree/overlays/$DTBO-NAME
# cat $DTBO-NAME.dtbo > /config/device-tree/overlays/$DTBO-NAME/dtbo

And later to remove it:

# rmdir /config/device-tree/overlays/$DTBO-NAME

This feature is intended for developer only, and sometimes loading a dtbo is a one
way journey, still it's a nice feature to have.

A side effect of this update (completely unrelated to the inclusion of
DT-Overlay configfs) is that the resulting dtb for the RaspberriPI 2/3 blows the
16kb size, making the firmware relocate it in the upper part of memory[1].

There's a way to calculate the new offset of the dtb in memory, but it's
dependent on some config options that an user can modify in config.txt[2],
so the safest upgrade path is:

1) upgrade the raspberry firmware package to a recent version that contains the
"device_tree_address" feature, so we can force a fixed memory location - i
packaged such a firmware in my ppa and named it "raspberrypi3-firmware" since it
contains this feature and add support for the Rpi3 board[3]

2) find a new memory location far from other stuff (e.g. 0x02000000 - 32MB) and
append this to config.txt:

device_tree_address=0x02000000

3) update uboot to find the dtb at the new location:

fdt_addr_r=0x02000000
...
setup=fdt addr ${fdt_addr_r}; fdt get value bootargs /chosen bootargs

4) boot the board, install this kernel and reboot

Given it requires a new firmware, some modification to the boot environment, and
some coordination from people building the Ubuntu (cc: slagansek here) and the
Snappy (cc: ogra here) image, i'm asking you to refrain pulling it until we get
an ack from all parties.

As usual, this release was tested on both my raspi2 and raspi3, and went
through continuous stress test and stress-ng.

1: https://www.raspberrypi.org/forums/viewtopic.php?p=918890#p918890

2: https://www.raspberrypi.org/forums/viewtopic.php?p=919094&sid=d60032550dd2a0f46cf4d7eb83b32a58#p919094

3: https://launchpad.net/~p-pisati/+archive/ubuntu/embedded/+files/raspberrypi3-firmware_4.1.19-a192a05-2_armhf.deb

The following changes since commit 8695f7dd983ae14471122cc81a053f45d3e53f4e:

  UBUNTU: Ubuntu-4.4.0-1007.8 (2016-04-05 10:40:18 +0200)

are available in the git repository at:

  git://git.launchpad.net/~p-pisati/ubuntu/+source/linux 

for you to fetch changes up to af10eaac9eaf6e9332af26701c2c241bfea0d95c:

  UBUNTU: Ubuntu-4.4.0-1008.9 (2016-04-05 10:58:25 +0200)

----------------------------------------------------------------
Cheong2K (1):
      brcm: adds support for BCM43341 wifi

Daniel Borkmann (2):
      net, sched: add skb_at_tc_ingress helper
      bpf: add skb_postpush_rcsum and fix dev_forward_skb occasions

Dave Stevenson (2):
      DT: Add overlays to configure I2C pins
      Add configs and overlay for PCA9548 I2C mux

Dhiraj Goel (1):
      bcm2835-camera: fix a bug in computation of frame timestamp

DigitalDreamtime (1):
      Remove I2S config from bt_pins.

Eric Anholt (7):
      drm/vc4: Add a debugfs node for tracking execution state.
      drm/vc4: Include vc4_drm.h in uapi in downstream build.
      drm/vc4: Validate that WAIT_BO padding is cleared.
      drm/vc4: Fix the clear color for the first tile rendered.
      drm/vc4: Return an ERR_PTR from BO creation instead of NULL.
      drm/vc4: Fix -ERESTARTSYS error return from BO waits.
      drm/vc4: Drop error message on seqno wait timeouts.

Linus Lüssing (1):
      net: fix bridge multicast packet checksum validation

Matthias Reichl (1):
      scripts/dtc: Fix UMR causing corrupt dtbo overlay files

Michael Heimpold (1):
      Add overlay and enable support for QCA7000 board

Nicolas Boullis (1):
      BCM270X_DT: Add DS1339 to i2c-rtc overlay

P33M (1):
      dwc_otg: Don't free qh align buffers in atomic context

Pantelis Antoniou (2):
      configfs: implement binary attributes
      OF: DT-Overlay configfs interface

Paolo Pisati (3):
      UBUNTU: [Config] OF_CONFIGFS=y
      UBUNTU: Start new release
      UBUNTU: Ubuntu-4.4.0-1008.9

Phil Elwell (38):
      BCM270X_DT: Add pi3-miniuart-bt DT overlay
      Pi3 DT: Add dtparams for the SD interface
      vchiq_arm: Tweak the logging output
      bcm2835-sdhost: Only claim one DMA channel
      bcm2835-mmc: Only claim one DMA channel
      Pi3 DT: Add pull-ups on the UART RX lines
      brcmfmac: Disable power management
      BCM270X_DT: rpi-display overlay - add swapxy param
      Revert "scripts/dtc: Add overlay support"
      scripts/dtc: Update to upstream version 1.4.1
      Protect __release_resource against resources without parents
      BCM270X_DT: Add a .dtbo target, use for overlays
      scripts/knlinfo: Decode DDTK atom
      Enable Dynamic Device Tree for bcmrpi_defconfig and bcm2709_defconfig
      SQUASH: Add CONFIG_OF_CONFIGFS to bcmrpi_defconfig
      dts, kbuild: dtbs_install installs .dtbo files too
      bcm2835-sdhost: Workaround for "slow" sectors
      BCM270X_DT: Add labels to spidev nodes
      BCM270X_DT: Use spidev labels in overlays
      BCM270X_DT: Build and document the wittypi overlay
      BCM270X_DT: Add dtparam for uart1
      serial: Take care starting a hung-up tty's port
      pi3-miniuart-bt-overlay: Correct and clarify info
      pwm overlays: Params must have in-overlay targets
      BCM270X_DT: Switch Compute Module to MMC
      BCM270X_DT: Remove explicit claiming of UART pins
      vchiq_arm: Access the dequeue_pending flag locked
      BCM270X_DT: Add pi3-act-led overlay
      vchiq_arm: Service callbacks must not fail
      copy_from_user: CPU_SW_DOMAIN_PAN compatibility
      bcm2835-sdhost: Adjust to core clock changes
      BCM270X_DT: Document hazards of sdhost overlay
      cpufreq: Temporarily ignore io_is_busy=1
      Revert "cpufreq: Temporarily ignore io_is_busy=1"
      bcm2835-sdhost: Precalc divisors and overclocks
      Revert "bcm2835-sdhost: Precalc divisors and overclocks"
      Revert "bcm2835-sdhost: Adjust to core clock changes"
      bcm2835-sdhost: Firmware manages the clock divisor

Przemek Rudy (1):
      dwc-overlay: Use label so overrides can apply.

Rodrigo Freire (1):
      lirc_rpi: Lower IR reception error to debug

campag (1):
      BCM270X_DT: Add 1-bit SDIO using minimal pins...

popcornmix (4):
      config: rebuild with savedefconfig
      config: Add module for mcp3422 ADC
      dwc_otg: Enable the hack for Split Interrupt transactions by default
      Revert "Revert "cpufreq: Temporarily ignore io_is_busy=1""

 Documentation/devicetree/configfs-overlays.txt     |   31 +
 Documentation/filesystems/configfs/configfs.txt    |   57 +-
 arch/arm/boot/.gitignore                           |    2 +-
 arch/arm/boot/dts/bcm2708-rpi-b-plus.dts           |    5 +-
 arch/arm/boot/dts/bcm2708-rpi-b.dts                |    5 +-
 arch/arm/boot/dts/bcm2708-rpi-cm.dts               |    5 +-
 arch/arm/boot/dts/bcm2708-rpi-cm.dtsi              |   17 +-
 arch/arm/boot/dts/bcm2708_common.dtsi              |   10 +-
 arch/arm/boot/dts/bcm2709-rpi-2-b.dts              |    5 +-
 arch/arm/boot/dts/bcm2710-rpi-3-b.dts              |   23 +-
 arch/arm/boot/dts/overlays/Makefile                |  136 +-
 arch/arm/boot/dts/overlays/README                  |  110 +-
 arch/arm/boot/dts/overlays/ads7846-overlay.dts     |   22 +-
 arch/arm/boot/dts/overlays/at86rf233-overlay.dts   |   11 +-
 arch/arm/boot/dts/overlays/dwc2-overlay.dts        |   10 +-
 arch/arm/boot/dts/overlays/enc28j60-overlay.dts    |   11 +-
 arch/arm/boot/dts/overlays/hy28a-overlay.dts       |   22 +-
 arch/arm/boot/dts/overlays/hy28b-overlay.dts       |   22 +-
 .../boot/dts/overlays/i2c-mux-pca9548a-overlay.dts |   67 +
 arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts     |    8 +
 .../arm/boot/dts/overlays/i2c0-bcm2708-overlay.dts |   36 +
 .../arm/boot/dts/overlays/i2c1-bcm2708-overlay.dts |   37 +
 .../arm/boot/dts/overlays/mcp2515-can0-overlay.dts |   16 +-
 .../arm/boot/dts/overlays/mcp2515-can1-overlay.dts |   16 +-
 arch/arm/boot/dts/overlays/mz61581-overlay.dts     |   22 +-
 arch/arm/boot/dts/overlays/pi3-act-led-overlay.dts |   27 +
 .../boot/dts/overlays/pi3-disable-bt-overlay.dts   |   10 +-
 .../boot/dts/overlays/pi3-miniuart-bt-overlay.dts  |   64 +
 arch/arm/boot/dts/overlays/piscreen-overlay.dts    |   22 +-
 arch/arm/boot/dts/overlays/piscreen2r-overlay.dts  |   22 +-
 .../dts/overlays/pitft28-capacitive-overlay.dts    |   17 +-
 .../dts/overlays/pitft28-resistive-overlay.dts     |   24 +-
 arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts   |    9 +-
 arch/arm/boot/dts/overlays/pwm-overlay.dts         |    9 +-
 arch/arm/boot/dts/overlays/qca7000-overlay.dts     |   52 +
 arch/arm/boot/dts/overlays/rpi-display-overlay.dts |   23 +-
 arch/arm/boot/dts/overlays/sdio-1bit-overlay.dts   |   36 +
 arch/arm/boot/dts/overlays/tinylcd35-overlay.dts   |   28 +-
 arch/arm/boot/dts/overlays/wittypi-overlay.dts     |    2 +-
 arch/arm/configs/bcm2709_defconfig                 |    9 +-
 arch/arm/configs/bcmrpi_defconfig                  |    6 +-
 arch/arm/lib/uaccess_with_memcpy.c                 |   14 +-
 debian.raspi2/abi/4.4.0-1006.7/abiname             |    1 -
 debian.raspi2/abi/4.4.0-1007.8/abiname             |    1 +
 .../{4.4.0-1006.7 => 4.4.0-1007.8}/armhf/ignore    |    0
 .../armhf/ignore.modules                           |    0
 debian.raspi2/changelog                            |   75 +
 debian.raspi2/config/config.common.ubuntu          |    2 +-
 drivers/cpufreq/cpufreq_ondemand.c                 |    7 +-
 drivers/gpu/drm/vc4/vc4_bo.c                       |   23 +-
 drivers/gpu/drm/vc4/vc4_debugfs.c                  |    1 +
 drivers/gpu/drm/vc4/vc4_drv.h                      |    1 +
 drivers/gpu/drm/vc4/vc4_gem.c                      |   28 +-
 drivers/gpu/drm/vc4/vc4_irq.c                      |    2 +-
 drivers/gpu/drm/vc4/vc4_render_cl.c                |   22 +-
 drivers/gpu/drm/vc4/vc4_validate.c                 |    4 +-
 drivers/media/platform/bcm2835/bcm2835-camera.c    |    3 +-
 .../vc04_services/interface/vchiq_arm/vchiq_arm.c  |   19 +-
 .../vc04_services/interface/vchiq_arm/vchiq_core.c |   31 +-
 drivers/mmc/host/bcm2835-mmc.c                     |   69 +-
 drivers/mmc/host/bcm2835-sdhost.c                  |  240 ++-
 drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c |    2 +
 drivers/net/wireless/brcm80211/brcmfmac/sdio.c     |    5 +
 .../net/wireless/brcm80211/include/brcm_hw_ids.h   |    1 +
 drivers/of/Kconfig                                 |    7 +
 drivers/of/Makefile                                |    1 +
 drivers/of/configfs.c                              |  314 ++++
 drivers/staging/media/lirc/lirc_rpi.c              |    2 +-
 drivers/usb/host/dwc_otg/dwc_otg_driver.c          |    2 +-
 drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c       |    9 +-
 fs/configfs/configfs_internal.h                    |   14 +-
 fs/configfs/dir.c                                  |   18 +-
 fs/configfs/file.c                                 |  255 ++-
 fs/configfs/inode.c                                |    2 +-
 include/linux/configfs.h                           |   50 +
 include/linux/serial_core.h                        |    2 +-
 include/linux/skbuff.h                             |   17 +
 include/net/sch_generic.h                          |    9 +
 include/soc/bcm2835/raspberrypi-firmware.h         |    1 +
 include/uapi/drm/Kbuild                            |    1 +
 kernel/resource.c                                  |    6 +
 net/core/filter.c                                  |   17 +-
 net/core/skbuff.c                                  |   22 +-
 net/sched/cls_bpf.c                                |    6 +-
 scripts/Makefile.dtbinst                           |   10 +-
 scripts/Makefile.lib                               |   10 +
 scripts/dtc/checks.c                               |   69 +-
 scripts/dtc/dtc-parser.tab.c_shipped               | 1646 +++++++++-----------
 scripts/dtc/dtc-parser.tab.h_shipped               |  109 +-
 scripts/dtc/dtc-parser.y                           |    7 +-
 scripts/dtc/dtc.c                                  |    6 +-
 scripts/dtc/dtc.h                                  |    8 +-
 scripts/dtc/flattree.c                             |  309 ++--
 scripts/dtc/version_gen.h                          |    2 +-
 scripts/knlinfo                                    |    3 +-
 95 files changed, 2978 insertions(+), 1573 deletions(-)
 create mode 100644 Documentation/devicetree/configfs-overlays.txt
 create mode 100644 arch/arm/boot/dts/overlays/i2c-mux-pca9548a-overlay.dts
 create mode 100644 arch/arm/boot/dts/overlays/i2c0-bcm2708-overlay.dts
 create mode 100644 arch/arm/boot/dts/overlays/i2c1-bcm2708-overlay.dts
 create mode 100644 arch/arm/boot/dts/overlays/pi3-act-led-overlay.dts
 create mode 100644 arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts
 create mode 100644 arch/arm/boot/dts/overlays/qca7000-overlay.dts
 create mode 100644 arch/arm/boot/dts/overlays/sdio-1bit-overlay.dts
 delete mode 100644 debian.raspi2/abi/4.4.0-1006.7/abiname
 create mode 100644 debian.raspi2/abi/4.4.0-1007.8/abiname
 rename debian.raspi2/abi/{4.4.0-1006.7 => 4.4.0-1007.8}/armhf/ignore (100%)
 rename debian.raspi2/abi/{4.4.0-1006.7 => 4.4.0-1007.8}/armhf/ignore.modules (100%)
 create mode 100644 drivers/of/configfs.c