Skip to content

Instantly share code, notes, and snippets.

@alanyih
Created December 12, 2013 14:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alanyih/7928712 to your computer and use it in GitHub Desktop.
Save alanyih/7928712 to your computer and use it in GitHub Desktop.
Device Tree port
Device Tree port
https://github.com/raspberrypi/linux/wiki/Device-Tree-port
Table of Contents
Overview
Warning
Blocking
Implemented
Branches
Current
Other
TODO
Impractical
Unsuitable
Overview
The device tree branch can now be pushed upstream and usb, ethernet mac, audio, vchiq and vc-mem can be added on in a local branch for now so that everything is still working
How to Boot using Device Tree
Warning
The bcm_dma_* exports are gone - the kernel already has a DMA API
Blocking
Issue #24
The supplied usb driver has broken locking and writes beyond the areas it mallocs
The usb chip itself isn't very good
Implemented
irq handler
mmio clocksource
mmio clockevent (system timer)
sp804 (to detect and disable it)
uart0 (pl011)
watchdog
clk/clkdev (not dt)
bcm-mbox (aka vcio)
fb
video logo
bcm-bell
system_serial/system_rev/mac_address
bcm-vc-power
pinctrl
pinmux
gpio
ok-led
gpio irq
spi
i2c
dma
sdhci pio
sdhci dma
Branches
lp0/rpi-split (rebased continuously)
lp0/rpi-linear
Current
lp0/rpi-next (none)
Other
lp0/rpi-usb (my dwc2_hcd attempt)
lp0/rpi-usb2 (APM dwc otg driver)
TODO
clk/clkdev (when it gains dt support)
pinconf (for pull high/low)
spi dma
i2c dma
usb (uses bcm-vc-power, hack in the current dwc_otg code until a proper driver is merged)
ethernet mac address (tricky, some way to absolutely identify that the usb device is the board's and not from somewhere else on the bus might help)
pcm/i2s
pwm
gpio clock (the clk subsystem can be used to turn these on/off and configure them)
audio (requires vchiq)
Impractical
vchiq (aka vc04/vcos, uses bcm-mbox, bcm-bell, requires a major rewrite without breaking the ABI)
csi (hidden) :(
Unsuitable
vc-mem (this will need to use sysfs not /proc)
Last edited by 林镇国, a year ago
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment