--- /dev/null
+config BR2_TARGET_ROOTFS_JFFS2
+ bool "jffs2 root filesystem"
+ help
+ Build a jffs2 root filesystem
+
+if BR2_TARGET_ROOTFS_JFFS2
+
+choice
+ prompt "Flash Type"
+ default BR2_TARGET_ROOTFS_JFFS2_FLASH_128
+
+config BR2_TARGET_ROOTFS_JFFS2_DATAFLASH_1056
+ bool "AT45 dataflash with 1056 byte pagesize"
+ select BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER
+
+config BR2_TARGET_ROOTFS_JFFS2_DATAFLASH_528
+ bool "AT45 dataflash with 528 byte pagesize"
+ select BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER
+
+config BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_16K
+ bool "NAND flash with 16 kB erasesize"
+ select BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER
+
+config BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_128K
+ bool "NAND flash with 128 kB erasesize"
+ select BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER
+
+config BR2_TARGET_ROOTFS_JFFS2_FLASH_128
+ bool "Parallel flash with 128 kB erase size"
+
+config BR2_TARGET_ROOTFS_JFFS2_FLASH_64
+ bool "Parallel flash with 64 kB erase size"
+
+config BR2_TARGET_ROOTFS_JFFS2_CUSTOM
+ bool "Select custom erase size"
+
+endchoice
+
+config BR2_TARGET_ROOTFS_JFFS2_CUSTOM_EBSIZE
+ hex "Erase block size"
+ depends on BR2_TARGET_ROOTFS_JFFS2_CUSTOM
+ default 0x20000
+ help
+ Set to erase size of memory
+
+config BR2_TARGET_ROOTFS_JFFS2_EBSIZE
+ hex
+ default 0x2100 if BR2_TARGET_ROOTFS_JFFS2_DATAFLASH_1056
+ default 0x1080 if BR2_TARGET_ROOTFS_JFFS2_DATAFLASH_528
+ default 0x4000 if BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_16K
+ default 0x20000 if BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_128K
+ default 0x20000 if BR2_TARGET_ROOTFS_JFFS2_FLASH_128
+ default 0x10000 if BR2_TARGET_ROOTFS_JFFS2_FLASH_64
+ default BR2_TARGET_ROOTFS_JFFS2_CUSTOM_EBSIZE if BR2_TARGET_ROOTFS_JFFS2_CUSTOM
+
+config BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER
+ bool "Do not use Cleanmarker"
+ default y if BR2_TARGET_ROOTFS_JFFS2_DATAFLASH_1056
+ default y if BR2_TARGET_ROOTFS_JFFS2_DATAFLASH_528
+ default y if BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_16K
+ default y if BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_128K
+ help
+ Do not use cleanmarkers if using NAND flash or Dataflash where
+ the pagesize is not a power of 2
+
+config BR2_TARGET_ROOTFS_JFFS2_PAD
+ bool "Pad output"
+
+config BR2_TARGET_ROOTFS_JFFS2_PADSIZE
+ hex "Pad output size (0x0 = to end of EB)"
+ depends on BR2_TARGET_ROOTFS_JFFS2_PAD
+ default 0x0
+ help
+ Set to 0x0 to pad to end of erase block.
+
+choice
+ prompt "Endianess"
+ default BR2_TARGET_ROOTFS_JFFS2_BE if BR2_ENDIAN = "BIG"
+
+config BR2_TARGET_ROOTFS_JFFS2_LE
+ bool "little-endian"
+
+config BR2_TARGET_ROOTFS_JFFS2_BE
+ bool "big-endian"
+
+endchoice
+
+config BR2_TARGET_ROOTFS_JFFS2_SUMMARY
+ bool "Produce a summarized JFFS2 image"
+ help
+ A summarised image can be mounted faster if support is
+ enabled in the kernel (CONFIG_JFFS2_SUMMARY)
+
+config BR2_TARGET_ROOTFS_JFFS2_USE_CUSTOM_PAGESIZE
+ bool "Select custom virtual memory page size"
+ help
+ Use a custom virtual memory page size. Note that this is not related to
+ the flash memory page size. Using this option is only needed if Linux is
+ configured to use a page size different than 4kB.
+
+
+config BR2_TARGET_ROOTFS_JFFS2_CUSTOM_PAGESIZE
+ hex "Virtual memory page size"
+ depends on BR2_TARGET_ROOTFS_JFFS2_USE_CUSTOM_PAGESIZE
+ default 0x1000
+ help
+ Set to virtual memory page size of target system (in bytes). This value
+ should match the virtual page size in Linux (i.e. this should have the
+ same value as the value of the PAGE_SIZE macro in Linux). It is not
+ related to the flash memory page size.
+
+endif