Commit e3904a89 authored by Michał Leśniewski's avatar Michał Leśniewski Committed by Peter Korsgaard
Browse files

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: default avatarMichał Leśniewski <mlesniew@gmail.com>
Signed-off-by: default avatarPeter Korsgaard <peter@korsgaard.com>
parent e8f4f052
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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
+29 −28
Original line number Diff line number Diff line
@@ -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
Loading