On Thu, May 5, 2011 at 11:02 AM, David Daney <firstname.lastname@example.org> wrote:
> After several weeks of fire fighting, I am back to my Octeon device
> tree patches.
> New in v3:
> More updates to device tree bindings, and perhaps more importantly
> descriptions/definitions of the bindings
> libfdt building moved to devices/of/libfdt.
> Cleanup and style improvements as suggested by Grant Likley.
> Omitted all the driver changes, as they are unchanged from the last
> set, and at this stage the patches are just an RFC.
> New in v2:
> Changed many device tree bindings. They should be closer to the
> standard naming scheme now.
> Editing of the template device tree is done in the flattened form
> using libfdt.
> Standard platform driver functions used in preference to the
> of_platform variety.
> Background: The Octeon family of SOCs has a variety of on-chip
> controllers for Ethernet, MDIO, I2C, and several other I/O devices.
> These chips are used on boards with a great variety of different
> configurations. To date, the configuration and bus topology
> information has been hard coded in the drivers and support code.
> To facilitate supporting new chips and boards, we would like to make
> use use the Device Tree to encode the configuration information.
> I would like to get some feedback on the current code I am working
> with. The migration approach is as follows:
> o Several device tree templates are statically linked into the kernel
> image. Based on SOC type and board type one of these is selected in
> early boot. Legacy configuration probing code is used to prune and
> patch the device tree template.
> o New SOCs and boards will directly use a device tree passed by the
> bootloader (This patch set doesn't actually implement this, but it
> is trivial to add).
> 1/6 - Infrastructure to allow scripts/dtc/libfdt to be used in the
> 2/6 - OF patch to simplify of_find_node_by_path().
> 3/6 - Add the statically linked Device Tree templates and bindings
> 4/6 - Remove unused arch/mips/prom.c code that conflicts with
> following patches.
> 5/6 - irq_create_of_mapping() function.
> 6/6 - Fix up Device Tree template for current environment.
> David Daney (6):
> of: Allow scripts/dtc/libfdt to be used from kernel code
> of: Make of_find_node_by_path() traverse /aliases for relative paths.
> MIPS: Octeon: Add device tree source files.
> MIPS: Prune some target specific code out of prom.c
> MIPS: Octeon: Add irq_create_of_mapping() and GPIO interrupts.
> MIPS: Octeon: Initialize and fixup device tree.
> .../devicetree/bindings/mips/cavium/bootbus.txt | 37 ++
> .../devicetree/bindings/mips/cavium/ciu.txt | 26 ++
> .../devicetree/bindings/mips/cavium/gpio.txt | 48 +++
> .../devicetree/bindings/mips/cavium/mdio.txt | 27 ++
> .../devicetree/bindings/mips/cavium/mix.txt | 40 ++
> .../devicetree/bindings/mips/cavium/pip.txt | 98 +++++
> .../devicetree/bindings/mips/cavium/twsi.txt | 34 ++
> .../devicetree/bindings/mips/cavium/uart.txt | 19 +
> .../devicetree/bindings/mips/cavium/uctl.txt | 47 +++
> arch/mips/Kconfig | 1 +
> arch/mips/cavium-octeon/.gitignore | 2 +
> arch/mips/cavium-octeon/Makefile | 15 +
> arch/mips/cavium-octeon/octeon-irq.c | 183 ++++++++-
> arch/mips/cavium-octeon/octeon-platform.c | 295 +++++++++++++
> arch/mips/cavium-octeon/octeon_3xxx.dts | 431
> arch/mips/cavium-octeon/setup.c | 17 +
> arch/mips/kernel/prom.c | 49 ---
> drivers/of/Kconfig | 3 +
> drivers/of/Makefile | 2 +
> drivers/of/base.c | 41 ++-
> drivers/of/libfdt/Makefile | 8 +
Out of curiosity, how big are the compiled libfdt object files?
> include/linux/libfdt.h | 8 +
> include/linux/libfdt_env.h | 13 +
> 23 files changed, 1393 insertions(+), 51 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/mips/cavium/bootbus.txt
> create mode 100644 Documentation/devicetree/bindings/mips/cavium/ciu.txt
> create mode 100644 Documentation/devicetree/bindings/mips/cavium/gpio.txt
> create mode 100644 Documentation/devicetree/bindings/mips/cavium/mdio.txt
> create mode 100644 Documentation/devicetree/bindings/mips/cavium/mix.txt
> create mode 100644 Documentation/devicetree/bindings/mips/cavium/pip.txt
> create mode 100644 Documentation/devicetree/bindings/mips/cavium/twsi.txt
> create mode 100644 Documentation/devicetree/bindings/mips/cavium/uart.txt
> create mode 100644 Documentation/devicetree/bindings/mips/cavium/uctl.txt
> create mode 100644 arch/mips/cavium-octeon/.gitignore
> create mode 100644 arch/mips/cavium-octeon/octeon_3xxx.dts
> create mode 100644 drivers/of/libfdt/Makefile
> create mode 100644 include/linux/libfdt.h
> create mode 100644 include/linux/libfdt_env.h
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.