diff options
| -rw-r--r-- | Documentation/powerpc/booting-without-of.txt | 39 | ||||
| -rw-r--r-- | arch/powerpc/sysdev/Makefile | 1 | ||||
| -rw-r--r-- | arch/powerpc/sysdev/rom.c | 31 |
3 files changed, 71 insertions, 0 deletions
diff --git a/Documentation/powerpc/booting-without-of.txt b/Documentation/powerpc/booting-without-of.txt index 4ac2d641fcb6..b3bd36668db3 100644 --- a/Documentation/powerpc/booting-without-of.txt +++ b/Documentation/powerpc/booting-without-of.txt | |||
| @@ -6,6 +6,8 @@ | |||
| 6 | IBM Corp. | 6 | IBM Corp. |
| 7 | (c) 2005 Becky Bruce <becky.bruce at freescale.com>, | 7 | (c) 2005 Becky Bruce <becky.bruce at freescale.com>, |
| 8 | Freescale Semiconductor, FSL SOC and 32-bit additions | 8 | Freescale Semiconductor, FSL SOC and 32-bit additions |
| 9 | (c) 2006 MontaVista Software, Inc. | ||
| 10 | Flash chip node definition | ||
| 9 | 11 | ||
| 10 | May 18, 2005: Rev 0.1 - Initial draft, no chapter III yet. | 12 | May 18, 2005: Rev 0.1 - Initial draft, no chapter III yet. |
| 11 | 13 | ||
| @@ -1693,6 +1695,43 @@ platforms are moved over to use the flattened-device-tree model. | |||
| 1693 | }; | 1695 | }; |
| 1694 | }; | 1696 | }; |
| 1695 | 1697 | ||
| 1698 | g) Flash chip nodes | ||
| 1699 | |||
| 1700 | Flash chips (Memory Technology Devices) are often used for solid state | ||
| 1701 | file systems on embedded devices. | ||
| 1702 | |||
| 1703 | Required properties: | ||
| 1704 | |||
| 1705 | - device_type : has to be "rom" | ||
| 1706 | - compatible : Should specify what this ROM device is compatible with | ||
| 1707 | (i.e. "onenand"). Currently, this is most likely to be "direct-mapped" | ||
| 1708 | (which corresponds to the MTD physmap mapping driver). | ||
| 1709 | - regs : Offset and length of the register set (or memory mapping) for | ||
| 1710 | the device. | ||
| 1711 | |||
| 1712 | Recommended properties : | ||
| 1713 | |||
| 1714 | - bank-width : Width of the flash data bus in bytes. Required | ||
| 1715 | for the NOR flashes (compatible == "direct-mapped" and others) ONLY. | ||
| 1716 | - partitions : Several pairs of 32-bit values where the first value is | ||
| 1717 | partition's offset from the start of the device and the second one is | ||
| 1718 | partition size in bytes with LSB used to signify a read only | ||
| 1719 | partititon (so, the parition size should always be an even number). | ||
| 1720 | - partition-names : The list of concatenated zero terminated strings | ||
| 1721 | representing the partition names. | ||
| 1722 | |||
| 1723 | Example: | ||
| 1724 | |||
| 1725 | flash@ff000000 { | ||
| 1726 | device_type = "rom"; | ||
| 1727 | compatible = "direct-mapped"; | ||
| 1728 | regs = <ff000000 01000000>; | ||
| 1729 | bank-width = <4>; | ||
| 1730 | partitions = <00000000 00f80000 | ||
| 1731 | 00f80000 00080001>; | ||
| 1732 | partition-names = "fs\0firmware"; | ||
| 1733 | }; | ||
| 1734 | |||
| 1696 | More devices will be defined as this spec matures. | 1735 | More devices will be defined as this spec matures. |
| 1697 | 1736 | ||
| 1698 | 1737 | ||
diff --git a/arch/powerpc/sysdev/Makefile b/arch/powerpc/sysdev/Makefile index bae874626fc3..ee7c6d48af7f 100644 --- a/arch/powerpc/sysdev/Makefile +++ b/arch/powerpc/sysdev/Makefile | |||
| @@ -11,6 +11,7 @@ obj-$(CONFIG_MMIO_NVRAM) += mmio_nvram.o | |||
| 11 | obj-$(CONFIG_FSL_SOC) += fsl_soc.o | 11 | obj-$(CONFIG_FSL_SOC) += fsl_soc.o |
| 12 | obj-$(CONFIG_TSI108_BRIDGE) += tsi108_pci.o tsi108_dev.o | 12 | obj-$(CONFIG_TSI108_BRIDGE) += tsi108_pci.o tsi108_dev.o |
| 13 | obj-$(CONFIG_QUICC_ENGINE) += qe_lib/ | 13 | obj-$(CONFIG_QUICC_ENGINE) += qe_lib/ |
| 14 | obj-$(CONFIG_MTD) += rom.o | ||
| 14 | 15 | ||
| 15 | ifeq ($(CONFIG_PPC_MERGE),y) | 16 | ifeq ($(CONFIG_PPC_MERGE),y) |
| 16 | obj-$(CONFIG_PPC_I8259) += i8259.o | 17 | obj-$(CONFIG_PPC_I8259) += i8259.o |
diff --git a/arch/powerpc/sysdev/rom.c b/arch/powerpc/sysdev/rom.c new file mode 100644 index 000000000000..bf5b3f10e6c6 --- /dev/null +++ b/arch/powerpc/sysdev/rom.c | |||
| @@ -0,0 +1,31 @@ | |||
| 1 | /* | ||
| 2 | * ROM device registration | ||
| 3 | * | ||
| 4 | * (C) 2006 MontaVista Software, Inc. This file is licensed under | ||
| 5 | * the terms of the GNU General Public License version 2. This program | ||
| 6 | * is licensed "as is" without any warranty of any kind, whether express | ||
| 7 | * or implied. | ||
| 8 | */ | ||
| 9 | |||
| 10 | #include <linux/kernel.h> | ||
| 11 | #include <asm/of_device.h> | ||
| 12 | |||
| 13 | static int __init powerpc_flash_init(void) | ||
| 14 | { | ||
| 15 | struct device_node *node = NULL; | ||
| 16 | |||
| 17 | /* | ||
| 18 | * Register all the devices which type is "rom" | ||
| 19 | */ | ||
| 20 | while ((node = of_find_node_by_type(node, "rom")) != NULL) { | ||
| 21 | if (node->name == NULL) { | ||
| 22 | printk(KERN_WARNING "powerpc_flash_init: found 'rom' " | ||
| 23 | "device, but with no name, skipping...\n"); | ||
| 24 | continue; | ||
| 25 | } | ||
| 26 | of_platform_device_create(node, node->name, NULL); | ||
| 27 | } | ||
| 28 | return 0; | ||
| 29 | } | ||
| 30 | |||
| 31 | arch_initcall(powerpc_flash_init); | ||
