aboutsummaryrefslogtreecommitdiff
path: root/fs/jffs2
diff options
context:
space:
mode:
authorGravatar Michał Leśniewski <mlesniew@gmail.com>2015-05-19 20:26:30 +0200
committerGravatar Peter Korsgaard <peter@korsgaard.com>2015-05-22 11:36:00 +0200
commite3904a890de2a74c290675fdb90324a6ed83e633 (patch)
tree2eb64cd2d16472e9aa29a3ddec97cfe7321062f8 /fs/jffs2
parente8f4f052b14e21d617234a3705a1bee0f9c1dd36 (diff)
downloadbuildroot-e3904a890de2a74c290675fdb90324a6ed83e633.tar.gz
buildroot-e3904a890de2a74c290675fdb90324a6ed83e633.tar.bz2
fs/jffs2: Fix mkfs.jffs2 --pagesize parameter usage
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>
Diffstat (limited to 'fs/jffs2')
-rw-r--r--fs/jffs2/Config.in57
-rw-r--r--fs/jffs2/jffs2.mk5
2 files changed, 33 insertions, 29 deletions
diff --git a/fs/jffs2/Config.in b/fs/jffs2/Config.in
index e2a3ee9021..1010216bd1 100644
--- a/fs/jffs2/Config.in
+++ b/fs/jffs2/Config.in
@@ -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
diff --git a/fs/jffs2/jffs2.mk b/fs/jffs2/jffs2.mk
index 0232199be5..a9cd4146ee 100644
--- a/fs/jffs2/jffs2.mk
+++ b/fs/jffs2/jffs2.mk
@@ -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