-
Notifications
You must be signed in to change notification settings - Fork 5k
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).
raspberrypi/linux:rpi-4.0.y currently works with all drivers on ARCH_BCM2835 except dwc_otg and lirc_rpi.
Further work to close in on mainline will happen in the rpi-4.1.y branch (dwc_otg fixed).
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
Patch: dt/bindings: Add binding for the Raspberry Pi firmware driver
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
Does not work with ARCH_BCM2835 because it depends on some ARCH_BCM270x code.
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.0.y/sound/soc/bcm
Fork this repo, make your changes, then send us a pull request
One caveat. If you are making changes to upstream code (i.e. with no changes specific to Raspberry Pi devices), then it's best to submit your changes upstream, then when they are accepted, we can cherry-pick them back to our branches here.
- Shortcuts to other Raspberry Pi pages
- Official Website
- Official Forum
- Official Website Documentation
- Documentation Repository
-
Firmware Repository
- For reporting issues with the Raspberry Pi VC4/6 firmware.
-
Userland Repository
- For reporting issues with the Raspberry Pi supplied userland apps.
-
Raspbian distro Repository
- For reporting issues with the Raspbian distribution and desktop.