Vitaly Wool wrote:
> 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 :)
> 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 be the name of the MTD driver. Currently, this is
Erm, that first sentense is no longer true. Let's just drop it.
> + 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 MTD device and the second
Probably we need to drop references to MTD now as we changed "device_type"
to "rom".
> + 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:
> +
> + [EMAIL PROTECTED] {
> + 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,33 @@
> +/*
> + * arch/powerpc/sysdev/flash.c
> + *
> + * Flash memory registration
Er, please also update this...
> + *
> + * (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;
> + }
That's unlikely to happen, but well..
> + of_platform_device_create(node, node->name, NULL);
> + }
> + return 0;
> +}
> +
> +arch_initcall(powerpc_flash_init);
WBR, Sergei
_______________________________________________
Linuxppc-embedded mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/linuxppc-embedded