Skip to content

Instantly share code, notes, and snippets.

@alanyih
Created December 12, 2013 14:27
Show Gist options
  • Save alanyih/7928712 to your computer and use it in GitHub Desktop.
Save alanyih/7928712 to your computer and use it in GitHub Desktop.

Revisions

  1. alanyih created this gist Dec 12, 2013.
    94 changes: 94 additions & 0 deletions Device Tree port
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,94 @@
    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