config BR2_TARGET_ROOTFS_JFFS2
	bool "jffs2 root filesystem"
	select BR2_HOST_FAKEROOT
	select BR2_PACKAGE_MTD
	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_2K_128K
	bool "NAND flash with 2kB Page and 128 kB erasesize"
	select BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER

config BR2_TARGET_ROOTFS_JFFS2_FLASH_128
	bool "Parallel flash with 4 kB pagesize and 128 kB erase size"

config BR2_TARGET_ROOTFS_JFFS2_FLASH_64
	bool "Parallel flash with 4 kB pagesize and 64 kB erase size"

config BR2_TARGET_ROOTFS_JFFS2_CUSTOM
	bool "Select custom page and erase size"

endchoice

config BR2_TARGET_ROOTFS_JFFS2_CUSTOM_PAGESIZE
	hex "Page Size"
	depends on BR2_TARGET_ROOTFS_JFFS2_CUSTOM
	default 0x1000
	help
	  Set to pagesize of memory

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_PAGESIZE
	hex
	default 0x420 if BR2_TARGET_ROOTFS_JFFS2_DATAFLASH_1056
	default 0x210 if BR2_TARGET_ROOTFS_JFFS2_DATAFLASH_528
	default 0x800 if BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_2K_128K
	default 0x1000 if BR2_TARGET_ROOTFS_JFFS2_FLASH_128
	default 0x1000 if BR2_TARGET_ROOTFS_JFFS2_FLASH_64
	default $(BR2_TARGET_ROOTFS_JFFS2_CUSTOM_PAGESIZE) if BR2_TARGET_ROOTFS_JFFS2_CUSTOM

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 0x20000 if BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_2K_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_2K_128K
	help
	  Do not use cleanmarkers if using NAND flash or Dataflash where
	  the pagesize is not a power of 2

config BR2_JFFS2_TARGET_SREC
	bool "RootFS in SREC file formet"

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_alpha || BR2_armeb || \
			BR2_avr32 || BR2_m68k || BR2_mips || \
			BR2_powerpc || BR2_sh2a_nofpueb || BR2_sh2eb || \
			BR2_sh3eb || BR2_sh4eb || BR2_sparc || BR2_sparc64

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_OUTPUT
	string "Output File"
	default "$(IMAGE).jffs2"

config BR2_TARGET_ROOTFS_JFFS2_COPYTO
	string "also copy the image to..."
	default ""
	help
	  Copies the resulting image to a secondary location.

endif
