fs/jffs2: Fix mkfs.jffs2 --pagesize parameter usage
authorMichał Leśniewski <mlesniew@gmail.com>
Tue, 19 May 2015 18:26:30 +0000 (20:26 +0200)
committerPeter Korsgaard <peter@korsgaard.com>
Fri, 22 May 2015 09:36:00 +0000 (11:36 +0200)
Fixes #8186

Mkfs.jffs2 accepts a --pagesize parameter, which allows specifying the size
of the virtual memory page size of the target machine, where the image will
be used.  (This is the value of the PAGE_SIZE macro in Linux.) In most cases
the parameter doesn't need to be set as the default value of 4 kB is usually
correct.

The parameter was used incorrectly in Buildroot -- it was set to the page
size of flash memory chip -- this commit fixes this problem.  Now the
--pagesize parameter is not used at all (unless the user explicitly chooses
to use a custom value during configuration).  All existing defconfigs were
corrected to match the new configuration variable names.

[Peter: reword, add Config.in.legacy handling]
Signed-off-by: Michał Leśniewski <mlesniew@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Config.in.legacy
configs/mini2440_defconfig
configs/openblocks_a6_defconfig
configs/sheevaplug_defconfig
fs/jffs2/Config.in
fs/jffs2/jffs2.mk

index 46247f2b6a2455baf67936744f31b1d2e4af0049..44de941f8e43314602a288ff765cda846961af7b 100644 (file)
@@ -107,6 +107,22 @@ endif
 ###############################################################################
 comment "Legacy options removed in 2015.05"
 
+config BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_512_16K
+       bool "jffs2 16kB erasesize NAND flash option renamed"
+       select BR2_LEGACY
+       select BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_16K
+       help
+         The JFFS2 NAND flash options now longer include the page
+         size.
+
+config BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_2K_128K
+       bool "jffs2 128kB erasesize NAND flash option renamed"
+       select BR2_LEGACY
+       select BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_128K
+       help
+         The JFFS2 NAND flash options now longer include the page
+         size.
+
 config BR2_PACKAGE_MONO_20
        bool "2.0/3.5 .Net Runtime"
        select BR2_LEGACY
index d7d9ab18278a7b0b0c82c1d7634c7fa044d04768..e8b55cdc26dee079f41f4c628dadaa2fc0ae0be0 100644 (file)
@@ -8,7 +8,7 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttySAC0"
 
 # Filesystem
 BR2_TARGET_ROOTFS_JFFS2=y
-BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_2K_128K=y
+BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_128K=y
 BR2_TARGET_ROOTFS_JFFS2_PAGESIZE=0x800
 BR2_TARGET_ROOTFS_JFFS2_EBSIZE=0x20000
 BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER=y
index d9994f298fc1a5fab4642e5a028700dbcfaa44e4..51477850619221489402704cc0fc027b04c18854 100644 (file)
@@ -9,7 +9,7 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
 
 # filesystem
 BR2_TARGET_ROOTFS_JFFS2=y
-BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_2K_128K=y
+BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_128K=y
 
 # Lock to 3.18 headers to avoid breaking with newer kernels
 BR2_KERNEL_HEADERS_VERSION=y
index 5422f673cb664ce26837f2374436410dfbff0b2e..9e272fff8e5216b3524e539f6b3b2d0f024d0582 100644 (file)
@@ -8,7 +8,7 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
 
 # filesystem
 BR2_TARGET_ROOTFS_JFFS2=y
-BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_2K_128K=y
+BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_128K=y
 
 # Lock down headers to avoid breaking with new defaults
 BR2_KERNEL_HEADERS_VERSION=y
index e2a3ee902170918d5a4e0dd50c35ecdc6f4cf5a9..1010216bd1ec132cd5f670dcc7ba81c3a34b9f1f 100644 (file)
@@ -17,32 +17,25 @@ 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"
+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_2K_128K
-       bool "NAND flash with 2kB Page and 128 kB erasesize"
+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 4 kB pagesize and 128 kB erase size"
+       bool "Parallel flash with 128 kB erase size"
 
 config BR2_TARGET_ROOTFS_JFFS2_FLASH_64
-       bool "Parallel flash with 4 kB pagesize and 64 kB erase size"
+       bool "Parallel flash with 64 kB erase size"
 
 config BR2_TARGET_ROOTFS_JFFS2_CUSTOM
-       bool "Select custom page and erase size"
+       bool "Select custom 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
@@ -50,22 +43,12 @@ config BR2_TARGET_ROOTFS_JFFS2_CUSTOM_EBSIZE
        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 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
@@ -74,8 +57,8 @@ 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
+       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
@@ -108,4 +91,22 @@ config BR2_TARGET_ROOTFS_JFFS2_SUMMARY
          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
index 0232199be56dcf8e3f1aaac05a636e40e538184e..a9cd4146eec253ee72ed037542b2a33307dbe5e5 100644 (file)
@@ -26,7 +26,10 @@ JFFS2_OPTS += -b
 SUMTOOL_OPTS += -b
 endif
 
-JFFS2_OPTS += -s $(BR2_TARGET_ROOTFS_JFFS2_PAGESIZE)
+ifeq ($(BR2_TARGET_ROOTFS_JFFS2_USE_CUSTOM_PAGESIZE),y)
+JFFS2_OPTS += -s $(BR2_TARGET_ROOTFS_JFFS2_CUSTOM_PAGESIZE)
+endif
+
 ifeq ($(BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER),y)
 JFFS2_OPTS += -n
 SUMTOOL_OPTS += -n