linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] powerpc: Add of_platform support for ROM devices
@ 2006-11-20 13:32 Vitaly Wool
  2006-11-20 15:48 ` Hollis Blanchard
  2006-11-21 17:22 ` David Woodhouse
  0 siblings, 2 replies; 3+ messages in thread
From: Vitaly Wool @ 2006-11-20 13:32 UTC (permalink / raw)
  To: galak; +Cc: linuxppc-dev, linuxppc-embedded

Hello folks,

inlined below is the patch which adds support for flash device descriptions to the OF device tree. It's inspired by and partially borrowed from Sergei's patch which can be found at http://patchwork.ozlabs.org/linuxppc/patch?id=6526 but arranges things in a different way.
This patch is a respin of the patch which can be found at http://ozlabs.org/pipermail/linuxppc-embedded/2006-November/025013.html with comments from Sergei and Josh taken into account and with "compatible" property changed to "direct-mapped" from "physmap" not to be Linux-biased, and some additional cleanups in booting-without-of.txt.

 Documentation/powerpc/booting-without-of.txt |   39 +++++++++++++++++++++++++++
 arch/powerpc/sysdev/Makefile                 |    1 
 arch/powerpc/sysdev/rom.c                    |   31 +++++++++++++++++++++
 3 files changed, 71 insertions(+)
 
Signed-off-by: Vitaly Wool <vwool@ru.mvista.com>
Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>

Index: powerpc/Documentation/powerpc/booting-without-of.txt
===================================================================
--- powerpc.orig/Documentation/powerpc/booting-without-of.txt
+++ powerpc/Documentation/powerpc/booting-without-of.txt
@@ -6,6 +6,8 @@
     IBM Corp.
 (c) 2005 Becky Bruce <becky.bruce at freescale.com>,
     Freescale Semiconductor, FSL SOC and 32-bit additions
+(c) 2006 MontaVista Software, Inc.
+    Flash chip node definition
 
    May 18, 2005: Rev 0.1 - Initial draft, no chapter III yet.
 
@@ -1693,6 +1695,43 @@ platforms are moved over to use the flat
 		};
 	};
 
+    g) Flash chip nodes
+
+    Flash chips (Memory Technology Devices) are often used for solid state
+    file systems on embedded devices.
+
+    Required properties:
+
+     - device_type : has to be "rom"
+     - compatible : Should specify what this ROM device is compatible with
+       (i.e. "onenand"). Currently, this is most likely to be "direct-mapped"
+       (which corresponds to the MTD physmap mapping driver).
+     - regs : Offset and length of the register set (or memory mapping) for
+       the device.
+
+    Recommended properties :
+
+     - bank-width : Width of the flash data bus in bytes. Required
+       for the NOR flashes (compatible == "direct-mapped" and others) ONLY.
+     - partitions : Several pairs of 32-bit values where the first value is
+       partition's offset from the start of the device and the second one is
+       partition size in bytes with LSB used to signify a read only
+       partititon (so, the parition size should always be an even number).
+     - partition-names : The list of concatenated zero terminated strings
+       representing the partition names.
+
+   Example:
+
+ 	flash@ff000000 {
+ 		device_type = "rom";
+ 		compatible = "direct-mapped";
+ 		regs = <ff000000 01000000>;
+ 		bank-width = <4>;
+ 		partitions = <00000000 00f80000
+ 			      00f80000 00080001>;
+ 		partition-names = "fs\0firmware";
+ 	};
+
    More devices will be defined as this spec matures.
 
 
Index: powerpc/arch/powerpc/sysdev/Makefile
===================================================================
--- powerpc.orig/arch/powerpc/sysdev/Makefile
+++ powerpc/arch/powerpc/sysdev/Makefile
@@ -12,6 +12,7 @@ obj-$(CONFIG_FSL_SOC)		+= fsl_soc.o
 obj-$(CONFIG_TSI108_BRIDGE)	+= tsi108_pci.o tsi108_dev.o
 obj-$(CONFIG_QUICC_ENGINE)	+= qe_lib/
 obj-$(CONFIG_PPC_MPC52xx)	+= mpc52xx_pic.o
+obj-$(CONFIG_MTD)		+= rom.o
 
 ifeq ($(CONFIG_PPC_MERGE),y)
 obj-$(CONFIG_PPC_I8259)		+= i8259.o
