b3f95490b9
This adds initial support for kernel 4.14 based on the patches for kernel 4.9. In the configuration I deactivated some of the new possible security features like: CONFIG_REFCOUNT_FULL CONFIG_SLAB_FREELIST_HARDENED CONFIG_SOFTLOCKUP_DETECTOR CONFIG_WARN_ALL_UNSEEDED_RANDOM And these overlay FS options are also deactivated: CONFIG_OVERLAY_FS_INDEX CONFIG_OVERLAY_FS_REDIRECT_DIR I activated this: CONFIG_FORTIFY_SOURCE CONFIG_POSIX_TIMERS CONFIG_SLAB_MERGE_DEFAULT CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED I am not sure if I did the porting correct for the following patches: target/linux/generic/backport-4.14/020-backport_netfilter_rtcache.patch target/linux/generic/hack-4.14/220-gc_sections.patch target/linux/generic/hack-4.14/321-powerpc_crtsavres_prereq.patch target/linux/generic/pending-4.14/305-mips_module_reloc.patch target/linux/generic/pending-4.14/611-netfilter_match_bypass_default_table.patch target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
56 lines
2.1 KiB
Diff
56 lines
2.1 KiB
Diff
From: Felix Fietkau <nbd@nbd.name>
|
|
Date: Sat, 4 Nov 2017 07:40:23 +0100
|
|
Subject: [PATCH] mtd: spi-nor: support limiting 4K sectors support based on
|
|
flash size
|
|
|
|
Some devices need 4K sectors to be able to deal with small flash chips.
|
|
For instance, w25x05 is 64 KiB in size, and without 4K sectors, the
|
|
entire chip is just one erase block.
|
|
On bigger flash chip sizes, using 4K sectors can significantly slow down
|
|
many operations, including using a writable filesystem. There are several
|
|
platforms where it makes sense to use a single kernel on both kinds of
|
|
devices.
|
|
|
|
To support this properly, allow configuring an upper flash chip size
|
|
limit for 4K sectors support.
|
|
|
|
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|
---
|
|
|
|
--- a/drivers/mtd/spi-nor/Kconfig
|
|
+++ b/drivers/mtd/spi-nor/Kconfig
|
|
@@ -39,6 +39,17 @@ config SPI_ASPEED_SMC
|
|
and support for the SPI flash memory controller (SPI) for
|
|
the host firmware. The implementation only supports SPI NOR.
|
|
|
|
+config MTD_SPI_NOR_USE_4K_SECTORS_LIMIT
|
|
+ int "Maximum flash chip size to use 4K sectors on (in KiB)"
|
|
+ depends on MTD_SPI_NOR_USE_4K_SECTORS
|
|
+ default "4096"
|
|
+ help
|
|
+ There are many flash chips that support 4K sectors, but are so large
|
|
+ that using them significantly slows down writing large amounts of
|
|
+ data or using a writable filesystem.
|
|
+ Any flash chip larger than the size specified in this option will
|
|
+ not use 4K sectors.
|
|
+
|
|
config SPI_ATMEL_QUADSPI
|
|
tristate "Atmel Quad SPI Controller"
|
|
depends on ARCH_AT91 || (ARM && COMPILE_TEST)
|
|
--- a/drivers/mtd/spi-nor/spi-nor.c
|
|
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
|
@@ -2562,10 +2562,12 @@ static int spi_nor_select_erase(struct s
|
|
|
|
#ifdef CONFIG_MTD_SPI_NOR_USE_4K_SECTORS
|
|
/* prefer "small sector" erase if possible */
|
|
- if (info->flags & SECT_4K) {
|
|
+ if ((info->flags & SECT_4K) && (mtd->size <=
|
|
+ CONFIG_MTD_SPI_NOR_USE_4K_SECTORS_LIMIT * 1024)) {
|
|
nor->erase_opcode = SPINOR_OP_BE_4K;
|
|
mtd->erasesize = 4096;
|
|
- } else if (info->flags & SECT_4K_PMC) {
|
|
+ } else if ((info->flags & SECT_4K_PMC) && (mtd->size <=
|
|
+ CONFIG_MTD_SPI_NOR_USE_4K_SECTORS_LIMIT * 1024)) {
|
|
nor->erase_opcode = SPINOR_OP_BE_4K_PMC;
|
|
mtd->erasesize = 4096;
|
|
} else
|