-
Notifications
You must be signed in to change notification settings - Fork 24
Upstreaming
Recently there has been a focused effort to lay the ground work for a future switch from ARCH_BCM2708 to ARCH_BCM2835. This document has been updated to reflect the current status of using ARCH_BCM2835 downstream.
The official Raspberry Pi kernels support dual booting with Device Tree and with ATAGS. The bootloader inspects the kernel image for a trailing tag to determine if it should boot with Device Tree (mkknlimg). This can be overridden in /boot/config.txt.
So a switch to ARCH_BCM2835 necessitates dropping ATAGS support (no roadmap is known).
From 4.2 ARCH_BCM2835 should be functionally equivalent to ARCH_BCM2708.
Another status page: http://elinux.org/RPi_Upstreaming
The boot loader can now boot ARCH_BCM2835 directly. The kernel has to be tagged with the mkknlimg utility.
bcm2835_defconfig has been changed to match the options in bcmrpi_defconfig.
Mainline: bcm2835-dma
Downstream: bcm2708_dma
bcm2708-dmaengine has to be used for 2 reasons:
- bcm2708_fb needs the legacy DMA API for DMA memcpy.
- bcm2835-dma is missing slave_sg support needed by the mmc driver: [PATCH v2] dmaengine: bcm2835: Add slave dma support
Mainline: bcm2835-mailbox
Acked patch: dt/bindings: Add binding for the Raspberry Pi firmware driver
Downstream: raspberrypi-firmware
Provides an API to access the mailbox property channel.
This driver has a downstream patch to turn on USB power.
Downstream: bcm2835_thermal
Depends on the firmware API.
Downstream: bcm2835-cpufreq
Depends on the firmware API.
Downstream: rpi-ft5406
Depends on the firmware API.
Mainline: sdhci-bcm2835
Downstream: bcm2835-mmc
bcm2835-mmc has increased throughput.
Mainline: simplefb
Downstream: bcm2708_fb
Depends on the firmware API.
Downstream: vchiq
Kernel to VideoCore communication interface.
Depends on the firmware API.
Downstream: sound/arm/bcm2835.c
Depends on vchiq.
Mainline: dwc2
Downstream: dwc_otg
The downstream driver uses FIQ resulting in increased performance.
Downstream: lirc_rpi
Homebrew GPIO Port Receiver/Transmitter for the RaspberryPi
Downstream: vc-mem
Helper for videocore memory access and total size allocation.
Example:
$ sudo vcdbg log msg 2>&1 | grep Loading
000913.584: Loading 'kernel.img' from SD card
Downstream: vc_cma
Helper for videocore CMA access.
Downstream: vc-sm
Support for the VC shared memory on the Broadcom reference design. Uses the VCHIQ stack.
Currently poweroff/halt leads to reboot.
The restart/poweroff code is being moved to the watchdog driver (linux-next): ARM: bcm2835: Move the restart/power_off handling to the WDT driver
This acked patch fixes the poweroff problem: [PATCH v3] watchdog: bcm2835: Fix poweroff behaviour
Downstream commit: ARM: bcm2835: Set Serial number and Revision
Several Pi specific applications depend on the Revision and Serial numbers in /proc/cpuinfo:
$ cat /proc/cpuinfo
Revision : 000e
Serial : 000000004939788f
Mainline: pinctrl-bcm2835
Downstream patches:
- pinctrl-bcm2835: bcm2835_gpio_direction_output must set the value
- pinctrl-bcm2835: Fix interrupt handling for GPIOs 28-31 and 46-53
- pinctrl-bcm2835: Only request the interrupts listed in the DTB
Mainline: spi-bcm2835
Mainline: i2c-bcm2835
Mainline: bcm2835-i2s
Various downstream audio cards: https://github.com/raspberrypi/linux/tree/rpi-4.2.y/sound/soc/bcm