From 1781e8ed26299d6f851c62a809f9ab856652cc72 Mon Sep 17 00:00:00 2001 From: Hamish Guthrie Date: Wed, 2 Feb 2011 14:58:30 +0000 Subject: [PATCH] Add support for ubifs SVN-Revision: 25310 --- target/linux/omap35xx/gumstix/config-2.6.36 | 60 +++++++++---------- .../omap35xx/gumstix/profiles/gumstix.mk | 4 +- target/linux/omap35xx/image/Makefile | 7 ++- target/linux/omap35xx/image/ubinize.cfg | 14 +++++ ...-nand-remove-hardware-ECC-as-default.patch | 36 +++++++++++ 5 files changed, 86 insertions(+), 35 deletions(-) create mode 100644 target/linux/omap35xx/image/ubinize.cfg create mode 100644 target/linux/omap35xx/patches-2.6.36/002-omap-nand-remove-hardware-ECC-as-default.patch diff --git a/target/linux/omap35xx/gumstix/config-2.6.36 b/target/linux/omap35xx/gumstix/config-2.6.36 index 120b76e493..6bfd63803b 100644 --- a/target/linux/omap35xx/gumstix/config-2.6.36 +++ b/target/linux/omap35xx/gumstix/config-2.6.36 @@ -29,7 +29,6 @@ CONFIG_ARM_L1_CACHE_SHIFT_6=y CONFIG_ARM_THUMB=y # CONFIG_ARM_THUMBEE is not set # CONFIG_ARPD is not set -# CONFIG_AUTO_ZRELADDR is not set # CONFIG_BLK_DEV_INITRD is not set CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_RAM=y @@ -39,7 +38,6 @@ CONFIG_BLK_DEV_SD=y # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 CONFIG_CC_OPTIMIZE_FOR_SIZE=y -# CONFIG_CC_STACKPROTECTOR is not set CONFIG_CMDLINE=" debug " CONFIG_COMMON_CLKDEV=y CONFIG_COMPAT_BRK=y @@ -69,7 +67,7 @@ CONFIG_CRYPTO_BLKCIPHER=y CONFIG_CRYPTO_BLKCIPHER2=y CONFIG_CRYPTO_CBC=y CONFIG_CRYPTO_CRC32C=y -CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_DES=y # CONFIG_CRYPTO_DEV_OMAP_SHAM is not set CONFIG_CRYPTO_ECB=m @@ -77,6 +75,7 @@ CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_HMAC=m CONFIG_CRYPTO_HW=y +CONFIG_CRYPTO_LZO=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y CONFIG_CRYPTO_MD5=y @@ -84,7 +83,6 @@ CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_WORKQUEUE=y CONFIG_DEBUG_GPIO=y -# CONFIG_DEBUG_ICEDCC is not set CONFIG_DEBUG_INFO=y # CONFIG_DEBUG_INFO_REDUCED is not set CONFIG_DEBUG_KERNEL=y @@ -96,7 +94,6 @@ CONFIG_DEFAULT_CFQ=y # CONFIG_DEFAULT_DEADLINE is not set CONFIG_DEFAULT_IOSCHED="cfq" CONFIG_DEFAULT_TCP_CONG="cubic" -# CONFIG_DEPRECATED_PARAM_STRUCT is not set CONFIG_DETECT_HUNG_TASK=y CONFIG_DEVKMEM=y CONFIG_DEVTMPFS=y @@ -136,8 +133,6 @@ CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y CONFIG_FRAME_POINTER=y CONFIG_FREEZER=y -CONFIG_FS_MBCACHE=m -CONFIG_FS_POSIX_ACL=y CONFIG_FUSE_FS=m CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BUILD=y @@ -182,6 +177,8 @@ CONFIG_I2C_CHARDEV=y CONFIG_I2C_GPIO=y CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_OMAP=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y CONFIG_INET_DIAG=y CONFIG_INET_TCP_DIAG=y CONFIG_INET_XFRM_MODE_BEET=y @@ -202,24 +199,12 @@ CONFIG_IP_PNP_DHCP=y CONFIG_IP_PNP_RARP=y # CONFIG_ISDN is not set # CONFIG_ISP1301_OMAP is not set -CONFIG_JBD=y -CONFIG_JBD2=m -# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set -# CONFIG_JFFS2_LZMA is not set -# CONFIG_JFFS2_SUMMARY is not set -CONFIG_JFFS2_ZLIB=y +CONFIG_JBD2=y +# CONFIG_JFFS2_FS is not set CONFIG_KERNEL_GZIP=y # CONFIG_KERNEL_LZMA is not set CONFIG_KEYBOARD_ATKBD=y -# CONFIG_KEYBOARD_GPIO is not set -# CONFIG_KEYBOARD_LKKBD is not set -# CONFIG_KEYBOARD_MATRIX is not set -# CONFIG_KEYBOARD_MCS is not set -# CONFIG_KEYBOARD_NEWTON is not set -# CONFIG_KEYBOARD_STOWAWAY is not set -# CONFIG_KEYBOARD_SUNKBD is not set # CONFIG_KEYBOARD_TWL4030 is not set -# CONFIG_KEYBOARD_XTKBD is not set # CONFIG_LBDAF is not set # CONFIG_LEDS is not set # CONFIG_LEDS_GPIO is not set @@ -227,6 +212,8 @@ CONFIG_KEYBOARD_ATKBD=y # CONFIG_LEDS_TRIGGERS is not set CONFIG_LIBCRC32C=y CONFIG_LOG_BUF_SHIFT=16 +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y # CONFIG_MACH_CM_T35 is not set # CONFIG_MACH_DEVKIT8000 is not set # CONFIG_MACH_IGEP0020 is not set @@ -263,18 +250,25 @@ CONFIG_MOUSE_PS2=y # CONFIG_MOUSE_SERIAL is not set # CONFIG_MOUSE_VSXXXAA is not set CONFIG_MSDOS_FS=y -CONFIG_MTD_AR7_PARTS=y -CONFIG_MTD_BLOCK2MTD=y +# CONFIG_MTD_BLKDEVS is not set +# CONFIG_MTD_BLOCK is not set +# CONFIG_MTD_BLOCK_RO is not set # CONFIG_MTD_CFI is not set # CONFIG_MTD_COMPLEX_MAPPINGS is not set -CONFIG_MTD_DEBUG=y -CONFIG_MTD_DEBUG_VERBOSE=0 CONFIG_MTD_NAND=y CONFIG_MTD_NAND_ECC=y -CONFIG_MTD_NAND_GPIO=y -# CONFIG_MTD_NAND_OMAP2 is not set +CONFIG_MTD_NAND_OMAP2=y +CONFIG_MTD_NAND_OMAP_PREFETCH=y +# CONFIG_MTD_NAND_OMAP_PREFETCH_DMA is not set CONFIG_MTD_NAND_PLATFORM=y +# CONFIG_MTD_ROOTFS_ROOT_DEV is not set +# CONFIG_MTD_ROOTFS_SPLIT is not set # CONFIG_MTD_SM_COMMON is not set +CONFIG_MTD_UBI=y +CONFIG_MTD_UBI_BEB_RESERVE=1 +# CONFIG_MTD_UBI_DEBUG is not set +# CONFIG_MTD_UBI_GLUEBI is not set +CONFIG_MTD_UBI_WL_THRESHOLD=4096 # CONFIG_MUSB_PIO_ONLY is not set CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEON=y @@ -353,16 +347,11 @@ CONFIG_REGULATOR_TWL4030=y # CONFIG_REGULATOR_USERSPACE_CONSUMER is not set CONFIG_RTC_CLASS=y # CONFIG_RTC_DRV_CMOS is not set -# CONFIG_RTC_DRV_DS3232 is not set -# CONFIG_RTC_DRV_ISL12022 is not set CONFIG_RTC_DRV_TWL4030=y CONFIG_SCHED_DEBUG=y CONFIG_SCSI=y # CONFIG_SCSI_MULTI_LUN is not set # CONFIG_SDIO_UART is not set -# CONFIG_SENSORS_EMC2103 is not set -# CONFIG_SENSORS_JC42 is not set -# CONFIG_SENSORS_SMM665 is not set CONFIG_SERIAL_8250_DETECT_IRQ=y CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y @@ -375,7 +364,6 @@ CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_RAW is not set CONFIG_SERIO_SERPORT=y CONFIG_SMSC911X=y -# CONFIG_SPARSE_IRQ is not set CONFIG_SPI=y # CONFIG_SPI_BITBANG is not set # CONFIG_SPI_GPIO is not set @@ -403,6 +391,12 @@ CONFIG_TWL4030_POWER=y CONFIG_TWL4030_USB=y CONFIG_TWL4030_WATCHDOG=y # CONFIG_TWL6030_PWM is not set +CONFIG_UBIFS_FS=y +CONFIG_UBIFS_FS_ADVANCED_COMPR=y +# CONFIG_UBIFS_FS_DEBUG is not set +CONFIG_UBIFS_FS_LZO=y +# CONFIG_UBIFS_FS_XATTR is not set +CONFIG_UBIFS_FS_ZLIB=y CONFIG_UID16=y CONFIG_USB=y CONFIG_USB_ANNOUNCE_NEW_DEVICES=y diff --git a/target/linux/omap35xx/gumstix/profiles/gumstix.mk b/target/linux/omap35xx/gumstix/profiles/gumstix.mk index c4e94796fb..0eae28216e 100644 --- a/target/linux/omap35xx/gumstix/profiles/gumstix.mk +++ b/target/linux/omap35xx/gumstix/profiles/gumstix.mk @@ -5,6 +5,8 @@ # See /LICENSE for more information. # +FEATURES:=ubifs + define Profile/Gumstix NAME:=gumstix PACKAGES:=-iptables -ppp -ppp-mod-pppoe -kmod-ipt-nathelper \ @@ -18,7 +20,7 @@ define Profile/Gumstix crda iw kmod-usb-hid \ kmod-usb-storage kmod-usb-storage-extras \ kmod-fs-vfat \ - hegw hegwtest + hegw hegwtest mtd-utils endef define Profile/Gumstix/Description diff --git a/target/linux/omap35xx/image/Makefile b/target/linux/omap35xx/image/Makefile index adaf395b70..e238c48af8 100644 --- a/target/linux/omap35xx/image/Makefile +++ b/target/linux/omap35xx/image/Makefile @@ -10,9 +10,12 @@ include $(INCLUDE_DIR)/image.mk JFFS2_BLOCKSIZE=128k JFFS2OPTS += --little-endian --pagesize=0x800 --no-cleanmarkers --pad +UBIFS_OPTS = -m 2048 -e 126KiB -c 1996 +UBINIZE_OPTS = -m 2048 -p 128KiB -s 512 + define Image/BuildKernel $(TARGET_CROSS)objcopy -O binary -R .note -R .comment -S $(LINUX_DIR)/arch/arm/boot/compressed/vmlinux linux.bin - mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -n "OpenWRT Kernel Image beagleboard" -d linux.bin uImage + mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -n "OpenWRT Kernel Image gumstix" -d linux.bin uImage mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'uImage.bin+mmc2' -d ../files/boot-mmc.cmd boot.scr mv uImage $(BIN_DIR)/$(IMG_PREFIX)-$(KERNEL)-uImage @@ -20,11 +23,13 @@ define Image/BuildKernel rm linux.bin endef +ifndef CONFIG_TARGET_omap35xx_gumstix define Image/Build $(CP) $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(KERNEL)-root.$(1) PADDING="true" PATH="$(TARGET_PATH)" ./gen_image.sh $(BIN_DIR)/$(IMG_PREFIX)-$(1).image 4 $(KDIR)/root.bootscript 240 $(KDIR)/root.$(1) $(call Image/Build/$(1),$(1)) endef +endif ifdef CONFIG_TARGET_omap35xx_gumstix define Image/Prepare diff --git a/target/linux/omap35xx/image/ubinize.cfg b/target/linux/omap35xx/image/ubinize.cfg new file mode 100644 index 0000000000..49d55b9840 --- /dev/null +++ b/target/linux/omap35xx/image/ubinize.cfg @@ -0,0 +1,14 @@ +[rootfs] +# Volume mode (other option is static) +mode=ubi +# Source image +image=root.ubifs +# Volume ID in UBI image +vol_id=0 +# Allow for dynamic resize +vol_type=dynamic +# Volume name +vol_name=rootfs +# Autoresize volume at first mount +vol_flags=autoresize + diff --git a/target/linux/omap35xx/patches-2.6.36/002-omap-nand-remove-hardware-ECC-as-default.patch b/target/linux/omap35xx/patches-2.6.36/002-omap-nand-remove-hardware-ECC-as-default.patch new file mode 100644 index 0000000000..038c1afecd --- /dev/null +++ b/target/linux/omap35xx/patches-2.6.36/002-omap-nand-remove-hardware-ECC-as-default.patch @@ -0,0 +1,36 @@ +From 859158bfab7e72af440622fb9731bcaef4e7d6dc Mon Sep 17 00:00:00 2001 +From: Sukumar Ghorai +Date: Fri, 19 Nov 2010 14:45:26 +0000 +Subject: [PATCH] omap: nand: remove hardware ECC as default + +Commit 2c01946c6b9ebaa5a89710bc42ca224a7f52f227 (omap3 nand: cleanup +virtual address usages) wrongly enabled CONFIG_MTD_NAND_OMAP_HWECC +which breaks boards like beagle and pandora that use software ECC +for write. + +Boards like beagle and pandora uses sw ecc for write (e.g. binary flushed +from u-boot) and read from kernel. + +Signed-off-by: Sukumar Ghorai +Acked-by: David Woodhouse +[tony@atomide.com: updated comments] +Signed-off-by: Tony Lindgren +--- + drivers/mtd/nand/omap2.c | 1 - + 1 files changed, 0 insertions(+), 1 deletions(-) + +diff --git a/drivers/mtd/nand/omap2.c b/drivers/mtd/nand/omap2.c +index cd41c58..15682ec 100644 +--- a/drivers/mtd/nand/omap2.c ++++ b/drivers/mtd/nand/omap2.c +@@ -7,7 +7,6 @@ + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +-#define CONFIG_MTD_NAND_OMAP_HWECC + + #include + #include +-- +1.7.0.4 + -- 2.25.1