Re: [RFC PATCH v3 0/6] MIPS: Octeon: Use Device Tree.

From: Grant Likely
Date: Thu May 05 2011 - 13:40:44 EST


On Thu, May 5, 2011 at 11:02 AM, David Daney <ddaney@xxxxxxxxxxxxxxxxxx> 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.
>
> v1:
>
> 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
>       kernel.
>
> 2/6 - OF patch to simplify of_find_node_by_path().
>
> 3/6 - Add the statically linked Device Tree templates and bindings
>      descriptions.
>
> 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
>
> --
> 1.7.2.3
>
>



--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/