* [RFC][PATCH] mtd: bcm47part driver for BCM47XX chipsets
@ 2012-08-24 22:30 Rafał Miłecki
2012-08-24 22:37 ` Rafał Miłecki
2012-08-28 15:07 ` Artem Bityutskiy
0 siblings, 2 replies; 6+ messages in thread
From: Rafał Miłecki @ 2012-08-24 22:30 UTC (permalink / raw)
To: linux-mtd; +Cc: Rafał Miłecki
This driver provides parser detecting partitions on BCM47XX flash
memories. It has many differences in comparision to older BCM63XX, like:
1) Different CFE with no more trivial MAGICs
2) More partitions types (board_data, ML, POT)
3) Supporting more than 1 flash on a device
which resulted in decision of writing new parser.
It uses generic mtd interface and was successfully tested with Netgear
WNDR4500 router which has 2 flash memories: serial one and NAND one.
---
Example of scanning (from my WNDR4500):
[ 3.144000] Creating 3 MTD partitions on "bcm47sflash":
[ 3.148000] 0x000000000000-0x0000001e0000 : "boot"
[ 3.156000] 0x0000001e0000-0x0000001f0000 : "board_data"
[ 3.164000] 0x0000001f0000-0x000000200000 : "nvram"
[ 4.632000] Creating 2 MTD partitions on "NAND 128MiB 3,3V 8-bit":
[ 4.636000] 0x00000000001c-0x0000001416a4 : "linux"
[ 4.644000] 0x0000001416a4-0x0000007ba000 : "rootfs"
Right now there aren't any mainline MTD devices driver using this
parser. It was tested with out-of-tree drivers floating around (for
example on linux-wireless mailing list).
As this driver uses generic mtd interface, it should be safe to include
it in kernel without breaking anything in the future.
TODO:
1) Add support for more partitinos (ML and POT)
2) Optimize: don't scan whole flash (like up to 128 MiB)
3) Optimize: don't scan TRX partitions after detecting header
---
drivers/mtd/Kconfig | 4 +
drivers/mtd/Makefile | 1 +
drivers/mtd/bcm47part.c | 154 +++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 159 insertions(+), 0 deletions(-)
create mode 100644 drivers/mtd/bcm47part.c
diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig
index 27143e0..0cd4096 100644
--- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig
@@ -148,6 +148,10 @@ config MTD_BCM63XX_PARTS
This provides partions parsing for BCM63xx devices with CFE
bootloaders.
+config MTD_BCM47_PARTS
+ tristate "BCM47XX partitioning support"
+ depends on BCM47XX
+
comment "User Modules And Translation Layers"
config MTD_CHAR
diff --git a/drivers/mtd/Makefile b/drivers/mtd/Makefile
index f901354..dac90e6 100644
--- a/drivers/mtd/Makefile
+++ b/drivers/mtd/Makefile
@@ -12,6 +12,7 @@ obj-$(CONFIG_MTD_CMDLINE_PARTS) += cmdlinepart.o
obj-$(CONFIG_MTD_AFS_PARTS) += afs.o
obj-$(CONFIG_MTD_AR7_PARTS) += ar7part.o
obj-$(CONFIG_MTD_BCM63XX_PARTS) += bcm63xxpart.o
+obj-$(CONFIG_MTD_BCM47_PARTS) += bcm47part.o
# 'Users' - code which presents functionality to userspace.
obj-$(CONFIG_MTD_CHAR) += mtdchar.o
diff --git a/drivers/mtd/bcm47part.c b/drivers/mtd/bcm47part.c
new file mode 100644
index 0000000..cb06c52
--- /dev/null
+++ b/drivers/mtd/bcm47part.c
@@ -0,0 +1,154 @@
+/*
+ * BCM47XX MTD partitioning
+ *
+ * Copyright (C) 2012 Rafał Miłecki <zajec5@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ */
+
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/slab.h>
+#include <linux/mtd/mtd.h>
+#include <linux/mtd/partitions.h>
+#include <asm/mach-bcm47xx/nvram.h>
+
+#define BCM47PART_MAX_PARTS 12
+
+/* Amount of bytes we read when analyzing each block of flash memory.
+ * Set it big enough to allow detecting partition and reading important data. */
+#define BCM47PART_BYTES_TO_READ 0x401
+
+#define TRX_MAGIC 0x30524448
+
+struct trx_header {
+ u32 magic;
+ u32 length;
+ u32 crc32;
+ u16 flags;
+ u16 version;
+ u32 offset[3];
+} __packed;
+
+static int bcm47part_parse(struct mtd_info *master,
+ struct mtd_partition **pparts,
+ struct mtd_part_parser_data *data)
+{
+ struct mtd_partition *parts;
+ u8 i, curr_part = 0;
+ u8 *buf;
+ u32 *fourcc;
+ size_t bytes_read;
+ u32 offset;
+ u32 blocksize = 0x10000;
+ struct trx_header *trx;
+
+ /* Alloc */
+ parts = kzalloc(sizeof(struct mtd_partition) * BCM47PART_MAX_PARTS,
+ GFP_KERNEL);
+ buf = kzalloc(sizeof(*buf) * BCM47PART_BYTES_TO_READ, GFP_KERNEL);
+
+ /* Parse block by block looking for magics */
+ for (offset = 0; offset <= master->size - blocksize;
+ offset += blocksize) {
+ if (mtd_read(master, offset, BCM47PART_BYTES_TO_READ,
+ &bytes_read, buf) < 0) {
+ pr_err("mtd_read error while parsing (offset: 0x%X)!\n",
+ offset);
+ continue;
+ }
+
+ /* CFE has small NVRAM at 0x400 */
+ fourcc = (u32 *)&buf[0x400];
+ if (*fourcc == NVRAM_HEADER) {
+ parts[curr_part].name = "boot";
+ parts[curr_part].mask_flags = MTD_WRITEABLE;
+ parts[curr_part].offset = offset;
+ curr_part++;
+ }
+
+ /* Standard NVRAM */
+ fourcc = (u32 *)&buf[0x000];
+ if (*fourcc == NVRAM_HEADER) {
+ parts[curr_part].name = "nvram";
+ parts[curr_part].mask_flags = MTD_WRITEABLE;
+ parts[curr_part].offset = offset;
+ curr_part++;
+ }
+
+ /* board_data starts with board_id which differs across boards,
+ * but we can use 'MPFR' (hopefully) magic at 0x100 */
+ fourcc = (u32 *)&buf[0x100];
+ if (*fourcc == 0x5246504D) { /* MPFR */
+ parts[curr_part].name = "board_data";
+ parts[curr_part].mask_flags = MTD_WRITEABLE;
+ parts[curr_part].offset = offset;
+ curr_part++;
+ }
+
+ /* TRX */
+ fourcc = (u32 *)&buf[0x000];
+ if (*fourcc == TRX_MAGIC) {
+ trx = (struct trx_header *)buf;
+
+ i = 0;
+ /* We have LZMA loader if offset[2] points to sth */
+ if (trx->offset[2]) {
+ /* TODO: should we add LZMA loader partition? */
+ i++;
+ }
+
+ parts[curr_part].name = "linux";
+ parts[curr_part].mask_flags = MTD_WRITEABLE;
+ parts[curr_part].offset = offset + trx->offset[i];
+ curr_part++;
+ i++;
+
+ parts[curr_part].name = "rootfs";
+ parts[curr_part].mask_flags = MTD_WRITEABLE;
+ parts[curr_part].offset = offset + trx->offset[i];
+ parts[curr_part].size = trx->length - trx->offset[i];
+ curr_part++;
+ i++;
+ }
+ }
+
+ /* We can't read sizes of some (most of) partitions. Assume that
+ * these partitions end at the beginning of the one they are
+ * followed by. */
+ for (i = 0; i < curr_part - 1; i++) {
+ if (parts[i].size == 0)
+ parts[i].size = parts[i + 1].offset - parts[i].offset;
+ }
+ if (curr_part > 0 && parts[curr_part - 1].size == 0)
+ parts[curr_part - 1].size =
+ master->size - parts[curr_part - 1].offset;
+
+ *pparts = parts;
+ return curr_part;
+};
+
+static struct mtd_part_parser bcm47part_mtd_parser = {
+ .owner = THIS_MODULE,
+ .parse_fn = bcm47part_parse,
+ .name = "bcm47part",
+};
+
+static int __init bcm47part_init(void)
+{
+ return register_mtd_parser(&bcm47part_mtd_parser);
+}
+
+static void __exit bcm47part_exit(void)
+{
+ deregister_mtd_parser(&bcm47part_mtd_parser);
+}
+
+module_init(bcm47part_init);
+module_exit(bcm47part_exit);
+
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("MTD partitioning for BCM47XX flash memories");
--
1.7.7
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [RFC][PATCH] mtd: bcm47part driver for BCM47XX chipsets
2012-08-24 22:30 [RFC][PATCH] mtd: bcm47part driver for BCM47XX chipsets Rafał Miłecki
@ 2012-08-24 22:37 ` Rafał Miłecki
2012-08-28 15:07 ` Artem Bityutskiy
1 sibling, 0 replies; 6+ messages in thread
From: Rafał Miłecki @ 2012-08-24 22:37 UTC (permalink / raw)
To: linux-mtd; +Cc: Rafał Miłecki
2012/8/25 Rafał Miłecki <zajec5@gmail.com>:
> This driver provides parser detecting partitions on BCM47XX flash
> memories. It has many differences in comparision to older BCM63XX, like:
> 1) Different CFE with no more trivial MAGICs
> 2) More partitions types (board_data, ML, POT)
> 3) Supporting more than 1 flash on a device
> which resulted in decision of writing new parser.
>
> It uses generic mtd interface and was successfully tested with Netgear
> WNDR4500 router which has 2 flash memories: serial one and NAND one.
> ---
> Example of scanning (from my WNDR4500):
>
> [ 3.144000] Creating 3 MTD partitions on "bcm47sflash":
> [ 3.148000] 0x000000000000-0x0000001e0000 : "boot"
> [ 3.156000] 0x0000001e0000-0x0000001f0000 : "board_data"
> [ 3.164000] 0x0000001f0000-0x000000200000 : "nvram"
>
> [ 4.632000] Creating 2 MTD partitions on "NAND 128MiB 3,3V 8-bit":
> [ 4.636000] 0x00000000001c-0x0000001416a4 : "linux"
> [ 4.644000] 0x0000001416a4-0x0000007ba000 : "rootfs"
>
> Right now there aren't any mainline MTD devices driver using this
> parser. It was tested with out-of-tree drivers floating around (for
> example on linux-wireless mailing list).
>
> As this driver uses generic mtd interface, it should be safe to include
> it in kernel without breaking anything in the future.
>
> TODO:
> 1) Add support for more partitinos (ML and POT)
> 2) Optimize: don't scan whole flash (like up to 128 MiB)
> 3) Optimize: don't scan TRX partitions after detecting header
For development I've masked out MTD_WRITEABLE everywhere. It should be
done only for "boot" probably.
--
Rafał
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [RFC][PATCH] mtd: bcm47part driver for BCM47XX chipsets
2012-08-24 22:30 [RFC][PATCH] mtd: bcm47part driver for BCM47XX chipsets Rafał Miłecki
2012-08-24 22:37 ` Rafał Miłecki
@ 2012-08-28 15:07 ` Artem Bityutskiy
2012-08-28 15:16 ` Artem Bityutskiy
1 sibling, 1 reply; 6+ messages in thread
From: Artem Bityutskiy @ 2012-08-28 15:07 UTC (permalink / raw)
To: Rafał Miłecki; +Cc: linux-mtd
[-- Attachment #1: Type: text/plain, Size: 670 bytes --]
On Sat, 2012-08-25 at 00:30 +0200, Rafał Miłecki wrote:
> This driver provides parser detecting partitions on BCM47XX flash
> memories. It has many differences in comparision to older BCM63XX, like:
> 1) Different CFE with no more trivial MAGICs
> 2) More partitions types (board_data, ML, POT)
> 3) Supporting more than 1 flash on a device
> which resulted in decision of writing new parser.
>
> It uses generic mtd interface and was successfully tested with Netgear
> WNDR4500 router which has 2 flash memories: serial one and NAND one.
Would you please send a defconfig which I could use to compile-test
this?
--
Best Regards,
Artem Bityutskiy
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [RFC][PATCH] mtd: bcm47part driver for BCM47XX chipsets
2012-08-28 15:07 ` Artem Bityutskiy
@ 2012-08-28 15:16 ` Artem Bityutskiy
2012-08-28 15:37 ` Jonas Gorski
2012-08-29 12:43 ` Rafał Miłecki
0 siblings, 2 replies; 6+ messages in thread
From: Artem Bityutskiy @ 2012-08-28 15:16 UTC (permalink / raw)
To: Rafał Miłecki; +Cc: linux-mtd
[-- Attachment #1: Type: text/plain, Size: 884 bytes --]
On Tue, 2012-08-28 at 18:07 +0300, Artem Bityutskiy wrote:
> On Sat, 2012-08-25 at 00:30 +0200, Rafał Miłecki wrote:
> > This driver provides parser detecting partitions on BCM47XX flash
> > memories. It has many differences in comparision to older BCM63XX, like:
> > 1) Different CFE with no more trivial MAGICs
> > 2) More partitions types (board_data, ML, POT)
> > 3) Supporting more than 1 flash on a device
> > which resulted in decision of writing new parser.
> >
> > It uses generic mtd interface and was successfully tested with Netgear
> > WNDR4500 router which has 2 flash memories: serial one and NAND one.
>
> Would you please send a defconfig which I could use to compile-test
> this?
Also, why did you decide to add one more bcm partitions parser instead
of extending the existing one to support more types?
--
Best Regards,
Artem Bityutskiy
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [RFC][PATCH] mtd: bcm47part driver for BCM47XX chipsets
2012-08-28 15:16 ` Artem Bityutskiy
@ 2012-08-28 15:37 ` Jonas Gorski
2012-08-29 12:43 ` Rafał Miłecki
1 sibling, 0 replies; 6+ messages in thread
From: Jonas Gorski @ 2012-08-28 15:37 UTC (permalink / raw)
To: dedekind1; +Cc: Rafał Miłecki, linux-mtd
On 28 August 2012 17:16, Artem Bityutskiy <dedekind1@gmail.com> wrote:
> On Tue, 2012-08-28 at 18:07 +0300, Artem Bityutskiy wrote:
>> On Sat, 2012-08-25 at 00:30 +0200, Rafał Miłecki wrote:
>> > This driver provides parser detecting partitions on BCM47XX flash
>> > memories. It has many differences in comparision to older BCM63XX, like:
>> > 1) Different CFE with no more trivial MAGICs
>> > 2) More partitions types (board_data, ML, POT)
>> > 3) Supporting more than 1 flash on a device
>> > which resulted in decision of writing new parser.
>> >
>> > It uses generic mtd interface and was successfully tested with Netgear
>> > WNDR4500 router which has 2 flash memories: serial one and NAND one.
>>
>> Would you please send a defconfig which I could use to compile-test
>> this?
>
> Also, why did you decide to add one more bcm partitions parser instead
> of extending the existing one to support more types?
bcm63xx and bcm47xx partitioning layout were (likely) developed
independently by two different teams, they have nothing in common
which could be reused. The bcm_tag for bcm63xx is only used there, and
the trx header for bcm47xx is used only on these systems. bcm63xx's
nvram looks also looks completely different (it has a fixed layout
instead of being key-value pairs as in bcm47xx), so there is no real
gain from trying to merge them.
Regards
Jonas
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [RFC][PATCH] mtd: bcm47part driver for BCM47XX chipsets
2012-08-28 15:16 ` Artem Bityutskiy
2012-08-28 15:37 ` Jonas Gorski
@ 2012-08-29 12:43 ` Rafał Miłecki
1 sibling, 0 replies; 6+ messages in thread
From: Rafał Miłecki @ 2012-08-29 12:43 UTC (permalink / raw)
To: dedekind1; +Cc: linux-mtd
[-- Attachment #1: Type: text/plain, Size: 1024 bytes --]
2012/8/28 Artem Bityutskiy <dedekind1@gmail.com>:
> On Tue, 2012-08-28 at 18:07 +0300, Artem Bityutskiy wrote:
>> On Sat, 2012-08-25 at 00:30 +0200, Rafał Miłecki wrote:
>> > This driver provides parser detecting partitions on BCM47XX flash
>> > memories. It has many differences in comparision to older BCM63XX, like:
>> > 1) Different CFE with no more trivial MAGICs
>> > 2) More partitions types (board_data, ML, POT)
>> > 3) Supporting more than 1 flash on a device
>> > which resulted in decision of writing new parser.
>> >
>> > It uses generic mtd interface and was successfully tested with Netgear
>> > WNDR4500 router which has 2 flash memories: serial one and NAND one.
>>
>> Would you please send a defconfig which I could use to compile-test
>> this?
>
> Also, why did you decide to add one more bcm partitions parser instead
> of extending the existing one to support more types?
Artem: attached is config I use for compiling kernel for WNDR4500. Is
that what you needed?
--
Rafał
[-- Attachment #2: config-3.3 --]
[-- Type: application/octet-stream, Size: 6582 bytes --]
CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
CONFIG_ARCH_DISCARD_MEMBLOCK=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
# CONFIG_ARPD is not set
CONFIG_B44=y
CONFIG_B44_PCI=y
CONFIG_B44_PCICORE_AUTOSELECT=y
CONFIG_B44_PCI_AUTOSELECT=y
# CONFIG_MIPS_ALCHEMY is not set
# CONFIG_AR7 is not set
# CONFIG_ATH79 is not set
CONFIG_BCM47XX=y
# CONFIG_BCM63XX is not set
# CONFIG_MIPS_COBALT is not set
# CONFIG_MACH_DECSTATION is not set
# CONFIG_MACH_JAZZ is not set
# CONFIG_MACH_JZ4740 is not set
# CONFIG_LANTIQ is not set
# CONFIG_LASAT is not set
# CONFIG_MACH_LOONGSON is not set
# CONFIG_MACH_LOONGSON1 is not set
# CONFIG_MIPS_MALTA is not set
# CONFIG_MIPS_SIM is not set
# CONFIG_NEC_MARKEINS is not set
# CONFIG_MACH_VR41XX is not set
# CONFIG_NXP_STB220 is not set
# CONFIG_NXP_STB225 is not set
# CONFIG_PNX8550_JBS is not set
# CONFIG_PNX8550_STB810 is not set
# CONFIG_PMC_MSP is not set
# CONFIG_PMC_YOSEMITE is not set
# CONFIG_POWERTV is not set
# CONFIG_SGI_IP22 is not set
# CONFIG_SGI_IP27 is not set
# CONFIG_SGI_IP28 is not set
# CONFIG_SGI_IP32 is not set
# CONFIG_SIBYTE_CRHINE is not set
# CONFIG_SIBYTE_CARMEL is not set
# CONFIG_SIBYTE_CRHONE is not set
# CONFIG_SIBYTE_RHONE is not set
# CONFIG_SIBYTE_SWARM is not set
# CONFIG_SIBYTE_LITTLESUR is not set
# CONFIG_SIBYTE_SENTOSA is not set
# CONFIG_SIBYTE_BIGSUR is not set
# CONFIG_SNI_RM is not set
# CONFIG_MACH_TX39XX is not set
# CONFIG_MACH_TX49XX is not set
# CONFIG_MIKROTIK_RB532 is not set
# CONFIG_WR_PPMC is not set
# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
# CONFIG_NLM_XLR_BOARD is not set
# CONFIG_NLM_XLP_BOARD is not set
CONFIG_BCM47XX_BCMA=y
CONFIG_BCM47XX_SSB=y
CONFIG_BCM47XX_WDT=y
CONFIG_BCMA=y
CONFIG_BCMA_BLOCKIO=y
CONFIG_BCMA_DEBUG=y
CONFIG_BCMA_DRIVER_MIPS=y
CONFIG_BCMA_DRIVER_PCI_HOSTMODE=y
CONFIG_BCMA_HOST_PCI=y
CONFIG_BCMA_HOST_PCI_POSSIBLE=y
CONFIG_BCMA_HOST_SOC=y
CONFIG_BCMA_NFLASH=y
CONFIG_BCMA_POSSIBLE=y
CONFIG_BCMA_SFLASH=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_CEVT_R4K=y
CONFIG_CEVT_R4K_LIB=y
CONFIG_CFE=y
CONFIG_CMDLINE="root=/dev/mtdblock11 rootfstype=squashfs,jffs2 noinitrd console=ttyS0,115200"
CONFIG_CMDLINE_BOOL=y
# CONFIG_CMDLINE_OVERRIDE is not set
CONFIG_CPU_HAS_PREFETCH=y
CONFIG_CPU_HAS_SYNC=y
CONFIG_CPU_LITTLE_ENDIAN=y
CONFIG_CPU_MIPS32=y
CONFIG_CPU_MIPS32_R1=y
# CONFIG_CPU_MIPS32_R2 is not set
CONFIG_CPU_MIPSR1=y
CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
CONFIG_CPU_SUPPORTS_HIGHMEM=y
CONFIG_CSRC_R4K=y
CONFIG_CSRC_R4K_LIB=y
CONFIG_DECOMPRESS_LZMA=y
CONFIG_DMA_NONCOHERENT=y
CONFIG_GENERIC_ATOMIC64=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_GENERIC_GPIO=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_PCI_IOMAP=y
CONFIG_HARDWARE_WATCHPOINTS=y
CONFIG_HAS_DMA=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAVE_ARCH_JUMP_LABEL=y
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_HAVE_DMA_API_DEBUG=y
CONFIG_HAVE_DMA_ATTRS=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_HAVE_GENERIC_HARDIRQS=y
CONFIG_HAVE_IDE=y
CONFIG_HAVE_IRQ_WORK=y
CONFIG_HAVE_MEMBLOCK=y
CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
CONFIG_HAVE_OPROFILE=y
CONFIG_HAVE_PERF_EVENTS=y
CONFIG_HW_HAS_PCI=y
CONFIG_HW_RANDOM=y
CONFIG_HZ=250
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
CONFIG_IMAGE_CMDLINE_HACK=y
CONFIG_INITRAMFS_SOURCE=""
# CONFIG_IP_ROUTE_VERBOSE is not set
CONFIG_IRQ_CPU=y
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_KALLSYMS=y
CONFIG_LEDS_GPIO=y
CONFIG_MDIO_BOARDINFO=y
CONFIG_MIPS=y
CONFIG_MIPS_L1_CACHE_SHIFT=5
# CONFIG_MIPS_MACHINE is not set
CONFIG_MIPS_MT_DISABLED=y
CONFIG_MTD_BCM47XX_PARTS=y
CONFIG_MTD_BCM47XX_PFLASH=y
CONFIG_MTD_BCM47XX_SFLASH=y
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_BCM47XX=y
CONFIG_MTD_NAND_ECC=y
# CONFIG_MTD_SM_COMMON is not set
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_NEED_PER_CPU_KM=y
CONFIG_NO_GENERIC_PCI_IOPORT_MAP=y
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_PCI=y
CONFIG_PCI_DISABLE_COMMON_QUIRKS=y
CONFIG_PCI_DOMAINS=y
CONFIG_PERF_USE_VMALLOC=y
CONFIG_PHYLIB=y
# CONFIG_PREEMPT_RCU is not set
# CONFIG_SCSI_DMA is not set
# CONFIG_SERIAL_8250_DETECT_IRQ is not set
CONFIG_SERIAL_8250_EXTENDED=y
# CONFIG_SERIAL_8250_MANY_PORTS is not set
# CONFIG_SERIAL_8250_RSA is not set
CONFIG_SERIAL_8250_SHARE_IRQ=y
CONFIG_SSB=y
CONFIG_SSB_B43_PCI_BRIDGE=y
CONFIG_SSB_BLOCKIO=y
CONFIG_SSB_DEBUG=y
CONFIG_SSB_DRIVER_EXTIF=y
CONFIG_SSB_DRIVER_GIGE=y
CONFIG_SSB_DRIVER_MIPS=y
CONFIG_SSB_DRIVER_PCICORE=y
CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
CONFIG_SSB_EMBEDDED=y
CONFIG_SSB_PCICORE_HOSTMODE=y
CONFIG_SSB_PCIHOST=y
CONFIG_SSB_PCIHOST_POSSIBLE=y
CONFIG_SSB_SERIAL=y
CONFIG_SSB_SFLASH=y
CONFIG_SSB_SPROM=y
CONFIG_SYS_HAS_CPU_MIPS32_R1=y
CONFIG_SYS_HAS_CPU_MIPS32_R2=y
CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
CONFIG_USB_ARCH_HAS_XHCI=y
# CONFIG_USB_HCD_BCMA is not set
# CONFIG_USB_HCD_SSB is not set
CONFIG_USB_SUPPORT=y
CONFIG_WATCHDOG_NOWAYOUT=y
CONFIG_XZ_DEC=y
CONFIG_ZONE_DMA_FLAG=0
CONFIG_CROSS_MEMORY_ATTACH=y
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
# CONFIG_NF_CONNTRACK_TIMEOUT is not set
# CONFIG_NF_CT_NETLINK_TIMEOUT is not set
# CONFIG_NETFILTER_XT_TARGET_HMARK is not set
# CONFIG_NETFILTER_XT_TARGET_LOG is not set
# CONFIG_NET_SCH_PLUG is not set
# CONFIG_MTD_NAND_DOCG4 is not set
CONFIG_NET_VENDOR_WIZNET=y
# CONFIG_WIZNET_W5100 is not set
# CONFIG_WIZNET_W5300 is not set
# CONFIG_AMD_PHY is not set
# CONFIG_WL_TI is not set
# CONFIG_HSI is not set
# CONFIG_I6300ESB_WDT is not set
CONFIG_BCMA_DRIVER_GMAC_CMN=y
# CONFIG_LPC_ICH is not set
# CONFIG_EXYNOS_VIDEO is not set
CONFIG_NEW_LEDS=y
# CONFIG_LEDS_TRIGGER_TRANSIENT is not set
# CONFIG_IPACK_BUS is not set
# CONFIG_WIMAX_GDM72XX is not set
# CONFIG_EXTCON is not set
# CONFIG_MEMORY is not set
# # CONFIG_QNX6FS_FS is not set
# CONFIG_READABLE_ASM is not set
# CONFIG_PANIC_ON_OOPS is not set
CONFIG_EARLY_PRINTK=y
# CONFIG_DDR is not set
# CONFIG_QNX6FS_FS is not set
# CONFIG_CRC32_SELFTEST is not set
CONFIG_CRC32_SLICEBY8=y
# CONFIG_CRC32_SLICEBY4 is not set
# CONFIG_CRC32_SARWATE is not set
# CONFIG_CRC32_BIT is not set
# CONFIG_PCIEPORTBUS is not set
# CONFIG_BCM87XX_PHY is not set
# CONFIG_POWER_AVS is not set
# CONFIG_LEDS_TRIGGER_ONESHOT is not set
# CONFIG_ZSMALLOC is not set
# CONFIG_PWM is not set
# CONFIG_NOTIFIER_ERROR_INJECTION is not set
CONFIG_MTD_BCM47SFLASH=y
CONFIG_MTD_NAND_BCM47NFLASH=y
CONFIG_MTD_BCM47XX_PARTS=y
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2012-08-29 12:43 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-24 22:30 [RFC][PATCH] mtd: bcm47part driver for BCM47XX chipsets Rafał Miłecki
2012-08-24 22:37 ` Rafał Miłecki
2012-08-28 15:07 ` Artem Bityutskiy
2012-08-28 15:16 ` Artem Bityutskiy
2012-08-28 15:37 ` Jonas Gorski
2012-08-29 12:43 ` Rafał Miłecki
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox