diff options
Diffstat (limited to 'fs/jffs2')
-rw-r--r-- | fs/jffs2/Config.in | 117 | ||||
-rw-r--r-- | fs/jffs2/jffs2root.mk | 61 |
2 files changed, 178 insertions, 0 deletions
diff --git a/fs/jffs2/Config.in b/fs/jffs2/Config.in new file mode 100644 index 000000000..b787ec9d1 --- /dev/null +++ b/fs/jffs2/Config.in @@ -0,0 +1,117 @@ +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_512_16K + bool "NAND flash with 512B Page and 16 kB erasesize" + 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 0x200 if BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_512_16K + 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 0x4000 if BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_512_16K + 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_512_16K + 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) + +endif diff --git a/fs/jffs2/jffs2root.mk b/fs/jffs2/jffs2root.mk new file mode 100644 index 000000000..a0a563d18 --- /dev/null +++ b/fs/jffs2/jffs2root.mk @@ -0,0 +1,61 @@ +############################################################# +# +# Build the jffs2 root filesystem image +# +############################################################# + +JFFS2_OPTS := -e $(BR2_TARGET_ROOTFS_JFFS2_EBSIZE) +SUMTOOL_OPTS := $(JFFS2_OPTS) + +ifeq ($(BR2_TARGET_ROOTFS_JFFS2_PAD),y) +ifneq ($(strip $(BR2_TARGET_ROOTFS_JFFS2_PADSIZE)),0x0) +JFFS2_OPTS += --pad=$(strip $(BR2_TARGET_ROOTFS_JFFS2_PADSIZE)) +else +JFFS2_OPTS += -p +endif +SUMTOOL_OPTS += -p +endif + +ifeq ($(BR2_TARGET_ROOTFS_JFFS2_LE),y) +JFFS2_OPTS += -l +SUMTOOL_OPTS += -l +endif + +ifeq ($(BR2_TARGET_ROOTFS_JFFS2_BE),y) +JFFS2_OPTS += -b +SUMTOOL_OPTS += -b +endif + +JFFS2_OPTS += -s $(BR2_TARGET_ROOTFS_JFFS2_PAGESIZE) +ifeq ($(BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER),y) +JFFS2_OPTS += -n +SUMTOOL_OPTS += -n +endif + +ifneq ($(TARGET_DEVICE_TABLE),) +JFFS2_OPTS += -D $(TARGET_DEVICE_TABLE) +endif + +ROOTFS_JFFS2_DEPENDENCIES = host-mtd + +ifneq ($(BR2_TARGET_ROOTFS_JFFS2_SUMMARY),) +define ROOTFS_JFFS2_CMD + $(MKFS_JFFS2) $(JFFS2_OPTS) -d $(TARGET_DIR) -o $$@.nosummary && \ + $(SUMTOOL) $(SUMTOOL_OPTS) -i $$@.nosummary -o $$@ && \ + rm $$@.nosummary +endef +else +define ROOTFS_JFFS2_CMD + $(MKFS_JFFS2) $(JFFS2_OPTS) -d $(TARGET_DIR) -o $$@ +endef +endif + +define JFFS2_GEN_SREC + $(TARGET_CROSS)objcopy -I binary -O srec --adjust-vma 0xa1000000 $$@ $$@.srec +endef + +ifeq ($(BR2_JFFS2_TARGET_SREC),y) +ROOTFS_JFFS2_POST_GEN_HOOKS += JFFS2_GEN_SREC +endif + +$(eval $(call ROOTFS_TARGET,jffs2))
\ No newline at end of file |