Index: powerpc/arch/powerpc/sysdev/rom.c
===================================================================
--- /dev/null
+++ powerpc/arch/powerpc/sysdev/rom.c
@@ -0,0 +1,31 @@
+/*
+ * ROM device registration
+ *
+ * (C) 2006 MontaVista Software, Inc. This file is licensed under
+ * the terms of the GNU General Public License version 2. This program
+ * is licensed "as is" without any warranty of any kind, whether express
+ * or implied.
+ */
+
+#include <linux/kernel.h>
+#include <asm/of_device.h>
+
+static int __init powerpc_flash_init(void)
+{
+	struct device_node *node = NULL;
+
+	/*
+	 * Register all the devices which type is "rom"
+	 */
+	while ((node = of_find_node_by_type(node, "rom")) != NULL) {
+		if (node->name == NULL) {
+			printk(KERN_WARNING "powerpc_flash_init: found 'rom' "
+				"device, but with no name, skipping...\n");
+			continue;
+		}
+		of_platform_device_create(node, node->name, NULL);
+	}
+	return 0;
+}
+
+arch_initcall(powerpc_flash_init);

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] powerpc: Add of_platform support for ROM devices
  2006-11-20 13:32 [PATCH] powerpc: Add of_platform support for ROM devices Vitaly Wool
@ 2006-11-20 15:48 ` Hollis Blanchard
  2006-11-21 17:22 ` David Woodhouse
  1 sibling, 0 replies; 3+ messages in thread
From: Hollis Blanchard @ 2006-11-20 15:48 UTC (permalink / raw)
  To: Vitaly Wool; +Cc: linuxppc-dev, linuxppc-embedded

On Mon, 2006-11-20 at 16:32 +0300, Vitaly Wool wrote:
> +
> +    Required properties:
> +
> +     - device_type : has to be "rom"
> +     - compatible : Should specify what this ROM device is compatible with
> +       (i.e. "onenand"). Currently, this is most likely to be "direct-mapped"
> +       (which corresponds to the MTD physmap mapping driver).
> +     - regs : Offset and length of the register set (or memory mapping) for
> +       the device.
> +
> +    Recommended properties :
> +
> +     - bank-width : Width of the flash data bus in bytes. Required
> +       for the NOR flashes (compatible == "direct-mapped" and others) ONLY.

Maybe you should put this in the Required section then, with a note that
it's only Recommended for non-NOR flashes. I can easily imagine somebody
ignoring every Recommendation section and missing this requirement.

> +     - partitions : Several pairs of 32-bit values where the first value is
> +       partition's offset from the start of the device and the second one is
> +       partition size in bytes with LSB used to signify a read only
> +       partititon (so, the parition size should always be an even number).

^^^ "partition" misspelled, twice. :)

-Hollis

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] powerpc: Add of_platform support for ROM devices
  2006-11-20 13:32 [PATCH] powerpc: Add of_platform support for ROM devices Vitaly Wool
  2006-11-20 15:48 ` Hollis Blanchard
@ 2006-11-21 17:22 ` David Woodhouse
  1 sibling, 0 replies; 3+ messages in thread
From: David Woodhouse @ 2006-11-21 17:22 UTC (permalink / raw)
  To: Vitaly Wool; +Cc: linuxppc-dev, linuxppc-embedded

On Mon, 2006-11-20 at 16:32 +0300, Vitaly Wool wrote:
> +
> +     - device_type : has to be "rom"
> +     - compatible : Should specify what this ROM device is compatible with
> +       (i.e. "onenand"). Currently, this is most likely to be "direct-mapped"
> +       (which corresponds to the MTD physmap mapping driver).

I don't think 'direct-mapped' is particularly necessary -- I think we
have to assume that any NOR flash device is going to be direct-mapped if
we're going to be able to represent it with this scheme.

On the other hand, we _do_ want to specify the type of chip, or at least
the type of _probe_ which should be done for it (jedec vs. cfi). And
optionally also the chip idents.

-- 
dwmw2

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2006-11-21 17:22 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-11-20 13:32 [PATCH] powerpc: Add of_platform support for ROM devices Vitaly Wool
2006-11-20 15:48 ` Hollis Blanchard
2006-11-21 17:22 ` David Woodhouse

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).