[RFC PATCH v3 0/6] MIPS: Octeon: Use Device Tree.
Grant Likely
grant.likely at secretlab.ca
Fri May 6 03:40:14 EST 2011
On Thu, May 5, 2011 at 11:02 AM, David Daney <ddaney at caviumnetworks.com> 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.
More information about the devicetree-discuss
mailing list